gcc/
[official-gcc.git] / gcc / ChangeLog
blob687e4b64094a0b2c5a6729cdb9c42b5608ceaf7b
1 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3             Anna Tikhonova  <anna.tikhonova@intel.com>
4             Ilya Tocar  <ilya.tocar@intel.com>
5             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6             Ilya Verbin  <ilya.verbin@intel.com>
7             Kirill Yukhin  <kirill.yukhin@intel.com>
8             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10         * config/i386/i386.md
11         (define_insn "*movoi_internal_avx"): Add evex version.
12         (define_insn "*movti_internal"): Ditto.
14 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16             Anna Tikhonova  <anna.tikhonova@intel.com>
17             Ilya Tocar  <ilya.tocar@intel.com>
18             Andrey Turetskiy  <andrey.turetskiy@intel.com>
19             Ilya Verbin  <ilya.verbin@intel.com>
20             Kirill Yukhin  <kirill.yukhin@intel.com>
21             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
23         * config/i386/i386.md
24         (define_attr "isa"): Add avx512dq, noavx512dq.
25         (define_attr "enabled"): Ditto.
26         * config/i386/sse.md
27         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
29 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
30             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
31             Anna Tikhonova  <anna.tikhonova@intel.com>
32             Ilya Tocar  <ilya.tocar@intel.com>
33             Andrey Turetskiy  <andrey.turetskiy@intel.com>
34             Ilya Verbin  <ilya.verbin@intel.com>
35             Kirill Yukhin  <kirill.yukhin@intel.com>
36             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
38         * config/i386/i386.c
39         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
40         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
41         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
42         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
43         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
44         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
45         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
46         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
47         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
48         * config/i386/sse.md
49         (define_mode_iterator VMOVE): Allow V4TI mode.
50         (define_mode_iterator V_AVX512VL): New.
51         (define_mode_iterator V): New handling for AVX512VL.
52         (define_insn "avx512f_load<mode>_mask"): Delete.
53         (define_insn "<avx512>_load<mode>_mask"): New.
54         (define_insn "avx512f_store<mode>_mask"): Delete.
55         (define_insn "<avx512>_store<mode>_mask"): New.
58 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
60         PR sanitizer/62089
61         * asan.c (instrument_derefs): Fix bitfield check.
63 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
65         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
66         * config/rs6000/htm.md (ttest): Remove clobber.
67         * config/rs6000/predicates.md (any_mask_operand): New predicate.
68         (and_operand): Reformat.
69         (and_2rld_operand): New predicate.
70         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
71         parameter.
72         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
73         parameter.  Handle AND directly.
74         (rs6000_split_logical_di): Remove last parameter.
75         (rs6000_split_logical): Remove last parameter.  Remove obsolete
76         comment.
77         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
78         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
79         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
80         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
81         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
82         and 5 anonymous splitters):  Delete.
83         (and<mode>3): New expander.
84         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
85         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
86         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
87         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
88         (floatdisf2_internal1): Remove clobbers.
89         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
90         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
91         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
92         (and<mode>3 for BOOL_128): Remove clobber.
93         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
94         rs6000_split_logical.
95         (*bool<mode>3_internal for BOOL_128): Adjust call of
96         rs6000_split_logical.
97         (*boolc<mode>3_internal1 for BOOL_128,
98         *boolc<mode>3_internal2 for BOOL_128,
99         *boolcc<mode>3_internal1 for BOOL_128,
100         *boolcc<mode>3_internal2 for BOOL_128,
101         *eqv<mode>3_internal1 for BOOL_128,
102         *eqv<mode>3_internal2 for BOOL_128,
103         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
104         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
105         clobber.
106         (*vec_reload_and_reg_<mptrsize>): Delete.
108 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
110         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
111         and split, *boolccsi3_internal3 and split): Delete.
112         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
113         *boolccdi3_internal3 and split): Delete.
114         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
115         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
117 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
119         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
120         and split, *boolcsi3_internal3 and split): Delete.
121         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
122         *boolcdi3_internal3 and split): Delete.
123         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
125 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
127         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
128         <'u'>: Also support printing the low-order 16 bits.
129         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
130         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
131         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
132         *booldi3_internal3 and split): Delete.
133         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
134         *bool<mode>3_dot2): New.
135         (two anonymous define_splits for non_logical_cint_operand): Merge.
137 2014-08-17  Marek Polacek  <polacek@redhat.com>
138             Manuel López-Ibáñez  <manu@gcc.gnu.org>
140         PR c/62059
141         * diagnostic.c (adjust_line): Add gcc_checking_assert.
142         (diagnostic_show_locus): Don't print caret diagnostic
143         if a column is larger than the line_width.
145 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
147         * common.opt: Make the ISL AST generator to be the main code generator
148         of Graphite.
150 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
152         * wide-int.h (generic_wide_int): Declare as class instead of struct.
154 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
156         PR target/61641
157         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
158         Declare.
159         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
160         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
161         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
162         Define.
163         * config/pa/pa.md (begin_brtab): Delete insn.
164         (end_brtab): Likewise.
166 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
168         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
170 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
172         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
173         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
174         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
175         (get_dynamic_type): Remove.
176         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
177         (clear_speculation): Bring to ipa-deivrt.h
178         (get_class_context): Rename to ...
179         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
180         (contains_type_p): Update.
181         (get_dynamic_type): Rename to ...
182         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
183         (possible_polymorphic_call_targets): UPdate.
184         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
185         * ipa-prop.c (ipa_analyze_call_uses): Update.
187 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
189         * doc/invoke.texi (SH options): Document missing processor variant
190         options.  Remove references to Hitachi.  Undocument deprecated mspace
191         option.
193 2014-08-15  Jason Merrill  <jason@redhat.com>
195         * tree.c (type_hash_canon): Uncomment assert.
197 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
199         * input.h (in_system_header_at): Add comment.
201 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
203         PR fortran/44054
204         * diagnostic.c (build_message_string): Make it extern.
205         * diagnostic.h (build_message_string): Make it extern.
207 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
209         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
210         load/store from/to non-floating class pseudo.
212 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
214         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
216 2014-08-15  Richard Biener  <rguenther@suse.de>
218         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
219         (get_constraint_for_ssa_var): Remove dead code.
220         (get_constraint_for_1): Adjust.
221         (find_what_var_points_to): Likewise.
222         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
224 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
226         PR target/61878
227         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
228         (_mm512_mask_cmpge_epu32_mask): Ditto.
229         (_mm512_cmpge_epu32_mask): Ditto.
230         (_mm512_mask_cmpge_epi64_mask): Ditto.
231         (_mm512_cmpge_epi64_mask): Ditto.
232         (_mm512_mask_cmpge_epu64_mask): Ditto.
233         (_mm512_cmpge_epu64_mask): Ditto.
234         (_mm512_mask_cmple_epi32_mask): Ditto.
235         (_mm512_cmple_epi32_mask): Ditto.
236         (_mm512_mask_cmple_epu32_mask): Ditto.
237         (_mm512_cmple_epu32_mask): Ditto.
238         (_mm512_mask_cmple_epi64_mask): Ditto.
239         (_mm512_cmple_epi64_mask): Ditto.
240         (_mm512_mask_cmple_epu64_mask): Ditto.
241         (_mm512_cmple_epu64_mask): Ditto.
242         (_mm512_mask_cmplt_epi32_mask): Ditto.
243         (_mm512_cmplt_epi32_mask): Ditto.
244         (_mm512_mask_cmplt_epu32_mask): Ditto.
245         (_mm512_cmplt_epu32_mask): Ditto.
246         (_mm512_mask_cmplt_epi64_mask): Ditto.
247         (_mm512_cmplt_epi64_mask): Ditto.
248         (_mm512_mask_cmplt_epu64_mask): Ditto.
249         (_mm512_cmplt_epu64_mask): Ditto.
250         (_mm512_mask_cmpneq_epi32_mask): Ditto.
251         (_mm512_mask_cmpneq_epu32_mask): Ditto.
252         (_mm512_cmpneq_epu32_mask): Ditto.
253         (_mm512_mask_cmpneq_epi64_mask): Ditto.
254         (_mm512_cmpneq_epi64_mask): Ditto.
255         (_mm512_mask_cmpneq_epu64_mask): Ditto.
256         (_mm512_cmpneq_epu64_mask): Ditto.
257         (_mm512_castpd_ps): Ditto.
258         (_mm512_castpd_si512): Ditto.
259         (_mm512_castps_pd): Ditto.
260         (_mm512_castps_si512): Ditto.
261         (_mm512_castsi512_ps): Ditto.
262         (_mm512_castsi512_pd): Ditto.
263         (_mm512_castpd512_pd128): Ditto.
264         (_mm512_castps512_ps128): Ditto.
265         (_mm512_castsi512_si128): Ditto.
266         (_mm512_castpd512_pd256): Ditto.
267         (_mm512_castps512_ps256): Ditto.
268         (_mm512_castsi512_si256): Ditto.
269         (_mm512_castpd128_pd512): Ditto.
270         (_mm512_castps128_ps512): Ditto.
271         (_mm512_castsi128_si512): Ditto.
272         (_mm512_castpd256_pd512): Ditto.
273         (_mm512_castps256_ps512): Ditto.
274         (_mm512_castsi256_si512): Ditto.
275         (_mm512_cmpeq_epu32_mask): Ditto.
276         (_mm512_mask_cmpeq_epu32_mask): Ditto.
277         (_mm512_mask_cmpeq_epu64_mask): Ditto.
278         (_mm512_cmpeq_epu64_mask): Ditto.
279         (_mm512_cmpgt_epu32_mask): Ditto.
280         (_mm512_mask_cmpgt_epu32_mask): Ditto.
281         (_mm512_mask_cmpgt_epu64_mask): Ditto.
282         (_mm512_cmpgt_epu64_mask): Ditto.
283         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
284         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
285         * config/i386/i386.c (enum ix86_builtins): Add
286         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
287         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
288         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
289         (bdesc_args): Add __builtin_ia32_si512_256si,
290         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
291         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
292         __builtin_ia32_pd512_pd.
293         (ix86_expand_args_builtin): Handle new FTYPEs.
294         * config/i386/sse.md (castmode): Add 512-bit modes.
295         (AVX512MODE2P): New.
296         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
297         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
299 2014-08-15  Richard Biener  <rguenther@suse.de>
301         * fold-const.c (tree_swap_operands_p): Put all constants
302         last, also strip sign-changing NOPs when considering further
303         canonicalization.  Canonicalize also when optimizing for size.
305 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
307         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
308         one_match > zero_match case to just before simple_sequence.
310 2014-08-15  Richard Biener  <rguenther@suse.de>
312         * data-streamer.h (streamer_string_index, string_for_index):
313         Remove.
314         * data-streamer-out.c (streamer_string_index): Make static.
315         * data-streamer-in.c (string_for_index): Likewise.
316         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
317         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
319 2014-08-15  Richard Biener  <rguenther@suse.de>
321         PR tree-optimization/62031
322         * tree-data-ref.c (dr_analyze_indices): Do not set
323         DR_UNCONSTRAINED_BASE.
324         (dr_may_alias_p): All indirect accesses have to go the
325         formerly DR_UNCONSTRAINED_BASE path.
326         * tree-data-ref.h (struct indices): Remove
327         unconstrained_base member.
328         (DR_UNCONSTRAINED_BASE): Remove.
330 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
332         PR middle-end/62092
333         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
334         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
335         in OMP_CLAUSE_MAP in some outer target region.
337 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
339         * tree-ssa-loop-ivopts.c (ivopts_data): New field
340         name_expansion_cache.
341         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
342         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
343         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
344         (difference_cannot_overflow_p): New parameter.  Use affine
345         expansion for equality check.
346         (iv_elimination_compare_lt): Pass new argument.
348 2014-08-14  DJ Delorie  <dj@redhat.com>
350         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
351         variables to the accumulator.
353         * config/rl78/predicates.md (rl78_near_mem_operand): New.
354         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
355         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
356         with far-far moves.
358         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
359         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
360         (umulqihi3_virt): Likewise.
361         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
362         (umulqihi3_real): Likewise.
364         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
366 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
368         PR tree-optimization/62091
369         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
370         function_entry_reached.
371         (walk_aliased_vdefs): Clear it here.
372         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
374 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
376         * ipa-utils.h (compare_virtual_tables): Declare.
377         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
379 2014-08-14  Marek Polacek  <polacek@redhat.com>
381         DR 458
382         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
383         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
385 2014-08-14  Tom de Vries  <tom@codesourcery.com>
387         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
389 2014-08-14  Tom de Vries  <tom@codesourcery.com>
391         PR rtl-optimization/62004
392         PR rtl-optimization/62030
393         * ifcvt.c (rtx_interchangeable_p): New function.
394         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
395         * emit-rtl.h (mem_attrs_eq_p): Declare.
397 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
399         * graphite-scop-detection.c:
400         Add inclusion of cp-tree.h.
401         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
402         in case they are pointers to object types
404 2014-08-14  Richard Biener  <rguenther@suse.de>
406         * BASE-VER: Change to 5.0.0
408 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
409             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
410             Anna Tikhonova  <anna.tikhonova@intel.com>
411             Ilya Tocar  <ilya.tocar@intel.com>
412             Andrey Turetskiy  <andrey.turetskiy@intel.com>
413             Ilya Verbin  <ilya.verbin@intel.com>
414             Kirill Yukhin  <kirill.yukhin@intel.com>
415             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
417         * config/i386/sse.md (define_mode_attr avx512): New.
418         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
419         V4DI modes.
420         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
421         (define_mode_attr ssse3_avx2): Ditto.
422         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
423         (define_mode_attr avx2_avx512bw): New.
424         (define_mode_attr ssedoublemodelower): New.
425         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
426         V32HI, V64QI modes.
427         (define_mode_attr ssebytemode): Allow V8DI modes.
428         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
429         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
430         (define_mode_attr ssePSmode2): New.
431         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
432         V16HI, V32HI modes.
433         (define_mode_attr dbpsadbwmode): New.
434         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
435         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
436         (vi8_sse4_1_avx2_avx512): New.
437         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
438         mode attribute.
439         (define_mode_attr blendbits): Move before its immediate use.
441 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
442             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
443             Anna Tikhonova  <anna.tikhonova@intel.com>
444             Ilya Tocar  <ilya.tocar@intel.com>
445             Andrey Turetskiy  <andrey.turetskiy@intel.com>
446             Ilya Verbin  <ilya.verbin@intel.com>
447             Kirill Yukhin  <kirill.yukhin@intel.com>
448             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
450         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
451         * config/i386/subst.md
452         (define_mode_iterator SUBST_V): Update.
453         (define_mode_iterator SUBST_A): Ditto.
454         (define_subst_attr "mask_operand7"): New.
455         (define_subst_attr "mask_operand10"): New.
456         (define_subst_attr "mask_operand_arg34") : New.
457         (define_subst_attr "mask_expand_op3"): New.
458         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
459         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
460         (define_subst_attr "mask_avx512vl_condition"): New.
461         (define_subst_attr "round_mask_operand4"): Ditto.
462         (define_subst_attr "round_mask_scalar_op3"): Delete.
463         (define_subst_attr "round_mask_op4"): New.
464         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
465         V16SImode.
466         (define_subst_attr "round_modev8sf_condition"): New.
467         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
468         <MODE>mode.
469         (define_subst_attr "round_saeonly_mask_operand4"): New.
470         (define_subst_attr "round_saeonly_mask_op4"): New.
471         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
472         V8DImode, V16SImode.
473         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
474         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
475         (define_subst_attr "mask_expand4_args"): New.
476         (define_subst "mask_expand4"): New.
478 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
479             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
480             Anna Tikhonova  <anna.tikhonova@intel.com>
481             Ilya Tocar  <ilya.tocar@intel.com>
482             Andrey Turetskiy  <andrey.turetskiy@intel.com>
483             Ilya Verbin  <ilya.verbin@intel.com>
484             Kirill Yukhin  <kirill.yukhin@intel.com>
485             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
487         * config/i386/i386.md
488         (define_attr "isa"): Add avx512bw,noavx512bw.
489         (define_attr "enabled"): Ditto.
490         (define_split): Add 32/64-bit mask logic.
491         (define_insn "*k<logic>qi"): New.
492         (define_insn "*k<logic>hi"): New.
493         (define_insn "*anddi_1"): Add mask version.
494         (define_insn "*andsi_1"): Ditto.
495         (define_insn "*<code><mode>_1"): Ditto.
496         (define_insn "*<code>hi_1"): Ditto.
497         (define_insn "kxnor<mode>"): New.
498         (define_insn "kunpcksi"): New.
499         (define_insn "kunpckdi"): New.
500         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
501         (define_insn "*one_cmplhi2_1"): Ditto.
503 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
504             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
505             Anna Tikhonova  <anna.tikhonova@intel.com>
506             Ilya Tocar  <ilya.tocar@intel.com>
507             Andrey Turetskiy  <andrey.turetskiy@intel.com>
508             Ilya Verbin  <ilya.verbin@intel.com>
509             Kirill Yukhin  <kirill.yukhin@intel.com>
510             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
512         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
513         V32HImode.
515 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
516             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
517             Anna Tikhonova  <anna.tikhonova@intel.com>
518             Ilya Tocar  <ilya.tocar@intel.com>
519             Andrey Turetskiy  <andrey.turetskiy@intel.com>
520             Ilya Verbin  <ilya.verbin@intel.com>
521             Kirill Yukhin  <kirill.yukhin@intel.com>
522             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
524         * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
525         registers.
526         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
527         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
528         xmm/ymm16+ when availble.
529         * config/i386/i386.h
530         (HARD_REGNO_NREGS): Add mask regs.
531         (VALID_AVX512F_REG_MODE): Ditto.
532         (VALID_AVX512F_REG_MODE) : Define.
533         (VALID_MASK_AVX512BW_MODE): Ditto.
534         (reg_class) (MASK_REG_P(X)): Define.
535         * config/i386/i386.md: Do not split long moves with mask register,
536         use kmovb if avx512bw is availible.
537         (movdi_internal): Handle mask registers.
539 2014-08-14  Richard Biener  <rguenther@suse.de>
541         PR tree-optimization/62081
542         * tree-ssa-loop.c (pass_fix_loops): New pass.
543         (pass_tree_loop::gate):  Do not fixup loops here.
544         * tree-pass.h (make_pass_fix_loops): Declare.
545         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
547 2014-08-14  Richard Biener  <rguenther@suse.de>
549         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
550         (type_hash_canon): ... this and avoid 2nd lookup for the add.
552 2014-08-14  Richard Biener  <rguenther@suse.de>
554         PR tree-optimization/62090
555         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
556         (fold_builtin_2): Do not fold sprintf.
557         (fold_builtin_3): Likewise.
558         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
559         moved from builtins.c.
560         (gimple_fold_builtin): Fold sprintf.
562 2014-08-14  Richard Biener  <rguenther@suse.de>
564         PR rtl-optimization/62079
565         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
566         run cleanup_cfg.
568 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
570         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
571         current_function_decl.
573 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
575         * cgraph.c (cgraph_node::function_symbol): Fix wrong
576         cgraph_function_node to cgraph_node::function_symbol
577         refactoring.
579 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
581         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
582         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
584 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
586         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
587         warning.
589 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
591         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
592         generator.
594 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
596         PR target/62025
597         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
598         any registers that are used in mem_insn.
600 2014-08-12  Steve Ellcey  <sellcey@mips.com>
602         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler. 
604 2014-08-12  Steve Ellcey  <sellcey@mips.com>
606         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
607         (MULTILIB_DIRNAMES): Ditto.
608         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
609         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
610         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
611         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
612         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
613         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
615 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
617         PR target/61413
618         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
619         of __ARM_SIZEOF_WCHAR_T.
621 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
623         PR target/62098
624         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
625         Remove unnecessary attributes.
627 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
629         * internal-fn.c (init_internal_fns): Fix off-by-one.
631 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
632             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
633             Anna Tikhonova  <anna.tikhonova@intel.com>
634             Ilya Tocar  <ilya.tocar@intel.com>
635             Andrey Turetskiy  <andrey.turetskiy@intel.com>
636             Ilya Verbin  <ilya.verbin@intel.com>
637             Kirill Yukhin  <kirill.yukhin@intel.com>
638             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
640         * config/i386/i386.c (standard_sse_constant_opcode): Use
641         vpxord/vpternlog if avx512 is availible.
643 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
645         PR middle-end/62103
646         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
647         bitfields, that is when size doesn't match the size of type or the
648         size of the constructor.
650 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
652         * config/rs6000/constraints.md (wh constraint): New constraint,
653         for FP registers if direct move is available.
654         (wi constraint): New constraint, for VSX/FP registers that can
655         handle 64-bit integers.
656         (wj constraint): New constraint for VSX/FP registers that can
657         handle 64-bit integers for direct moves.
658         (wk constraint): New constraint for VSX/FP registers that can
659         handle 64-bit doubles for direct moves.
660         (wy constraint): Make documentation match implementation.
662         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
663         scalar_in_vmx_p field to simplify tests of whether SFmode or
664         DFmode can go in the Altivec registers.
665         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
666         (rs6000_setup_reg_addr_masks): Likewise.
667         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
668         field, and wh/wi/wj/wk constraints.
669         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
670         the wh/wi/wj/wk constraints.
671         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
672         upper registers, prefer VSX registers unless the operation is a
673         memory operation with REG+OFFSET addressing.
675         * config/rs6000/vsx.md (VSr mode attribute): Add support for
676         DImode.  Change SFmode to use ww constraint instead of d to allow
677         SF registers in the upper registers.
678         (VSr2): Likewise.
679         (VSr3): Likewise.
680         (VSr5): Fix thinko in comment.
681         (VSa): New mode attribute that is an alternative to wa, that
682         returns the VSX register class that a mode can go in, but may not
683         be the preferred register class.
684         (VS_64dm): New mode attribute for appropriate register classes for
685         referencing 64-bit elements of vectors for direct moves and normal
686         moves.
687         (VS_64reg): Likewise.
688         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
689         register allocator to only registers the data type can handle.
690         (vsx_le_perm_load_<mode>): Likewise.
691         (vsx_le_perm_store_<mode>): Likewise.
692         (vsx_xxpermdi2_le_<mode>): Likewise.
693         (vsx_xxpermdi4_le_<mode>): Likewise.
694         (vsx_lxvd2x2_le_<mode>): Likewise.
695         (vsx_lxvd2x4_le_<mode>): Likewise.
696         (vsx_stxvd2x2_le_<mode>): Likewise.
697         (vsx_add<mode>3): Likewise.
698         (vsx_sub<mode>3): Likewise.
699         (vsx_mul<mode>3): Likewise.
700         (vsx_div<mode>3): Likewise.
701         (vsx_tdiv<mode>3_internal): Likewise.
702         (vsx_fre<mode>2): Likewise.
703         (vsx_neg<mode>2): Likewise.
704         (vsx_abs<mode>2): Likewise.
705         (vsx_nabs<mode>2): Likewise.
706         (vsx_smax<mode>3): Likewise.
707         (vsx_smin<mode>3): Likewise.
708         (vsx_sqrt<mode>2): Likewise.
709         (vsx_rsqrte<mode>2): Likewise.
710         (vsx_tsqrt<mode>2_internal): Likewise.
711         (vsx_fms<mode>4): Likewise.
712         (vsx_nfma<mode>4): Likewise.
713         (vsx_eq<mode>): Likewise.
714         (vsx_gt<mode>): Likewise.
715         (vsx_ge<mode>): Likewise.
716         (vsx_eq<mode>_p): Likewise.
717         (vsx_gt<mode>_p): Likewise.
718         (vsx_ge<mode>_p): Likewise.
719         (vsx_xxsel<mode>): Likewise.
720         (vsx_xxsel<mode>_uns): Likewise.
721         (vsx_copysign<mode>3): Likewise.
722         (vsx_float<VSi><mode>2): Likewise.
723         (vsx_floatuns<VSi><mode>2): Likewise.
724         (vsx_fix_trunc<mode><VSi>2): Likewise.
725         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
726         (vsx_x<VSv>r<VSs>i): Likewise.
727         (vsx_x<VSv>r<VSs>ic): Likewise.
728         (vsx_btrunc<mode>2): Likewise.
729         (vsx_b2trunc<mode>2): Likewise.
730         (vsx_floor<mode>2): Likewise.
731         (vsx_ceil<mode>2): Likewise.
732         (vsx_<VS_spdp_insn>): Likewise.
733         (vsx_xscvspdp): Likewise.
734         (vsx_xvcvspuxds): Likewise.
735         (vsx_float_fix_<mode>2): Likewise.
736         (vsx_set_<mode>): Likewise.
737         (vsx_extract_<mode>_internal1): Likewise.
738         (vsx_extract_<mode>_internal2): Likewise.
739         (vsx_extract_<mode>_load): Likewise.
740         (vsx_extract_<mode>_store): Likewise.
741         (vsx_splat_<mode>): Likewise.
742         (vsx_xxspltw_<mode>): Likewise.
743         (vsx_xxspltw_<mode>_direct): Likewise.
744         (vsx_xxmrghw_<mode>): Likewise.
745         (vsx_xxmrglw_<mode>): Likewise.
746         (vsx_xxsldwi_<mode>): Likewise.
747         (vsx_xscvdpspn): Tighten constraints to only use register classes
748         the types use.
749         (vsx_xscvspdpn): Likewise.
750         (vsx_xscvdpspn_scalar): Likewise.
752         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
753         wj, and wk constraints.
754         (GPR_REG_CLASS_P): New helper macro for register classes targeting
755         general purpose registers.
757         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
758         direct moves.
759         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
760         DImode instead of wm.  Use wk constraint for direct move of DFmode
761         instead of wm.
762         (extendsidi2_lfiwax): Likewise.
763         (lfiwax): Likewise.
764         (lfiwzx): Likewise.
765         (movdi_internal64): Likewise.
767         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
768         wk constraints. Make the wy constraint documentation match them
769         implementation.
771 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
773         Replacement of isl_int by isl_val
774         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
775         (compute_bounds_for_param): use isl_val instead of isl_int
776         (compute_bounds_for_loop): likewise
777         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
778         (build_linearized_memory_access): use isl_val instead of isl_int
779         (pdr_stride_in_loop): likewise
780         * graphite-optimize-isl.c:
781         (getPrevectorMap): use isl_val instead of isl_int
782         * graphite-poly.c:
783         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
784         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
785         (extern the_isl_ctx): declare
786         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
787         (extract_affine_gmp): likewise
788         (wrap): likewise
789         (build_loop_iteration_domains): likewise
790         (add_param_constraints): likewise
792 2014-08-11  Richard Biener  <rguenther@suse.de>
794         PR tree-optimization/62075
795         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
796         handle uses in patterns.
798 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
799             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
800             Anna Tikhonova  <anna.tikhonova@intel.com>
801             Ilya Tocar  <ilya.tocar@intel.com>
802             Andrey Turetskiy  <andrey.turetskiy@intel.com>
803             Ilya Verbin  <ilya.verbin@intel.com>
804             Kirill Yukhin  <kirill.yukhin@intel.com>
805             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
807         * common/config/i386/i386-common.c
808         (OPTION_MASK_ISA_AVX512VL_SET): Define.
809         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
810         (ix86_handle_option): Handle OPT_mavx512vl.
811         * config/i386/cpuid.h (bit_AVX512VL): Define.
812         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
813         set -mavx512vl accordingly.
814         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
815         OPTION_MASK_ISA_AVX512VL.
816         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
817         (ix86_option_override_internal): Define PTA_AVX512VL, handle
818         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
819         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
820         * config/i386/i386.h (TARGET_AVX512VL): Define.
821         (TARGET_AVX512VL_P(x)): Ditto.
822         * config/i386/i386.opt: Add mavx512vl.
824 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
826         PR tree-optimization/62073
827         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
828         a basic block.
830 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
831             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
832             Anna Tikhonova  <anna.tikhonova@intel.com>
833             Ilya Tocar  <ilya.tocar@intel.com>
834             Andrey Turetskiy  <andrey.turetskiy@intel.com>
835             Ilya Verbin  <ilya.verbin@intel.com>
836             Kirill Yukhin  <kirill.yukhin@intel.com>
837             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
839         * common/config/i386/i386-common.c
840         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
841         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
842         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
843         (ix86_handle_option): Handle OPT_mavx512bw.
844         * config/i386/cpuid.h (bit_AVX512BW): Define.
845         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
846         set -mavx512bw accordingly.
847         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
848         OPTION_MASK_ISA_AVX512BW.
849         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
850         (ix86_option_override_internal): Define PTA_AVX512BW, handle
851         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
852         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
853         * config/i386/i386.h (TARGET_AVX512BW): Define.
854         (TARGET_AVX512BW_P(x)): Ditto.
855         * config/i386/i386.opt: Add mavx512bw.
857 2014-08-11  Richard Biener  <rguenther@suse.de>
859         PR tree-optimization/62070
860         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
861         Remove SSA checking.
863 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
865         * asan.c (asan_check_flags): New enum.
866         (build_check_stmt_with_calls): Removed function.
867         (build_check_stmt): Split inlining logic to
868         asan_expand_check_ifn.
869         (instrument_derefs): Rename parameter.
870         (instrument_mem_region_access): Rename parameter.
871         (instrument_strlen_call): Likewise.
872         (asan_expand_check_ifn): New function.
873         (asan_instrument): Remove old code.
874         (pass_sanopt::execute): Change handling of
875         asan-instrumentation-with-call-threshold.
876         (asan_clear_shadow): Fix formatting.
877         (asan_function_start): Likewise.
878         (asan_emit_stack_protection): Likewise.
879         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
880         Update description.
881         * internal-fn.c (expand_ASAN_CHECK): New function.
882         * internal-fn.def (ASAN_CHECK): New internal function.
883         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
884         Update description.
885         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
886         * tree.c: Small comment fix.
888 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
890         * gimple.c (gimple_call_fnspec): Support internal functions.
891         (gimple_call_return_flags): Use const.
892         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
893         * internal-fn.def: Add fnspec information.
894         * internal-fn.h (internal_fn_fnspec): New function.
895         (init_internal_fns): Declare new function.
896         * internal-fn.c (internal_fn_fnspec_array): New global variable.
897         (init_internal_fns): New function.
898         * tree-core.h: Update macro call.
899         * tree.c (build_common_builtin_nodes): Initialize internal fns.
901 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
903         * lto-streamer.h (struct output_block::symbol): Change from
904         struct symtab_node to plain symtab_node.
905         (referenced_from_this_partition_p): Change first parameter
906         from struct symtab_node to plain symtab_node.
908 2014-08-10  Marek Polacek  <polacek@redhat.com>
910         PR c/51849
911         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
913 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
915         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
916         DECL correctly; do not give up on types in static storage.
918 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
920         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
922 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
924         * graphite-isl-ast-to-gimple.c:
925         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
927         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
929 2014-08-08  Guozhi Wei  <carrot@google.com>
931         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
933 2014-08-08  Cary Coutant  <ccoutant@google.com>
935         * dwarf2out.c (get_skeleton_type_unit): Remove.
936         (output_skeleton_debug_sections): Remove skeleton type units.
937         (output_comdat_type_unit): Likewise.
938         (dwarf2out_finish): Likewise.
940 2014-08-07  Yi Yang  <ahyangyi@google.com>
942         * predict.c (expr_expected_value_1): Remove the redundant assignment.
944 2014-08-08  Richard Biener  <rguenther@suse.de>
946         * lto-streamer.h (struct lto_input_block): Make it a class
947         with a constructor.
948         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
949         (struct lto_function_header, struct lto_simple_header,
950         struct lto_simple_header_with_strings,
951         struct lto_decl_header, struct lto_function_header): Make
952         a simple inheritance hieararchy.  Remove unused fields.
953         (struct lto_asm_header): Remove.
954         * lto-streamer-out.c (produce_asm): Adjust.
955         (lto_output_toplevel_asms): Likewise.
956         (produce_asm_for_decls): Likewise.
957         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
958         * data-streamer-in.c (string_for_index): Likewise.
959         * ipa-inline-analysis.c (inline_read_section): Likewise.
960         * ipa-prop.c (ipa_prop_read_section): Likewise.
961         (read_replacements_section): Likewise.
962         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
963         * lto-section-in.c (lto_create_simple_input_block): Likewise.
964         (lto_destroy_simple_input_block): Likewise.
965         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
966         (lto_input_toplevel_asms): Likewise.
968 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
969             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
970             Anna Tikhonova  <anna.tikhonova@intel.com>
971             Ilya Tocar  <ilya.tocar@intel.com>
972             Andrey Turetskiy  <andrey.turetskiy@intel.com>
973             Ilya Verbin  <ilya.verbin@intel.com>
974             Kirill Yukhin  <kirill.yukhin@intel.com>
975             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
977         * common/config/i386/i386-common.c
978         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
979         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
980         (ix86_handle_option): Handle OPT_mavx512dq.
981         * config/i386/cpuid.h (bit_AVX512DQ): Define.
982         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
983         set -mavx512dq accordingly.
984         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
985         OPTION_MASK_ISA_AVX512DQ.
986         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
987         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
988         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
989         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
990         * config/i386/i386.h (TARGET_AVX512DQ): Define.
991         (TARGET_AVX512DQ_P(x)): Ditto.
992         * config/i386/i386.opt: Add mavx512dq.
994 2014-08-08  Richard Biener  <rguenther@suse.de>
996         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
997         target_percent, target_percent_s): Export.
998         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
999         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
1000         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
1001         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
1002         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
1003         Move to gimple-fold.c.
1004         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
1005         strcat and strcpy.
1006         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
1007         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
1008         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
1009         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
1010         (rewrite_call_expr_array): Remove.
1011         (fold_builtin_sprintf_chk): Likewise.
1012         (fold_builtin_snprintf_chk): Likewise.
1013         (fold_builtin_varargs): Remove handling of sprintf_chk,
1014         vsprintf_chk, snprintf_chk and vsnprintf_chk.
1015         (gimple_fold_builtin_sprintf_chk): Remove.
1016         (gimple_fold_builtin_snprintf_chk): Likewise.
1017         (gimple_fold_builtin_varargs): Likewise.
1018         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
1019         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
1020         * gimple.c (gimple_seq_add_seq_without_update): New function.
1021         * gimple.h (gimple_seq_add_seq_without_update): Declare.
1022         * gimple-fold.c: Include output.h.
1023         (gsi_replace_with_seq_vops): New function, split out from ...
1024         (gimplify_and_update_call_from_tree): ... here.
1025         (replace_call_with_value): New function.
1026         (replace_call_with_call_and_fold): Likewise.
1027         (var_decl_component_p): Moved from builtins.c.
1028         (gimple_fold_builtin_memory_op): Moved from builtins.c
1029         fold_builtin_memory_op and rewritten to GIMPLE.
1030         (gimple_fold_builtin_memset): Likewise.
1031         (gimple_fold_builtin_strcpy): Likewise.
1032         (gimple_fold_builtin_strncpy): Likewise.
1033         (gimple_fold_builtin_strcat): Likewise.
1034         (gimple_fold_builtin_fputs): Likewise.
1035         (gimple_fold_builtin_memory_chk): Likewise.
1036         (gimple_fold_builtin_stxcpy_chk): Likewise.
1037         (gimple_fold_builtin_stxncpy_chk): Likewise.
1038         (gimple_fold_builtin_snprintf_chk): Likewise.
1039         (gimple_fold_builtin_sprintf_chk): Likewise.
1040         (gimple_fold_builtin_strlen): New function.
1041         (gimple_fold_builtin_with_strlen): New function split out from
1042         gimple_fold_builtin.
1043         (gimple_fold_builtin): Change signature and handle
1044         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
1045         here.  Call gimple_fold_builtin_with_strlen.
1046         (gimple_fold_call): Adjust.
1048 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
1050         * calls.c (precompute_arguments): Check
1051          promoted_for_signed_and_unsigned_p and set the promoted mode.
1052         (promoted_for_signed_and_unsigned_p): New function.
1053         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
1054         and set the promoted mode.
1055         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
1056         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
1057         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
1060 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
1062         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
1063         instead of SUBREG_PROMOTED_UNSIGNED_SET.
1064         (expand_call): Likewise.
1065         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
1066         to get promoted mode.
1067         * combine.c (record_promoted_value): Skip > 0 comparison with
1068         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
1069         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
1070         of SUBREG_PROMOTED_UNSIGNED_P.
1071         (convert_modes): Likewise.
1072         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
1073         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
1074         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
1075         SUBREG_PROMOTED_UNSIGNED_SET.
1076         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
1077         instead of SUBREG_PROMOTED_UNSIGNED_SET.
1078         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
1079         SUBREG_PROMOTED_SET.
1080         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
1081         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
1082         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
1083         of SUBREG_PROMOTED_UNSIGNED_P.
1084         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
1085         (SUBREG_PROMOTED_SET): New define.
1086         (SUBREG_PROMOTED_GET): Likewise.
1087         (SUBREG_PROMOTED_SIGN): Likewise.
1088         (SUBREG_PROMOTED_SIGNED_P): Likewise.
1089         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
1090         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
1091         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
1092         instead of SUBREG_PROMOTED_UNSIGNED_GET.
1093         (nonzero_bits1): Skip > 0 comparison with the results as
1094         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
1095         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
1096         of !SUBREG_PROMOTED_UNSIGNED_P.
1097         * simplify-rtx.c (simplify_unary_operation_1): Use new
1098         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
1099         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
1100         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
1101         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
1103 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
1105         * ipa-devirt.c: Include gimple-pretty-print.h
1106         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
1107         further tests.
1108         (decl_maybe_in_construction_p): Fix conditional on cdtor check
1109         (get_polymorphic_call_info): Fix return value
1110         (type_change_info): New sturcture based on ipa-prop
1111         variant.
1112         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
1113         based on ipa-prop variant.
1114         (extr_type_from_vtbl_ptr_store): New function
1115         based on ipa-prop variant.
1116         (record_known_type): New function.
1117         (check_stmt_for_type_change): New function.
1118         (get_dynamic_type): New function.
1119         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
1120         * tree-ssa-pre.c: ipa-utils.h
1121         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
1122         machinery; sanity check with ipa-prop devirtualization.
1123         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
1124         polymorphic flag.
1126 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
1128         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
1129         * alias.c, cfgexpand.c, cgraphbuild.c,
1130         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
1131         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
1132         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
1133         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
1134         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
1135         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
1136         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
1137         dse.c, except.c, gengtype.c, gimple-expr.c,
1138         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
1139         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
1140         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
1141         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
1142         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
1143         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
1144         pointer-set.h.
1145         * pointer-set.c: Remove file.
1146         * pointer-set.h: Remove file.
1148 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1150         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
1151         * config/arm/types.md (f_sels, f_seld): Delete.
1153 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1155         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
1156         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
1157         (aarch64_movdi_<mode>high): Likewise.
1158         (aarch64_mov<mode>high_di): Likewise.
1159         (aarch64_movdi_<mode>low): Likewise.
1160         (aarch64_mov<mode>low_di): Likewise.
1161         (aarch64_movtilow_tilow): Likewise.
1162         Add comment explaining usage of fp,simd attributes and of
1163         TARGET_FLOAT and TARGET_SIMD.
1165 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
1166             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1168         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
1169         Use MOVN when one of the half-words is 0xffff.
1171 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
1173         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
1175 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
1177         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
1178         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
1179         (rfs_str): String corresponding to RFS_* constants.
1180         (rank_for_schedule_stats_t): New typedef.
1181         (rank_for_schedule_stats): New static variable.
1182         (rfs_result): New static function.
1183         (rank_for_schedule): Track statistics for deciding heuristics.
1184         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
1185         static functions.
1186         (ready_sort): Use them for debug printouts.
1187         (schedule_block): Init statistics state.  Print statistics on
1188         rank_for_schedule decisions.
1190 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
1192         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
1194 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
1196         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
1197         constraint.
1199 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
1201         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
1202         function to not conflict.
1203         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
1204         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
1205         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
1206         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
1207         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
1208         of pointer_map.
1210 2014-08-07  Marek Polacek  <polacek@redhat.com>
1212         * fold-const.c (fold_binary_loc): Add folding of
1213         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
1215 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
1217         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
1218         instead of type size.
1219         (ASM_FINISH_DECLARE_OBJECT): Likewise.
1221 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
1223         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
1224         (*thumb1_movqi_insn): Likewise.
1225         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
1227 2014-08-07  Tom de Vries  <tom@codesourcery.com>
1229         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
1230         (glibc_2_11_or_earlier): Remove effective-target keywords.
1232 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
1234         * config/arm/arm.c (bdesc_2arg): Fix typo.
1235         (arm_atomic_assign_expand_fenv): Remove The default implementation.
1237 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
1239         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
1241 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
1243         PR debug/61923
1244         * haifa-sched.c (advance_one_cycle): Fix dump.
1245         (schedule_block): Don't advance cycle if we are already at the
1246         beginning of the cycle.
1248 2014-08-06  Martin Jambor  <mjambor@suse.cz>
1250         PR ipa/61393
1251         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
1253 2014-08-06  Richard Biener  <rguenther@suse.de>
1255         PR lto/62034
1256         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
1257         SCCs here.
1258         (lto_input_tree): Pop SCCs here.
1260 2014-08-06  Richard Biener  <rguenther@suse.de>
1262         PR tree-optimization/61320
1263         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
1264         handle misaligned loads.
1266 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
1268         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
1269         (aarch64_expand_vec_perm_const): Check for dup before zip.
1271 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1273         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
1274         CONST_INT_P instead of GET_CODE and compare.
1275         (aarch64_select_cc_mode): Likewise.
1276         (aarch64_print_operand): Likewise.
1277         (aarch64_rtx_costs): Likewise.
1278         (aarch64_simd_valid_immediate): Likewise.
1279         (aarch64_simd_check_vect_par_cnst_half): Likewise.
1280         (aarch64_simd_emit_pair_result_insn): Likewise.
1282 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
1284         * gdbhooks.py (find_gcc_source_dir): New helper function.
1285         (class PassNames): New class, locating and parsing passes.def.
1286         (class BreakOnPass): New command "break-on-pass".
1288 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
1290         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
1291         getting olde.
1293 2014-08-05  Richard Biener  <rguenther@suse.de>
1295         PR rtl-optimization/61672
1296         * emit-rtl.h (mem_attrs_eq_p): Declare.
1297         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
1298         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
1299         * cfgcleanup.c (merge_memattrs): Likewise.
1300         Include emit-rtl.h.
1302 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1304         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
1305         rather than singleton vectors.
1306         (vqdmlsls_lane_s32): Likewise.
1308 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1310         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
1311         Use VSDQ_HSI mode iterator.
1312         (aarch64_sqrdmulh_laneq<mode>): Likewise.
1313         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
1314         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
1315         Use BUILTIN_VDQHS macro.
1316         (sqrdmulh_laneq): Likewise.
1317         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
1318         (vqdmlals_laneq_s32): Likewise.
1319         (vqdmlslh_laneq_s16): Likewise.
1320         (vqdmlsls_laneq_s32): Likewise.
1321         (vqdmulhh_laneq_s16): Likewise.
1322         (vqdmulhs_laneq_s32): Likewise.
1323         (vqrdmulhh_laneq_s16): Likewise.
1324         (vqrdmulhs_laneq_s32): Likewise.
1326 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1328         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
1329         (vmuld_laneq_f64): Likewise.
1330         (vmuls_laneq_f32): Likewise.
1331         (vmul_n_f64): Likewise.
1332         (vmuld_lane_f64): Reimplement in C.
1333         (vmuls_lane_f32): Likewise.
1335 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1337         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
1338         to reservation.
1339         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
1341 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1343         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
1344         (rbitsi2): Likewise.
1345         (*arm_rev): Set predicable and predicable_short_it attributes.
1347 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1349         * convert.c (convert_to_integer): Guard transformation to lrint by
1350         -fno-math-errno.
1352 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
1354         * config/aarch64/aarch64-builtins.c
1355         (aarch64_simd_builtin_type_mode): Delete.
1356         (v8qi_UP): Remap to V8QImode.
1357         (v4hi_UP): Remap to V4HImode.
1358         (v2si_UP): Remap to V2SImode.
1359         (v2sf_UP): Remap to V2SFmode.
1360         (v1df_UP): Remap to V1DFmode.
1361         (di_UP): Remap to DImode.
1362         (df_UP): Remap to DFmode.
1363         (v16qi_UP):V16QImode.
1364         (v8hi_UP): Remap to V8HImode.
1365         (v4si_UP): Remap to V4SImode.
1366         (v4sf_UP): Remap to V4SFmode.
1367         (v2di_UP): Remap to V2DImode.
1368         (v2df_UP): Remap to V2DFmode.
1369         (ti_UP): Remap to TImode.
1370         (ei_UP): Remap to EImode.
1371         (oi_UP): Remap to OImode.
1372         (ci_UP): Map to CImode.
1373         (xi_UP): Remap to XImode.
1374         (si_UP): Remap to SImode.
1375         (sf_UP): Remap to SFmode.
1376         (hi_UP): Remap to HImode.
1377         (qi_UP): Remap to QImode.
1378         (aarch64_simd_builtin_datum): Make mode a machine_mode.
1379         (VAR1): Build builtin name.
1380         (aarch64_init_simd_builtins): Remove dead code.
1382 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
1384         * graphite-isl-ast-to-gimple.c:
1385         (set_options): New function.
1386         (scop_to_isl_ast): Add calling of set_options.
1388 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
1390         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
1391         (analyze_iv_to_split_insn): Don't initialize them.
1392         (get_ivts_expr): Removed.
1393         (allocate_basic_variable, insert_base_initialization): Use
1394         SET_SRC instead of *get_ivts_expr.
1395         (split_iv): Use &SET_SRC instead of get_ivts_expr.
1397 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
1399         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
1400         (translate_isl_ast_for_loop): Add checking of the
1401         flag_loop_parallelize_all.
1402         (ast_build_before_for): New function.
1403         (scop_to_isl_ast): Add checking of the
1404         flag_loop_parallelize_all.
1405         * graphite-dependences.c: Move the defenition of the
1406         scop_get_dependences from graphite-optimize-isl.c to this file.
1407         (apply_schedule_on_deps): Add checking of the ux's emptiness.
1408         (carries_deps): Add checking of the x's value.
1409         * graphite-optimize-isl.c: Move the defenition of the
1410         scop_get_dependences to graphite-dependences.c.
1411         * graphite-poly.h: Add declarations of scop_get_dependences
1412         and carries_deps.
1414 2014-08-04  Rohit  <rohitarulraj@freescale.com>
1416         PR target/60102
1417         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
1418         names.
1419         (alt_reg_names): Likewise.
1420         (rs6000_dwarf_register_span): For SPE high registers, replace
1421         dwarf register numbers with GCC hard register numbers.
1422         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
1423         (rs6000_dbx_register_number): For SPE high registers, return dwarf
1424         register number for the corresponding GCC hard register number.
1425         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
1426         newly added GCC hard register numbers for SPE high registers.
1427         (DWARF_FRAME_REGISTERS):  Likewise.
1428         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
1429         (DWARF_FRAME_REGNUM): Likewise.
1430         (FIXED_REGISTERS): Likewise.
1431         (CALL_USED_REGISTERS): Likewise.
1432         (CALL_REALLY_USED_REGISTERS): Likewise.
1433         (REG_ALLOC_ORDER): Likewise.
1434         (enum reg_class): Likewise.
1435         (REG_CLASS_NAMES): Likewise.
1436         (REG_CLASS_CONTENTS): Likewise.
1437         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
1439 2014-08-04  Richard Biener  <rguenther@suse.de>
1441         * gimple-fold.h (gimple_fold_builtin): Remove.
1442         * gimple-fold.c (gimple_fold_builtin): Make static.
1443         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
1444         fold_stmt, not gimple_fold_builtin.
1446 2014-08-04  Martin Liska <mliska@suse.cz>
1448         * cgraph.h (csi_end_p): Removed.
1449         (csi_next): Likewise.
1450         (csi_node): Likewise.
1451         (csi_start): Likewise.
1452         (cgraph_node_in_set_p): Likewise.
1453         (cgraph_node_set_size): Likewise.
1454         (vsi_end_p): Likewise.
1455         (vsi_next): Likewise.
1456         (vsi_node): Likewise.
1457         (vsi_start): Likewise.
1458         (varpool_node_set_size): Likewise.
1459         (cgraph_node_set_nonempty_p): Likewise.
1460         (varpool_node_set_nonempty_p): Likewise.
1461         * cgraphunit.c (cgraph_process_new_functions): vec replaces
1462         cgraph_node_set.
1463         * ipa-inline-transform.c: Likewise.
1464         * ipa-utils.c (cgraph_node_set_new): Removed.
1465         (cgraph_node_set_add): Likewise.
1466         (cgraph_node_set_remove): Likewise.
1467         (cgraph_node_set_find): Likewise.
1468         (dump_cgraph_node_set): Likewise.
1469         (debug_cgraph_node_set): Likewise.
1470         (free_cgraph_node_set): Likewise.
1471         (varpool_node_set_new): Likewise.
1472         (varpool_node_set_add): Likewise.
1473         (varpool_node_set_remove): Likewise.
1474         (varpool_node_set_find): Likewise.
1475         (dump_varpool_node_set): Likewise.
1476         (free_varpool_node_set): Likewise.
1477         (debug_varpool_node_set): Likewise.
1478         * tree-emutls.c (struct tls_var_data):
1479         (emutls_index): Removed.
1480         (emutls_decl): Likewise.
1481         (gen_emutls_addr): Function implementation uses newly added
1482         hash_map<varpool_node *, tls_var_data>.
1483         (clear_access_vars): Likewise.
1484         (create_emultls_var): Likewise.
1485         (ipa_lower_emutls): Likewise.
1486         (reset_access): New function.
1488 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
1490         * config/i386/i386.c (ix86_option_override_internal): Add
1491         PTA_RDRND and PTA_MOVBE for bdver4.
1493 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1494             James Greenhalgh  <james.greenhalgh@arm.com>
1496         * doc/md.texi (clrsb): Document.
1497         (clz): Change reference to x into operand 1.
1498         (ctz): Likewise.
1499         (popcount): Likewise.
1501 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1503         PR target/61713
1504         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
1505         move to subtarget in serial version if result is ignored.
1507 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1508             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1510         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
1511         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
1512         (sched_analyze_insn): Update use of try_group_insn to
1513         sched_macro_fuse_insns.
1514         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
1515         arguments that are not conditional jumps.
1517 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
1519         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
1520         family information. Handle BTVER2 cpu with cpuid family value.
1522 2014-08-04  Tom de Vries  <tom@codesourcery.com>
1524         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
1525         (glibc_2_11_or_earlier): Document effective-target keywords.
1527 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
1529         * ipa-devirt.c (odr_type_warn_count): Add type.
1530         (possible_polymorphic_call_targets): Set it.
1531         (ipa_devirt): Use it.
1533 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
1535         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
1536         Document.
1537         * ipa-devirt.c: Include hash-map.h
1538         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
1539         (clear_speculation): Break out of ...
1540         (get_class_context): ... here; speed up handling obviously useless
1541         speculations.
1542         (odr_type_warn_count, decl_warn_count): New structures.
1543         (final_warning_record): New structure.
1544         (final_warning_records): New static variable.
1545         (possible_polymorphic_call_targets): Cleanup handling of
1546         speculative info; do not build speculation when user do not care;
1547         record info about warnings when asked for.
1548         (add_decl_warning): New function.
1549         (type_warning_cmp): New function.
1550         (decl_warning_cmp): New function.
1551         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
1552         (gate): Enable pass when warnings are requested.
1553         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
1554         options.
1556 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
1558         * hash-map.h (default_hashmap_traits::mark_key_deleted):
1559         Fix cast.
1560         (hash_map::remove): New method.
1561         (hash_map::traverse): New method.
1562         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
1563         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
1564         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
1565         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
1566         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
1567         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
1568         pointer_map.
1570 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
1572         * hash-set.h: new File.
1573         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
1574         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
1575         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
1576         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
1577         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
1578         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
1579         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
1580         varpool.c: Use hash_set instead of pointer_set.
1582 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
1584         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
1586 2014-08-01  Jiong Wang <jiong.wang@arm.com>
1588         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
1589         for frame access when strict_p is false.
1591 2014-08-01  Renlin Li <renlin.li@arm.com>
1592 2014-08-01  Jiong Wang <jiong.wang@arm.com>
1594         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
1595         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
1596         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
1597         Declaration.
1598         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
1599         predicate.
1600         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
1601         aarch64_mem_pair_offset.
1603 2014-08-01  Jiong Wang <jiong.wang@arm.com>
1605         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
1606         offset.
1607         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
1608         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
1610 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
1612         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
1614 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
1616         PR regression/61510
1617         * cgraphunit.c (analyze_functions): Use get_create rather than get
1618         for decls which are clones of abstract functions.
1620 2014-08-01  Martin Liska  <mliska@suse.cz>
1622         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
1623         * ipa-prop.h (count_formal_params): Global function created from static.
1624         * ipa-prop.c (count_formal_params): Likewise.
1625         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
1626         profiles for semantically equivalent functions.
1627         * passes.c (do_per_function): If we load body of a function
1628         during WPA, this condition should behave same.
1629         * varpool.c (ctor_for_folding): More tolerant assert for variable
1630         aliases created during WPA.
1632 2014-08-01  Martin Liska  <mliska@suse.cz>
1634         * doc/invoke.texi (Options That Control Optimization): Documentation
1635         for -foptimize-strlen introduced. Optimization levels default options
1636         fixed.
1638 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
1640         * opts.c (common_handle_option): Handle -fsanitize=alignment.
1641         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
1642         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
1643         type to bool.
1644         * stor-layout.h (min_align_of_type): New prototype.
1645         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
1646         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
1647         check.
1648         * ubsan.c: Include builtins.h.
1649         (ubsan_expand_bounds_ifn): Change return type to bool,
1650         always return true.
1651         (ubsan_expand_null_ifn): Change return type to bool, change
1652         argument to gimple_stmt_iterator *.  Handle both null and alignment
1653         sanitization, take type from ckind argument's type rather than
1654         first argument.
1655         (instrument_member_call): Removed.
1656         (instrument_mem_ref): Remove t argument, add mem and base arguments.
1657         Handle both null and alignment sanitization, don't say whole
1658         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
1659         call instead of 2 argument.
1660         (instrument_null): Adjust instrument_mem_ref caller.  Don't
1661         instrument calls here.
1662         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
1663         like SANITIZE_NULL.
1664         * stor-layout.c (min_align_of_type): New function.
1665         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
1666         Or it into SANITIZE_UNDEFINED.
1667         * doc/invoke.texi (-fsanitize=alignment): Document.
1669 2014-07-31  Andi Kleen  <ak@linux.intel.com>
1671         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
1673 2014-07-31  Andi Kleen  <ak@linux.intel.com>
1675         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
1676         inchash.
1677         (vn_reference_compute_hash): Dito.
1678         (vn_nary_op_compute_hash): Dito.
1679         (vn_phi_compute_hash): Dito.
1680         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
1682 2014-07-31  Andi Kleen  <ak@linux.intel.com>
1684         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
1685         Rename to inchash:add_expr_commutative. Convert to inchash.
1686         (iterative_hash_hashable_expr): Rename to
1687         inchash:add_hashable_expr. Convert to inchash.
1688         (avail_expr_hash): Dito.
1690 2014-07-31  Andi Kleen  <ak@linux.intel.com>
1692         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
1693         Convert to inchash.
1695 2014-07-31  Andi Kleen  <ak@linux.intel.com>
1697         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
1699 2014-07-31  Andi Kleen  <ak@linux.intel.com>
1701         * Makefile.in (OBJS): Add rtlhash.o
1702         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
1703         (loc_checksum): Dito.
1704         (loc_checksum_ordered): Dito.
1705         (hash_loc_operands): Dito.
1706         (hash_locs): Dito.
1707         (hash_loc_list): Dito.
1708         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
1709         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
1710         * rtlhash.c: New file.
1711         * rtlhash.h: New file.
1713 2014-07-31  Andi Kleen  <ak@linux.intel.com>
1715         * inchash.h (inchash): Change inchash class to namespace.
1716         (class hash): ... Rename from inchash.
1717         (add_object): Move from macro to class template.
1718         * lto-streamer-out.c (hash_tree): Change inchash
1719         to inchash::hash.
1720         * tree.c (build_type_attribute_qual_variant): Dito.
1721         (type_hash_list): Dito.
1722         (attribute_hash_list): Dito.
1723         (iterative_hstate_expr): Rename to inchash::add_expr
1724         (build_range_type_1): Change inchash to inchash::hash
1725         and use hash::add_expr.
1726         (build_array_type_1): Dito.
1727         (build_function_type): Dito
1728         (build_method_type_directly): Dito.
1729         (build_offset_type): Dito.
1730         (build_complex_type): Dito.
1731         (make_vector_type): Dito.
1732         * tree.h (iterative_hash_expr): Dito.
1734 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
1736         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
1738 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
1740         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
1741         correct alphabetical position.
1742         (vpaddd_f64): Rewrite using builtins.
1743         (vpaddd_s64): Move to correct alphabetical position.
1744         (vpaddd_u64): New.
1746 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
1748         PR target/61844
1749         * config/sh/sh.c (sh_legitimate_address_p,
1750         sh_legitimize_reload_address): Handle reg+reg address modes when
1751         ALLOW_INDEXED_ADDRESS is false.
1752         * config/sh/predicates.md (general_movsrc_operand,
1753         general_movdst_operand): Likewise.
1755 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
1757         * config/aarch64/aarch64-builtins.c
1758         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
1759         BYTES_BIG_ENDIAN.
1761 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
1763         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
1764         the generated mask based on BYTES_BIG_ENDIAN.
1765         (aarch64_simd_check_vect_par_cnst_half): New.
1766         * config/aarch64/aarch64-protos.h
1767         (aarch64_simd_check_vect_par_cnst_half): New.
1768         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
1769         the check out to aarch64_simd_check_vect_par_cnst_half.
1770         (vect_par_cnst_lo_half): Likewise.
1771         * config/aarch64/aarch64-simd.md
1772         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
1773         (move_hi_quad_<mode>): Always generate a low mask.
1775 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1777         * doc/invoke.texi (AVR Options): Add documentation about
1778         __AVR_DEVICE_NAME__ built-in macro.
1780 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
1782         PR target/61948
1783         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
1784         constraints are satisfied.
1785         (<shift>di3_neon): Likewise.
1787 2014-07-31  Richard Biener  <rguenther@suse.de>
1789         PR tree-optimization/61964
1790         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
1791         by structural equality.
1793 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
1795         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
1796         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
1797         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
1798         New enums.
1799         * gcc.c (sanitize_spec_function): Support new option.
1800         (SANITIZER_SPEC): Remove now redundant check.
1801         * opts.c (common_handle_option): Support new option.
1802         (finish_options): Check for incompatibilities.
1803         * toplev.c (process_options): Split userspace-specific checks.
1805 2014-07-31  Richard Biener  <rguenther@suse.de>
1807         * lto-streamer.h (struct output_block): Remove global.
1808         (struct data_in): Remove labels, num_named_labels and
1809         num_unnamed_labels.
1810         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
1811         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
1813 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
1815         PR c++/60517
1816         * common.opt (-Wreturn-local-addr): Moved from c.opt.
1817         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
1818         (isolate_path): New argument to avoid inserting a trap.
1819         (find_implicit_erroneous_behaviour): Handle returning the address
1820         of a local variable.
1821         (find_explicit_erroneous_behaviour): Likewise.
1823 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
1825         PR lto/61868
1826         * toplev.c (init_random_seed): Move piece of code never called to
1827         set_random_seed.
1828         (set_random_seed): see above.
1830 2014-07-31  Tom de Vries  <tom@codesourcery.com>
1832         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
1834 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
1836         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
1837         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
1839 2014-07-31  Richard Biener  <rguenther@suse.de>
1841         * data-streamer.h (streamer_write_data_stream): Declare here,
1842         renamed from ...
1843         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
1844         * lto-cgraph.c (lto_output_node): Adjust.
1845         (lto_output_varpool_node): Likewise.
1846         * data-streamer-out.c (streamer_string_index): Likewise.
1847         (streamer_write_data_stream, lto_append_block): Move from ...
1848         * lto-section-out.c (lto_output_data_stream,
1849         lto_append_block): ... here.
1851 2014-07-30  Mike Stump  <mikestump@comcast.net>
1853         * configure.ac: Also check for popen.
1854         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
1855         * configure: Regenerate.
1856         * config.in:  Regenerate.
1858 2014-07-30  Martin Jambor  <mjambor@suse.cz>
1860         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
1861         parameter to gimple.
1863 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1865         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
1866         address as second parameter to __tpf_eh_return routine.
1868 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
1870         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
1871         Thumb2.
1873 2014-07-30  Tom Tromey  <tromey@redhat.com>
1875         PR c/59855
1876         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
1877         * doc/extend.texi (Type Attributes): Document designated_init
1878         attribute.
1880 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
1882         * graphite-isl-ast-to-gimple.c:
1883         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
1884         (gcc_expression_from_isl_expression): Pass type to
1885         gcc_expression_from_isl_ast_expr_id.
1887 2014-07-30  Richard Biener  <rguenther@suse.de>
1889         * lto-streamer.h (lto_write_data): New function.
1890         * langhooks.c (lhd_append_data): Do not free block.
1891         * lto-section-out.c (lto_write_data): New function writing
1892         raw data to the current section.
1893         (lto_write_stream): Adjust for langhook semantic change.
1894         (lto_destroy_simple_output_block): Write header directly.
1895         * lto-opts.c (lto_write_options): Write options directly.
1896         * lto-streamer-out.c (produce_asm): Write heaeder directly.
1897         (lto_output_toplevel_asms): Likewise.
1898         (copy_function_or_variable): Copy data directly.
1899         (write_global_references): Output index table directly.
1900         (lto_output_decl_state_refs): Likewise.
1901         (write_symbol): Write data directly.
1902         (produce_symtab): Adjust.
1903         (produce_asm_for_decls): Output header and refs directly.
1905 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
1907         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
1908         to speculative_targets
1909         (get_class_context): Fix handling of contextes without outer type;
1910         avoid matching non-polymorphic types in LTO.
1911         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
1912         parameter to speculative_targetsp; handle speculation.
1913         (dump_possible_polymorphic_call_targets): Update dumping.
1915 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
1917         * common.opt (Wodr): Enable by default.
1919 2014-07-29  Olivier Hainque  <hainque@adacore.com>
1921         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
1923 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
1925         PR bootstrap/61914
1926         * gengtype.c (strtoken): New function.
1927         (create_user_defined_type): Replace strtok with strtoken.
1929 2014-07-29  Nathan Sidwell  <nathan@acm.org>
1931         * gcov-io.c (gcov_var): Make hidden.
1932         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
1933         (gcov_do_dump): Declare.
1934         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
1936 2014-07-29  Martin Jambor  <mjambor@suse.cz>
1938         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
1939         parameter to gimple.
1940         (sra_modify_assign): Likewise.
1942 2014-07-29  Richard Biener  <rguenther@suse.de>
1944         PR middle-end/52478
1945         * expr.c (expand_expr_real_2): Revert last change.
1947 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
1949         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
1950         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
1951         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
1952         call.
1953         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
1954         (contains_type_p): Forward declare.
1955         (polymorphic_call_target_hasher::hash): Hash speculative info.
1956         (polymorphic_call_target_hasher::equal): Compare speculative info.
1957         (get_class_context): Handle speuclation.
1958         (contains_type_p): Update.
1959         (get_polymorphic_call_info_for_decl): Update.
1960         (walk_ssa_copies): Break out from ...
1961         (get_polymorphic_call_info): ... here; set speculative context
1962         before giving up.
1963         * ipa-prop.c (ipa_write_indirect_edge_info,
1964         ipa_read_indirect_edge_info): Stream speculative context.
1965         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
1966         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
1967         SPECULATIVE_MAYBE_DERIVED_TYPE).
1968         (possible_polymorphic_call_targets overriders): Update.
1969         (dump_possible_polymorphic_call_targets overriders): Update.
1970         (dump_possible_polymorphic_call_target_p overriders): Update.
1972 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
1974         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
1975         ipa-devirt path; fix thinko there.
1977 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
1979         * config/i386/i386.c (ix86_return_in_memory): Replace one
1980         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
1982 2014-07-28  Marek Polacek  <polacek@redhat.com>
1984         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
1986 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
1988         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
1989         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
1990         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
1991         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
1992         (USE_LD_AS_NEEDED): Likewise.
1993         (ASM_APP_ON): Likewise.
1994         (ASM_APP_OFF): Likewise.
1995         (TARGET_POSIX_IO): Likewise.
1996         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
1997         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
1998         (USE_LD_AS_NEEDED): Likewise.
1999         (ASM_APP_ON): Likewise.
2000         (ASM_APP_OFF): Likewise.
2001         (TARGET_POSIX_IO): Likewise.
2003 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
2005         PR middle-end/61734
2006         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
2007         operators other than the equality operators.
2009 2014-07-28  Richard Biener  <rguenther@suse.de>
2011         PR middle-end/52478
2012         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
2013         sure to register SImode ones, not only >= word_mode ones.
2014         * expr.c (expand_expr_real_2): When expanding -ftrapv
2015         binops do not use OPTAB_LIB_WIDEN.
2017 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
2019         PR middle-end/61919
2020         * tree-outof-ssa.c (insert_partition_copy_on_edge)
2021         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
2022         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
2023         inserting them in the insn stream.
2025 2014-07-28  Marek Polacek  <polacek@redhat.com>
2027         PR middle-end/61913
2028         * common.opt (Wodr): Add Var.
2030 2014-07-28  Richard Biener  <rguenther@suse.de>
2032         PR tree-optimization/61921
2033         * tree-ssa-structalias.c (create_variable_info_for_1): Check
2034         if there is a varpool node before dereferencing it.
2036 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
2038         * graphite-sese-to-poly.c:
2039         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
2040         id of the pbb), which contains pointer to the pbb1.
2042         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
2044 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
2046         * graphite-isl-ast-to-gimple.c:
2047         (graphite_create_new_guard): New function.
2048         (translate_isl_ast_node_if): New function.
2049         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
2051         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
2053 2014-07-27  Anthony Green  <green@moxielogic.com>
2055         * config.gcc: Add moxie-*-moxiebox* configuration.
2056         * config/moxie/moxiebox.h: New file.
2058 2014-07-26  Andrew Pinski  <apinski@cavium.com>
2060         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
2061         from the read only register.
2063 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
2065         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
2066         as the allocation class if it isn't likely to be spilled.
2068 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
2070         * rtl.h (tls_referenced_p): Declare.
2071         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
2072         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
2073         (mips_cannot_force_const_mem): Use tls_referenced_p.
2074         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
2075         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
2076         instead of pa_tls_referenced_p.
2077         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
2078         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
2079         (pa_legitimate_constant_p): Likewise.
2080         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
2081         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
2082         (rs6000_cannot_force_const_mem, rs6000_emit_move)
2083         (rs6000_address_for_altivec): Use tls_referenced_p instead of
2084         rs6000_tls_referenced_p.
2085         (rs6000_tls_symbol_ref_1): Delete.
2087 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
2089         PR target/44551
2090         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
2091         Optimize inverse of a VEC_CONCAT.
2093 2014-07-25  Xinliang David Li  <davidxl@google.com>
2095         * params.def: New parameter.
2096         * coverage.c (get_coverage_counts): Check new flag.
2097         (coverage_compute_profile_id): Check new flag.
2098         (coverage_begin_function): Check new flag.
2099         (coverage_end_function): Check new flag.
2100         * value-prof.c (coverage_node_map_initialized_p): New function.
2101         (init_node_map): Populate map with all functions.
2102         * doc/invoke.texi: Document new parameter.
2104 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
2105             Richard Biener <rguenther@suse.de>
2107         * lto-streamer-out.c (struct sccs): Turn to ...
2108         (class DFS): ... this one; refactor the DFS walk so it can
2109         be re-done on per-SCC basis.
2110         (DFS::DFS): New constructor.
2111         (DFS::~DFS): New destructor.
2112         (hash_tree): Add new MAP argument holding in-SCC hash values;
2113         remove POINTER_TYPE hashing hack.
2114         (scc_entry_compare): Rename to ...
2115         (DFS::scc_entry_compare): ... this one.
2116         (hash_scc): Rename to ...
2117         (DFS::hash_scc): ... this one; pass output_block instead
2118         of streamer_cache; work harder to get unique and stable SCC
2119         hashes.
2120         (DFS_write_tree): Rename to ...
2121         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
2122         (lto_output_tree): Update.
2124 2014-07-25  Andi Kleen  <ak@linux.intel.com>
2126         * lto-streamer-out.c (hash_tree): Convert to inchash.
2128 2014-07-25  Andi Kleen  <ak@linux.intel.com>
2130         * tree.c (build_type_attribute_qual_variant): Use inchash.
2131         (type_hash_list): Dito.
2132         (attribute_hash_list): Dito
2133         (iterative_hstate_expr): Dito.
2134         (iterative_hash_expr): Dito.
2135         (build_range_type_1): Dito.
2136         (build_array_type_1): Dito.
2137         (build_function_type): Dito.
2138         (build_method_type_directly): Dito.
2139         (build_offset_type): Dito.
2140         (build_complex_type): Dito.
2141         (make_vector_type): Dito.
2142         * tree.h (iterative_hash_expr): Add compat wrapper.
2143         (iterative_hstate_expr): Add.
2145 2014-07-25  Andi Kleen  <ak@linux.intel.com>
2147         * Makefile.in (OBJS): Add inchash.o.
2148         (PLUGIN_HEADERS): Add inchash.h.
2149         * ipa-devirt.c: Include inchash.h.
2150         * lto-streamer-out.c: Dito.
2151         * tree-ssa-dom.c: Dito.
2152         * tree-ssa-pre.c: Dito.
2153         * tree-ssa-sccvn.c: Dito.
2154         * tree-ssa-tail-merge.c: Dito.
2155         * asan.c: Dito.
2156         * tree.c (iterative_hash_hashval_t): Move to ...
2157         (iterative_hash_host_wide_int): Move to ...
2158         * inchash.c: Here. New file.
2159         * tree.h (iterative_hash_hashval_t): Move to ...
2160         (iterative_hash_host_wide_int): Move to ...
2161         * inchash.h: Here. New file.
2163 2014-07-25  Richard Biener  <rguenther@suse.de>
2165         PR middle-end/61762
2166         PR middle-end/61894
2167         * fold-const.c (native_encode_int): Add and handle offset
2168         parameter to do partial encodings of expr.
2169         (native_encode_fixed): Likewise.
2170         (native_encode_real): Likewise.
2171         (native_encode_complex): Likewise.
2172         (native_encode_vector): Likewise.
2173         (native_encode_string): Likewise.
2174         (native_encode_expr): Likewise.
2175         * fold-const.c (native_encode_expr): Add offset parameter
2176         defaulting to -1.
2177         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
2178         (fold_ctor_reference): Handle all reads from tcc_constant
2179         ctors.
2181 2014-07-25  Richard Biener  <rguenther@suse.de>
2183         * tree-inline.c (estimate_move_cost): Mark speed_p argument
2184         as possibly unused.
2186 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2188         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
2190 2014-07-24  Kyle McMartin  <kyle@redhat.com>
2192         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
2194 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2196         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
2197         Add prototype.
2198         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
2199         function.
2200         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
2201         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2202         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
2204 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2206         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
2207         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
2208         aggregate types.  Instead, *all* aggregate types, except for single-
2209         element or homogeneous float/vector aggregates, are quadword-aligned
2210         if required by their type alignment.  Issue -Wpsabi note when a type
2211         is now treated differently than before.
2213 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2215         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
2216         does not fit fully into floating-point registers, and there is still
2217         space in the register parameter area, use GPRs to pass those parts
2218         of the argument.  Issue -Wpsabi note if any parameter is now treated
2219         differently than before.
2220         (rs6000_arg_partial_bytes): Update.
2222 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
2224         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
2226 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
2228         * rtl.h (target_rtl): Remove lang_dependent_initialized.
2229         * toplev.c (initialize_rtl): Don't use it.  Move previously
2230         "language-dependent" calls to...
2231         (backend_init): ...here.
2232         (lang_dependent_init_target): Don't set lang_dependent_initialized.
2233         Assert that RTL initialization hasn't happend yet.
2235 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
2237         PR rtl-optimization/61629
2238         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
2239         they have already been initialized.
2241 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
2243         PR middle-end/61268
2244         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
2245         DECL_INCOMING_RTL and entry_parm.
2246         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
2247         * calls.c (load_register_parameters): Likewise argument values.
2248         (emit_library_call_value_1, store_one_arg): Likewise argument
2249         save areas.
2250         * config/i386/i386.c (assign_386_stack_local): Likewise the local
2251         stack slot.
2252         * explow.c (validize_mem): Modify the argument in-place.
2254 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
2256         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
2257         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
2259 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
2261         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
2262         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
2264 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
2266         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
2267         (aarch64_save_callee_saves): New parameter "skip_wb".
2268         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
2270 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
2272         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
2273         "wb_candidate2".
2274         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
2276 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
2278         * graphite-isl-ast-to-gimple.c:
2279         (graphite_create_new_loop): Add calling of isl_id_free to properly
2280         decrement reference counts.
2282         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
2284 2014-07-24  Martin Liska  <mliska@suse.cz>
2285         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
2286         function used.
2287         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
2288         (rs6000_code_end): Likewise.
2290 2014-07-24  Martin Liska  <mliska@suse.cz>
2292         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
2293         symtab_node funtion used.
2294         (rs6000_xcoff_declare_object_name): Likewise.
2296 2014-07-24  Martin Liska  <mliska@suse.cz>
2298         * cgraphunit.c (compile): Correct function used.
2300 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
2302         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
2303         as non-indexable.
2305 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
2307         PR lto/61802
2308         * varasm.c (bss_initializer_p): Handle offlined ctors.
2309         (align_variable, get_variable_align): Likewise.
2310         (make_decl_one_only): Likewise.
2311         (default_binds_local_p_1): Likewise.
2312         (decl_binds_to_current_def_p): Likewise.
2313         (get_variable_section): Get constructor if it is offlined.
2314         (assemble_variable_contents): Sanity check that the caller
2315         streamed in the ctor in LTO.
2317 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
2319         * graphite-isl-ast-to-gimple.c:
2320         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
2321         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
2322         isl_ast_op_pdiv_r to the different case.
2324         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
2326 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2328         PR middle-end/61876
2329         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
2330         when flag_errno_math is on.
2332 2014-07-24  Martin Liska  <mliska@suse.cz>
2334         * cgraph.h (varpool_node):
2335         (availability get_availability (void)):
2336         created from cgraph_variable_initializer_availability
2337         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
2338         created from: cgraph_variable_initializer_availability
2339         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
2340         (void finalize_named_section_flags (void)):
2341         created from varpool_finalize_named_section_flags
2342         (bool assemble_decl (void)): created from varpool_assemble_decl
2343         (void analyze (void)): created from varpool_analyze_node
2344         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
2345         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
2346         (void remove_initializer (void)): created from varpool_remove_initializer
2347         (tree get_constructor (void)): created from varpool_get_constructor
2348         (bool externally_visible_p (void)): created from varpool_externally_visible_p
2349         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
2350         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
2351         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
2352         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
2353         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
2354         (static bool output_variables (void)): created from varpool_output_variables
2355         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
2356         created from varpool_extra_name_alias
2357         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
2358         (static void dump_varpool (FILE *f)): created from dump_varpool
2359         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
2360         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
2361         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
2362         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
2363         (void assemble_aliases (void)): created from assemble_aliases
2365 2014-07-24  Martin Liska  <mliska@suse.cz>
2367         * cgraph.h (symtab_node):
2368         (void register_symbol (void)): created from symtab_register_node
2369         (void remove (void)): created from symtab_remove_node
2370         (void dump (FILE *f)): created from dump_symtab_node
2371         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
2372         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
2373         (struct ipa_ref *add_reference (symtab_node *referred_node,
2374         enum ipa_ref_use use_type)): created from add_reference 
2375         (struct ipa_ref *add_reference (symtab_node *referred_node,
2376         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
2377         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
2378         gimple stmt)): created from maybe_add_reference
2379         (bool semantically_equivalent_p (symtab_node *target)): created from
2380         symtab_semantically_equivalent_p
2381         (void remove_from_same_comdat_group (void)): created from
2382         remove_from_same_comdat_group
2383         (void add_to_same_comdat_group (symtab_node *old_node)): created from
2384         symtab_add_to_same_comdat_group
2385         (void dissolve_same_comdat_group_list (void)): created from
2386         symtab_dissolve_same_comdat_group_list
2387         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
2388         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
2389         created from symtab_alias_ultimate_target
2390         (inline symtab_node *next_defined_symbol (void)): created from
2391         symtab_next_defined_symbol
2392         (bool resolve_alias (symtab_node *target)): created from
2393         symtab_resolve_alias
2394         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
2395         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
2396         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
2397         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
2398         (void set_section (const char *section)): created from set_section_1 
2399         (enum availability get_availability (void)): created from symtab_node_availability
2400         (void make_decl_local (void)): created from symtab_make_decl_local
2401         (bool real_symbol_p (void)): created from symtab_read_node
2402         (can_be_discarded_p (void)): created from symtab_can_be_discarded
2403         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
2404         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
2405         symtab_in_same_comdat_p;
2406         (bool address_taken_from_non_vtable_p (void)): created from
2407         address_taken_from_non_vtable_p
2408         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
2409         (static void dump_table (FILE *)): created from dump_symtab
2410         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
2411         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
2412         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
2413         symtab_used_from_object_file_p 
2414         (void dump_base (FILE *)): created from dump_symtab_base
2415         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
2416         (void unregister (void)): created from symtab_unregister_node
2417         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
2418         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
2419         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
2420         symtab_nonoverwritable_alias_1
2421         * cgraph.h (cgraph_node):
2422         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
2423         created from cgraph_remove_node_and_inline_clones
2424         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
2425         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
2426         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
2427         (cgraph_node *function_symbol (enum availability *avail = NULL)):
2428         created from cgraph_function_node
2429         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
2430         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
2431         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
2432         created from cgraph_create_clone 
2433         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
2434         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
2435         created from cgraph_create_virtual_clone
2436         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
2437         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
2438         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
2439         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
2440         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
2441         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
2442         created from cgraph_function_version_info
2443         (struct cgraph_function_version_info *insert_new_function_version (void)):
2444         created from insert_new_cgraph_node_version
2445         (struct cgraph_function_version_info *function_version (void)): created from
2446         get_cgraph_node_version
2447         (void analyze (void)): created from analyze_function
2448         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
2449         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
2450         tree real_alias) cgraph_add_thunk
2451         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
2452         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
2453         created from cgraph_function_or_thunk_node
2454         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
2455         created from expand_thunk
2456         (void reset (void)): created from cgraph_reset_node
2457         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
2458         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
2459         (void remove (void)): created from cgraph_remove_node
2460         (void dump (FILE *f)): created from dump_cgraph_node
2461         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
2462         (bool get_body (void)): created from cgraph_get_body
2463         (void release_body (void)): created from cgraph_release_function_body
2464         (void unnest (void)): created from cgraph_unnest_node
2465         (void make_local (void)): created from cgraph_make_node_local
2466         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
2467         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
2468         gcov_type count, int freq)): created from cgraph_create_edge
2469         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
2470         gcov_type count, int freq)): created from cgraph_create_indirect_edge
2471         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
2472         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
2473         created from cgraph_create_edge_including_clones
2474         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
2475         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
2476         (void remove_callers (void)): created from cgraph_node_remove_callers
2477         (void remove_callees (void)): created from cgraph_node_remove_callees
2478         (enum availability get_availability (void)): created from cgraph_function_body_availability
2479         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
2480         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
2481         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
2482         (void call_duplication_hooks (cgraph_node *node2)): created from
2483         cgraph_call_node_duplication_hooks
2484         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
2485         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
2486         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
2487         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
2488         (void call_function_insertion_hooks (void)):
2489         created from cgraph_call_function_insertion_hooks
2490         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
2491         (bool local_p (void)): created from cgraph_local_node
2492         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
2493         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
2494         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
2495         (inline bool only_called_directly_or_aliased_p (void)):
2496         created from cgraph_only_called_directly_or_aliased_p
2497         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
2498         created from cgraph_will_be_removed_from_program_if_no_direct_calls
2499         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
2500         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
2501         (bool can_remove_if_no_direct_calls_p (void)):
2502         created from cgraph_can_remove_if_no_direct_calls_p
2503         (inline bool has_gimple_body_p (void)):
2504         created from cgraph_function_with_gimple_body_p
2505         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
2506         (static void dump_cgraph (FILE *f)): created from dump_cgraph
2507         (static inline void debug_cgraph (void)): created from debug_cgraph
2508         (static void record_function_versions (tree decl1, tree decl2)):
2509         created from record_function_versions
2510         (static void delete_function_version (tree decl)):
2511         created from delete_function_version
2512         (static void add_new_function (tree fndecl, bool lowered)):
2513         created from cgraph_add_new_function
2514         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
2515         (static cgraph_node * create (tree decl)): created from cgraph_create_node
2516         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
2517         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
2518         (static cgraph_node *get_for_asmname (tree asmname)):
2519         created from cgraph_node_for_asm
2520         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
2521         created from cgraph_same_body_alias 
2522         (static bool used_from_object_file_p_worker (cgraph_node *node,
2523         void *): new function
2524         (static bool non_local_p (cgraph_node *node, void *)):
2525         created from cgraph_non_local_node_p_1
2526         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
2527         created from verify_cgraph
2528         (static bool make_local (cgraph_node *node, void *)):
2529         created from cgraph_make_node_local
2530         (static cgraph_node *create_alias (tree alias, tree target)):
2531         created from cgraph_create_function_alias
2532         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
2533         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
2534         created from cgraph_create_edge_1
2535         * cgraph.h (varpool_node):
2536         (void remove (void)): created from varpool_remove_node
2537         (void dump (FILE *f)): created from dump_varpool_node
2539 2014-07-24  Richard Biener  <rguenther@suse.de>
2541         PR ipa/61823
2542         * tree-ssa-structalias.c (create_variable_info_for_1):
2543         Use varpool_get_constructor.
2544         (create_variable_info_for): Likewise.
2546 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
2548         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
2549         subtract outgoing area size when restoring stack_pointer_rtx.
2551 2014-07-24  Nick Clifton  <nickc@redhat.com>
2553         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
2554         that operations are taking place in parallel.
2555         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
2557 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
2559         * omp-low.c (extract_omp_for_data): Add missing break statement.
2561 2014-07-24  Richard Biener  <rguenther@suse.de>
2563         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
2564         * tree-inline.c (estimate_move_cost): Add speed_p parameter
2565         and adjust MOVE_RATIO query accordingly.
2566         (estimate_num_insns): Adjust callers.
2567         * ipa-prop.c (ipa_populate_param_decls): Likewise.
2568         * ipa-cp.c (gather_context_independent_values,
2569         estimate_local_effects): Likewise.
2570         * ipa-split.c (consider_split): Likewise.
2572 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
2574         * config/i386/driver-i386.c: Remove names of unused arguments and
2575         unnecessary unused attributes.
2576         * config/i386/host-mingw32.c: Likewise.
2577         * config/i386/i386.c: Likewise.
2578         * config/i386/winnt-stubs.c: Likewise.
2579         * config/i386/winnt.c: Likewise.
2581 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2583         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
2584         (aarch64_gen_loadwb_pair): New helper function.
2585         (aarch64_expand_epilogue): Simplify code using new helper functions.
2586         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
2588 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2590         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
2591         (aarch64_gen_storewb_pair): New helper function.
2592         (aarch64_expand_prologue): Simplify code using new helper functions.
2593         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
2595 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2597         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
2598         Rename to aarch64_save_callee_saves, remove restore code.
2599         (aarch64_restore_callee_saves): New function.
2601 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2603         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
2604         (aarch64_save_callee_saves): New function to handle reg save
2605         for both core and vectore regs.
2607 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2609         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
2610         (aarch64_gen_store_pair): New helper function.
2611         (aarch64_save_or_restore_callee_save_registers)
2612         (aarch64_save_or_restore_fprs): Use new helper functions.
2614 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2616         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
2617         (aarch64_save_or_restore_callee_save_registers)
2618         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
2620 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2622         * config/aarch64/aarch64.c
2623         (aarch64_save_or_restore_callee_save_registers)
2624         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
2626 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2628         * config/aarch64/aarch64.c
2629         (aarch64_save_or_restore_callee_save_registers)
2630         (aarch64_save_or_restore_fprs): Remove 'increment'.
2632 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2634         * config/aarch64/aarch64.c
2635         (aarch64_save_or_restore_callee_save_registers)
2636         (aarch64_save_or_restore_fprs): Use register offset in
2637         cfun->machine->frame.reg_offset.
2639 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2641         * config/aarch64/aarch64.c
2642         (aarch64_save_or_restore_callee_save_registers)
2643         (aarch64_save_or_restore_fprs): Remove base_rtx.
2645 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2647         * config/aarch64/aarch64.c
2648         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
2649         to 'start_offset'.  Remove local variable 'start_offset'.
2651 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2653         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
2654         type to HOST_WIDE_INT.
2656 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2658         * config/aarch64/aarch64.c (aarch64_expand_prologue)
2659         (aarch64_save_or_restore_fprs)
2660         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
2662 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2664         * config/arm/t-rtems-eabi: Add
2665         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
2666         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
2667         mbig-endian/mthumb/march=armv7-r, and
2668         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
2669         multilibs.
2671 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2672             Chris Johns <chrisj@rtems.org>
2673             Joel Sherrill <joel.sherrill@oarcorp.com>
2675         * config.gcc: Add nios2-*-rtems*.
2676         * config/nios2/rtems.h: New file.
2677         * gcc/config/nios2/t-rtems: New file.
2679 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
2681         PR target/61396
2682         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
2683         constant numbers, not general constants.
2684         (rs6000_expand_vector_init): Ditto.
2686 2014-07-23  Nathan Sidwell  <nathan@acm.org>
2688         * gcov-tool.c (gcov_list): Declare here.
2689         (set_gcov_list): Remove.
2690         (gcov_output_files): Set gcov_list directly.
2692 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
2694         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
2696 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
2698         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
2699         callee-saved registers are available for padding purpose
2700         and r3 is not mandatory, then prefer use those callee-saved
2701         instead of r3.
2703 2014-07-23  Richard Biener  <rguenther@suse.de>
2705         * params.def (PARAM_MAX_COMBINE_INSNS): New.
2706         * combine.c: Include statistics.h and params.h.
2707         (combine_instructions): Guard three and four insn combines
2708         with max-combine-insns value.  Record statistics for combines
2709         performed.
2710         * doc/invoke.texi (max-combine-insns): Document new param.
2712 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
2714         * graphite-isl-ast-to-gimple.c:
2715         (translate_isl_ast_node_block): New function.
2716         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
2718         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
2719         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
2721 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
2723         * graphite-isl-ast-to-gimple.c:
2724         (get_max_schedule_dimensions): New function.
2725         (extend_schedule): Likewise.
2726         (generate_isl_schedule): Add calling of extend_schedule and
2727         get_max_schedule_dimensions.
2729 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2731         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
2732         (case UNSPEC): Handle UNSPEC_RBIT.
2734 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2736         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
2737         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
2739 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2741         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
2743 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
2745         * graphite-isl-ast-to-gimple.c:
2746         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
2747         (ivs_params_clear):
2748         (build_iv_mapping): New function.
2749         (translate_isl_ast_node_user): Likewise.
2750         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
2752         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
2753         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
2754         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
2756 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
2758         PR target/55701
2759         * config/arm/arm.md (setmem): New pattern.
2760         * config/arm/arm-protos.h (struct tune_params): New fields.
2761         (arm_gen_setmem): New prototype.
2762         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
2763         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
2764         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
2765         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
2766         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
2767         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
2768         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
2769         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
2770         (arm_const_inline_cost): New function.
2771         (arm_block_set_max_insns): New function.
2772         (arm_block_set_non_vect_profit_p): New function.
2773         (arm_block_set_vect_profit_p): New function.
2774         (arm_block_set_unaligned_vect): New function.
2775         (arm_block_set_aligned_vect): New function.
2776         (arm_block_set_unaligned_non_vect): New function.
2777         (arm_block_set_aligned_non_vect): New function.
2778         (arm_block_set_vect, arm_gen_setmem): New functions.
2780 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
2782         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
2784 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
2786         PR target/61855
2787         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
2788         out of #ifdef __OPTIMIZE__.
2790 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
2792         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
2793         different trapping status if -fnon-call-exceptions is enabled.
2795 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
2797         * expr.c (store_field): Handle VOIDmode for calls that return values
2798         in multiple locations.
2800 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2802         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
2803         (altivec_vsldoi_<mode>): Likewise.
2805 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
2807         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
2808         to the number of characters in the line.
2810 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
2812         * graphite-isl-ast-to-gimple.c: Add using of
2813         build_nonstandard_integer_type instead of int128_integer_type_node.
2815 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
2817         * toplev.c (output_stack_usage): Adjust the location of the warning.
2819 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
2821         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
2822         (*membar_storeload): Disable for LEON3.
2824 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2826         PR rtl-optimization/61461
2827         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
2829 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
2831         PR target/61794
2832         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
2833         Fix instruction constraint.
2834         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
2836 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
2838         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
2840 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
2842         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
2843         GNU coding standards.
2844         (nds32_register_move_cost): Likewise.
2845         (nds32_memory_move_cost): Likewise.
2846         (nds32_address_cost): Likewise.
2848 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2850         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
2852 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
2854         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
2855         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
2856         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
2857         (HAVE_sync_compare_and_swapqi): Define.
2858         (HAVE_sync_compare_and_swaphi): Likewise.
2859         (HAVE_sync_compare_and_swapsi): Likewise.
2861 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
2863         * config/mips/p5600.md: Add missing cpu tests.
2865 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2867         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
2868         (vmla_f64): Likewise.
2869         (vfms_f64): Likewise.
2870         (vmls_f64): Likewise.
2872 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2874         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
2875         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
2877 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2879         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
2880         (vmlal_high_lane_s32): Likewise.
2881         (vmlal_high_lane_u16): Likewise.
2882         (vmlal_high_lane_u32): Likewise.
2883         (vmlsl_high_lane_s16): Likewise.
2884         (vmlsl_high_lane_s32): Likewise.
2885         (vmlsl_high_lane_u16): Likewise.
2886         (vmlsl_high_lane_u32): Likewise.
2888 2014-07-17  Terry Guo  <terry.guo@arm.com>
2890         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
2891         (alus_reg): Renamed to alus_sreg.
2892         * config/arm/arm-fixed.md: Change type of non-dsp instructions
2893         from alu_reg to alu_sreg.  Change type of dsp instructions from
2894         alu_reg to alu_dsp_reg.
2895         * config/arm/thumb1.md: Likewise.
2896         * config/arm/thumb2.md: Likewise.
2897         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
2898         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
2899         with alu_sreg and alus_sreg.
2900         * config/arm/arm1026ejs.md (alu_op): Likewise.
2901         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
2902         * config/arm/arm926ejs.md (9_alu_op): Likewise.
2903         * config/arm/fa526.md (526_alu_op): Likewise.
2904         * config/arm/fa606te.md (606te_alu_op): Likewise.
2905         * config/arm/fa626te.md (626te_alu_op): Likewise.
2906         * config/arm/fa726te.md (726te_alu_op): Likewise.
2907         * config/arm/fmp626.md (mp626_alu_op): Likewise.
2908         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
2909         alu_sreg, alu_dsp_reg and alus_sreg.
2910         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
2911         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
2912         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
2913         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
2914         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
2915         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
2916         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
2917         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
2918         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
2919         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
2920         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
2921         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
2922         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
2923         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
2924         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
2925         alus_reg to alus_sreg.
2927 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
2929         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
2930         infinity format.
2932 2014-07-17  Richard Biener  <rguenther@suse.de>
2934         PR rtl-optimization/61801
2935         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
2936         don't set reg_pending_barrier if it appears in a debug-insn.
2938 2014-07-16  DJ Delorie  <dj@redhat.com>
2940         * config/rx/rx.c (rx_option_override): Fix alignment values.
2941         (rx_align_for_label): Likewise.
2943 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
2945         PR target/61737.
2946         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
2947         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
2948         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
2949         functions.
2950         (cris_print_index, cris_print_operand, cris_constant_index_p)
2951         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
2952         (cris_address_cost): Ditto last CONSTANT_P.
2953         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
2954         callers changed.  Yield cris_offsettable_symbol for non-PIC
2955         constant symbolic expressions including labels.  Yield cris_unspec
2956         for all unspecs.
2957         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
2958         target to pic_offset_table_rtx for calls that will likely go
2959         through PLT, const0_rtx when they can't.  All callers changed.
2960         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
2961         symbolic expressions to be PICified.  Remove second, redundant,
2962         assert on can_create_pseudo_p returning non-zero.  Use
2963         replace_equiv_address_nv, not replace_equiv_address, for final
2964         operand update.
2965         * config/cris/cris.md ("movsi"): Move variable t to pattern
2966         toplevel. Adjust assert for new cris_symbol_type member.  Use
2967         CONSTANT_P instead of CONSTANT_ADDRESS_P.
2968         ("*movsi_internal") <case 9>: Make check for valid unspec operands
2969         for lapc stricter.
2970         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
2971         ("call", "call_value"): Use second incoming operand as a marker
2972         for pic-offset-table-register being used.
2973         ("*expanded_call_non_v32", "*expanded_call_v32")
2974         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
2975         second incoming operand to CALL, match cris_call_type_marker.
2976         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
2977         ("*expanded_call_side"): Ditto.  Fix typo in comment.
2978         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
2979         CONSTANT_P.
2980         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
2981         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
2982         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
2983         users changed.  Add members cris_offsettable_symbol and cris_unspec.
2984         (cris_symbol_type): Rename from cris_pic_symbol_type.
2985         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
2986         just CONSTANT_P.
2987         * config/cris/cris-protos.h (cris_symbol_type_of,
2988         cris_expand_pic_call_address): Adjust prototypes.
2989         (cris_legitimate_constant_p): New prototype.
2991         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
2992         an existing tmake_file.  Don't add t-slibgcc and t-linux.
2994 2014-07-17  Jason Merrill  <jason@redhat.com>
2996         PR c++/61623
2997         * symtab.c (symtab_remove_from_same_comdat_group): Also
2998         set_comdat_group to NULL_TREE.
2999         (verify_symtab): Fix diagnostic.
3001 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
3003         PR target/61662
3004         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
3006 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
3008         Support location tracking for built-in macro tokens
3009         * input.h (is_location_from_builtin_token): New function declaration.
3010         * input.c (is_location_from_builtin_token): New function definition.
3011         * toplev.c (general_init): Tell libcpp what the pre-defined
3012         spelling location for built-in tokens is.
3014 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
3016         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
3017         on the FUNCTION_DECL.
3019 2014-07-16  Richard Biener  <rguenther@suse.de>
3021         PR other/61782
3022         * doc/extend.texi (always_inline): Clarify.
3024 2014-07-15  Eric Christopher  <echristo@gmail.com>
3026         * doc/invoke.texi (Link Options): Document -z option.
3028 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
3030         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
3031         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
3033 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
3035         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
3037 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
3039         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
3040         varpool_assemble_decl.
3041         * varpool.c (varpool_assemble_decl): Assert that node->definition is
3042         true.
3044 2014-07-15  Michael Matz  <matz@suse.de>
3046         PR rtl-optimization/61772
3047         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
3049 2014-07-15  Richard Biener  <rguenther@suse.de>
3051         * opts.c (default_options_table): Disable bit-ccp at -Og.
3053 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
3055         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
3057 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
3059         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
3060         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
3061         call langhook for unknown declaration.
3062         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
3063         * tree.h (DECL_ARGUMENTS): Update.
3064         * print-tree.c (print_node): Update.
3065         * tree-core.h (tree_decl_non_common): Remove arguments.
3066         (tree_function_decl): Add arguments.
3068 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
3070         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
3072 2014-07-14  Richard Biener  <rguenther@suse.de>
3074         PR tree-optimization/61779
3075         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
3076         simplifying a condition.
3078 2014-07-14  Richard Biener  <rguenther@suse.de>
3080         * builtins.c (c_strlen): Make only_value == 2 really only
3081         affect warning generation.
3083 2014-07-14  Richard Biener  <rguenther@suse.de>
3085         PR tree-optimization/61757
3086         PR tree-optimization/61783
3087         PR tree-optimization/61787
3088         * tree-ssa-dom.c (record_equality): Revert canonicalization
3089         change and add comment.
3090         (propagate_rhs_into_lhs): Revert previous fix, removing
3091         loop depth restriction again.
3093 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3095         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
3096         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
3097         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
3098         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
3099         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
3100         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
3101         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
3103 2014-07-14  Richard Biener  <rguenther@suse.de>
3105         * cgraph.h (decl_in_symtab_p): Make inline.
3107 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
3109         PR middle-end/61294
3110         * doc/invoke.texi (-Wmemset-transposed-args): Document.
3112         PR target/61656
3113         * config/i386/i386.c (classify_argument): Don't merge classes above
3114         number of words.
3116 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
3118         * cgraph.h (symtab_node): Add nonzero_address.
3119         (decl_in_symtab_p): Break out from ...
3120         (symtab_get_node): ... here.
3121         * fold-const.c: Include cgraph.h
3122         (tree_single_nonzero_warnv_p): Use symtab to determine
3123         if symbol is non-zero.
3124         * symtab.c (symtab_node::nonzero_address): New method.
3126 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
3128         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
3129         forgotten in previous commit.
3131 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
3133         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
3134         on builtin types.
3135         * ipa-devirt.c: Include stor-layout.h and intl.h
3136         (odr_subtypes_equivalent_p): New function.
3137         (warn_odr): New function.
3138         (warn_type_mismatch): New function.
3139         (odr_types_equivalent_p): New function.
3140         (add_type_duplicate): Use it.
3141         * common.opt (Wodr): New flag.
3142         * doc/invoke.texi (Wodr): Document new warning.
3144 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
3146         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
3147         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
3148         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
3149         (varpool_get_constructor): Push CTORS_IN timevar.
3150         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
3152 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
3154         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
3155         Remove VOID_FTYPE_PUSHORT.
3156         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
3157         Change code to USHORT_FTYPE_VOID.
3158         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
3159         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
3160         (ix86_atomic_assign_expand_fenv): Update for
3161         __builtin_ia32_fnstsw changes.
3162         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
3163         (fnstsw): Change operand 0 to nonimmediate operand.
3165 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
3167         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
3168         (varpool_get_constructor): New function.
3169         (varpool_ctor_useable_for_folding_p): Break out from ...
3170         (ctor_for_folding): ... here; use varpool_get_constructor.
3171         (varpool_assemble_decl): Likewise.
3172         * lto-streamer.h (struct output_block): Turn cgraph_node
3173         to symbol filed.
3174         (lto_input_variable_constructor): Declare.
3175         * ipa-visibility.c (function_and_variable_visibility): Use
3176         varpool_get_constructor.
3177         * cgraph.h (varpool_get_constructor): Declare.
3178         (varpool_ctor_useable_for_folding_p): New function.
3179         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
3180         parameter; return error_mark_node for non-trivial constructors.
3181         (lto_write_tree_1, DFS_write_tree): Update use of
3182         get_symbol_initial_value.
3183         (output_function): Update initialization of symbol.
3184         (output_constructor): New function.
3185         (copy_function): Rename to ..
3186         (copy_function_or_variable): ... this one; handle vars too.
3187         (lto_output): Output variable sections.
3188         * lto-streamer-in.c (input_constructor): New function.
3189         (lto_read_body): Rename from ...
3190         (lto_read_body_or_constructor): ... this one; handle vars too.
3191         (lto_input_variable_constructor): New function.
3192         * ipa-prop.c (ipa_prop_write_jump_functions,
3193         ipa_prop_write_all_agg_replacement): Update.
3194         * lto-cgraph.c (compute_ltrans_boundary): Use it.
3195         (output_cgraph_opt_summary): Set symbol to NULL.
3197 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
3199         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
3200         non-polymorphic types.
3201         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
3202         * ipa-devirt.c (types_same_for_odr): Do not explode when one
3203         of types is not polymorphic.
3205 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
3207         * lra-constraints.c (remove_inheritance_pseudos): Process
3208         destination pseudo too.
3210 2014-07-11  Rong Xu  <xur@google.com>
3212         * gcov-tool.c (gcov_output_files): Fix build error introduced in
3213         commit r212448.
3215 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
3217         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
3218         * config/avr/avr-devices.c (AVR_MCU): Same.
3219         (avr_mcu_types): add text start value to end of device list.
3220         * config/avr/avr-mcus.def: Add text section start for all devices.
3221         (ata5782): Add new avr5 device.
3222         (ata5831): Same.
3223         * config/avr/avr-tables.opt: Regenerate.
3224         * config/avr/avr.h: Add declaration for text section start handler.
3225         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
3226         SPEC functions.
3227         (LINK_SPEC): Include text section start handler to linker spec.
3228         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
3229         pass -Ttext option to linker if the text section start for the device
3230         is not zero.
3231         * config/avr/t-multilib: Regenerate.
3232         * doc/avr-mmcu.texi: Regenerate.
3234 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
3236         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
3237         * config/rs6000/aix52.h (LINK_SPEC): Same.
3238         * config/rs6000/aix53.h (LINK_SPEC): Same.
3239         * config/rs6000/aix61.h (LINK_SPEC): Same.
3240         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
3242 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
3244         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
3245         (graphite_verify): New function.
3246         (ivs_params_clear): New function.
3247         (gcc_expression_from_isl_ast_expr_id): New function.
3248         (gcc_expression_from_isl_expr_int): New function.
3249         (binary_op_to_tree): New function.
3250         (ternary_op_to_tree): New function.
3251         (unary_op_to_tree): New function.
3252         (nary_op_to_tree): New function.
3253         (gcc_expression_from_isl_expr_op): New function.
3254         (gcc_expression_from_isl_expression): New function.
3255         (graphite_create_new_loop): New function.
3256         (translate_isl_ast_for_loop): New function.
3257         (get_upper_bound): New function.
3258         (graphite_create_new_loop_guard): New function.
3259         (translate_isl_ast_node_for): New function.
3260         (translate_isl_ast): New function.
3261         (add_parameters_to_ivs_params): New function.
3262         (scop_to_isl_ast): New parameter ip.
3263         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
3265 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
3267         * config/xtensa/predicates.md (call expander): Update for
3268         DECL_SECTION_NAME being string.
3270 2014-07-11  Richard Biener  <rguenther@suse.de>
3272         PR middle-end/61473
3273         * builtins.c (fold_builtin_memory_op): Inline memory moves that
3274         can be implemented with a single load followed by a single store.
3275         (c_strlen): Only warn when only_value is not 2.
3277 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
3279         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
3281 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
3283         PR target/61561
3284         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
3285         (*movhi_bytes): Likewise.
3286         (*arm_movqi_insn): Likewise.
3288 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
3290         PR target/56858
3291         * config/alpha/alpha.c: Include tree-pass.h, context.h
3292         and pass_manager.h.
3293         (pass_data_handle_trap_shadows): New pass.
3294         (pass_handle_trap_shadows::gate): New pass gate function.
3295         (make_pass_handle_trap_shadows): New function.
3296         (rest_of_handle_trap_shadows): Ditto.
3298         (alpha_align_insns_1): Rename from alpha_align_insns.
3299         (pass_data_align_insns): New pass.
3300         (pass_align_insns::gate): New pass gate function.
3301         (make_pass_aling_insns): New function.
3302         (rest_of_align_insns): Ditto.
3303         (alpha_align_insns): Ditto.
3305         (alpha_option_override): Declare handle_trap_shadows info
3306         and align_insns_info.  Register handle_trap_shadows and align_insns
3307         passes here.
3308         (alpha_reorg): Do not call alpha_trap_shadows and
3309         alpha_align_insn from here.
3311         (alpha_pad_function_end): Do not skip BARRIERs.
3313 2014-07-10  Rong Xu  <xur@google.com>
3315         Add gcov-tool: an offline gcda profile processing tool support.
3316         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
3317         (gcov_is_error): Ditto.
3318         (gcov_read_string): Ditto.
3319         (gcov_read_sync): Ditto.
3320         * gcov-io.h: Move counter defines to gcov-counter.def.
3321         * gcov-dump.c (tag_counters): Use gcov-counter.def.
3322         * coverage.c: Ditto.
3323         * gcov-tool.c: Offline gcda profile processing tool.
3324         (unlink_gcda_file): Remove one gcda file.
3325         (unlink_profile_dir): Remove gcda files from the profile path.
3326         (gcov_output_files): Output gcda files to an output dir.
3327         (profile_merge): Merge two profiles in directory.
3328         (print_merge_usage_message): Print merge usage.
3329         (merge_usage): Print merge usage and exit.
3330         (do_merge): Driver for profile merge sub-command.
3331         (profile_rewrite): Rewrite profile.
3332         (print_rewrite_usage_message): Print rewrite usage.
3333         (rewrite_usage): Print rewrite usage and exit.
3334         (do_rewrite): Driver for profile rewrite sub-command.
3335         (print_usage): Print gcov-info usage and exit.
3336         (print_version): Print gcov-info version.
3337         (process_args): Process arguments.
3338         (main): Main routine for gcov-tool.
3339         * Makefile.in: Build and install gcov-tool.
3340         * gcov-counter.def: New file split from gcov-io.h.
3341         * doc/gcc.texi: Include gcov-tool.texi.
3342         * doc/gcov-tool.texi: Document for gcov-tool.
3344 2014-07-10  Richard Biener  <rguenther@suse.de>
3346         PR tree-optimization/61757
3347         * tree-ssa-dom.c (loop_depth_of_name): Restore.
3348         (propagate_rhs_into_lhs): Revert part of last change.
3350 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
3352         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
3353         FUNCTION_DECLs.
3355 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
3357         PR middle-end/53590
3358         * function.c (allocate_struct_function): Revert r188667 change.
3360         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
3362 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
3364         * doc/install.texi: Remove links to defunct package providers for
3365         Solaris.
3367 2014-07-09  Tom de Vries  <tom@codesourcery.com>
3369         * final.c (get_call_fndecl): Declare.
3370         (self_recursive_call_p): New function.
3371         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
3373 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
3375         * ipa-devirt.c (record_node): Walk through aliases.
3377 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
3379         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
3381 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
3383         Revert:
3384         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
3386 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
3388         * ipa-visibility.c (function_and_variable_visibility): Remove
3389         temporary hack disabling local aliases on AIX.
3391 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
3393         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
3394         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
3396 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
3398         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
3399         * rs6000/rs6000.c: Inline output of .set instruction.
3400         (declare_alias_data): New struct.
3401         (rs6000_declare_alias): New function.
3402         (rs6000_xcoff_declare_function_name): Use it.
3403         (rs6000_xcoff_declare_object_name): New function.
3404         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
3405         (ASM_OUTPUT_DEF): Turn to empty definition.
3407 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
3409         PR bootstrap/61679
3410         * hash-table.h: use hash_table::value_type instead of
3411         Descriptor::value_type in the return types of several methods.
3413 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
3415         * tree-pass.h (pass_data): Remove has_execute member.
3416         * passes.c (execute_one_pass): Don't check pass->has_execute.
3417         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
3418         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
3419         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
3420         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
3421         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
3422         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
3423         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
3424         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
3425         gimple-low.c, gimple-ssa-isolate-paths.c,
3426         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
3427         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
3428         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
3429         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
3430         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
3431         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
3432         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
3433         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
3434         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
3435         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
3436         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
3437         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
3438         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
3439         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
3440         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
3441         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
3442         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
3443         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
3444         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
3445         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
3446         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
3447         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
3448         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
3449         web.c: Remove initializer for pass_data::has_execute.
3451 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
3453         * graphite-htab.h: Use hash_map instead of hash_table.
3454         * graphite-clast-to-gimple.c: Adjust.
3455         * passes.c: Use hash_map instead of hash_table.
3456         * sese.c: Likewise.
3457         * sese.h: Remove now unused code.
3459 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
3461         PR target/61599
3462         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
3463         than zero.
3465 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
3467         PR rtl-optimization/61673
3468         * combine.c (simplify_comparison): Test just mode's sign bit
3469         in tmode rather than the sign bit and any bits above it.
3471 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
3473         * graphite-isl-ast-to-gimple.c (generate_isl_context):
3474         Add __isl_give to the declaration.
3475         (generate_isl_schedule): Likewise.
3476         (scop_to_isl_ast): Likewise.
3478 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3480         * config/arm/arm.c (cortexa5_extra_costs): New table.
3481         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
3483 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
3485         PR tree-optimization/61725
3486         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
3487         range, use range_includes_zerop_p instead of integer_zerop on
3488         vr0->min, only use log2 of max if min is not negative.
3490 2014-07-08  Richard Biener  <rguenther@suse.de>
3492         * tree-ssa-dom.h (loop_depth_of_name): Remove.
3493         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
3494         restriction on loop depth difference.
3495         (record_equality): Likewise.
3496         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
3497         (loop_depth_of_name): Remove.
3498         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
3499         restriction on loop depth difference.
3500         (init_copy_prop): Likewise.
3502 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
3504         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
3505         parameter.
3506         (walk_aliased_vdefs): Likewise.
3507         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
3508         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
3509         (detect_type_change_from_memory_writes): Check if entry was reached.
3511 2014-07-08  Richard Biener  <rguenther@suse.de>
3513         PR tree-optimization/61681
3514         * tree-ssa-structalias.c (find_what_var_points_to): Expand
3515         NONLOCAL inside ESCAPED.
3517 2014-07-08  Richard Biener  <rguenther@suse.de>
3519         PR tree-optimization/61680
3520         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3521         Handle properly all read-write dependences with group accesses.
3523 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
3525         PR tree-optimization/61576
3526         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
3527         block containing reduction statement is predecessor of phi basi block.
3529 2014-07-08  Marek Polacek  <polacek@redhat.com>
3531         PR c/60226
3532         * fold-const.c (round_up_loc): Change the parameter type.
3533         Remove assert.
3534         * fold-const.h (round_up_loc): Adjust declaration.
3535         * stor-layout.c (finalize_record_size): Check for too large types.
3537 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
3539         * symtab.c: Include calls.h.
3540         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
3542 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
3544         * config/rs6000/rs6000.c (output_vec_const_move): Handle
3545         little-endian code generation.
3546         * config/rs6000/spe.md (spe_evmergehi): Rename to...
3547         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
3548         (spe_evmergehilo): Rename to...
3549         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
3550         (spe_evmergelo): Rename to...
3551         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
3552         (spe_evmergelohi): Rename to...
3553         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
3554         (spe_evmergehi, spe_evmergehilo): New expanders.
3555         (spe_evmergelo, spe_evmergelohi): Likewise.
3556         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
3557         (*frob_tf_ti): Likewise.
3558         (*frob_<mode>_di_2): Likewise.
3559         (*frob_tf_di_8_2): Likewise.
3560         (*frob_di_<mode>): Likewise.
3561         (*frob_ti_tf): Likewise.
3562         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
3563         (*frob_ti_<mode>_8_2): Likewise.
3564         (*frob_ti_tf_2): Likewise.
3565         (mov_si<mode>_e500_subreg0): Rename to...
3566         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
3567         endianness only.
3568         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
3569         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
3570         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
3571         the big endianness only.
3572         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
3573         (*mov_si<mode>_e500_subreg0_2): Rename to...
3574         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
3575         big big endianness only.
3576         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
3577         (*mov_si<mode>_e500_subreg4): Rename to...
3578         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
3579         endianness only.
3580         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
3581         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
3582         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
3583         the big endianness only.
3584         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
3585         pattern.
3586         (*mov_si<mode>_e500_subreg4_2): Rename to...
3587         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
3588         endianness only.
3589         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
3590         (*mov_sitf_e500_subreg8): Rename to...
3591         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
3592         endianness only.
3593         (*mov_sitf_e500_subreg8_le): New instruction pattern.
3594         (*mov_sitf_e500_subreg8_2): Rename to...
3595         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
3596         endianness only.
3597         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
3598         (*mov_sitf_e500_subreg12): Rename to...
3599         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
3600         endianness only.
3601         (*mov_sitf_e500_subreg12_le): New instruction pattern.
3602         (*mov_sitf_e500_subreg12_2): Rename to...
3603         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
3604         endianness only.
3605         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
3607 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
3609         * asan.c (instrument_strlen_call): Do not instrument first byte
3610         in strlen if already instrumented.
3612 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3614         * config/arm/arm.opt (mwords-little-endian): Delete.
3615         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
3616         of TARGET_LITTLE_WORDS.
3617         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
3618         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
3619         warning.
3620         * doc/invoke.texi: Remove references to -mwords-little-endian.
3622 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
3624         * expmed.c (struct init_expmed_rtl): Change all fields but
3625         pow2 and cint from struct rtx_def to rtx.
3626         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
3627         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
3628         at the end again.
3630 2014-07-06  Marek Polacek  <polacek@redhat.com>
3632         PR c/6940
3633         * doc/invoke.texi: Document -Wsizeof-array-argument.
3635 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
3637         * wide-int.h (wide_int_storage): Change declaration from struct
3638         to class.
3640 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
3642         * cgraph.c (cgraph_create_indirect_edge): Update call of
3643         get_polymorphic_call_info.
3644         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
3645         (possible_polymorphic_call_targets): Add parameter call.
3646         (decl_maybe_in_construction_p): New predicate.
3647         (get_polymorphic_call_info): Add parameter call;
3648         use decl_maybe_in_construction_p.
3649         * gimple-fold.c (fold_gimple_assign): Update use of
3650         possible_polymorphic_call_targets.
3651         (gimple_fold_call): Likewise.
3652         * ipa-prop.c: Inlcude calls.h
3653         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
3654         (param_type_may_change_p): New predicate.
3655         (detect_type_change_from_memory_writes): Break out from ...
3656         (detect_type_change): ... this one; use param_type_may_change_p.
3657         (detect_type_change_ssa): Use param_type_may_change_p.
3658         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
3660 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
3662         PR target/49423
3663         * config/arm/arm-protos.h (arm_legitimate_address_p,
3664         arm_is_constant_pool_ref): Add prototypes.
3665         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
3666         (arm_is_constant_pool_ref) New function.
3667         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
3668         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
3669         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
3670         operand. Remove pool_range and neg_pool_range attributes.
3671         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
3672         pool_range and neg_pool_range attributes.
3673         * config/arm/constraints.md (Uh): New constraint.
3674         (Uq): Don't allow constant pool references.
3676 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
3678         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
3679         (move_lo_quad_internal_be_<mode>): Likewise.
3680         (move_lo_quad_<mode>): Convert to define_expand.
3681         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
3682         (aarch64_simd_move_hi_quad_be_<mode>): New.
3683         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
3684         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
3685         (aarch64_combinez_be<mode>): New.
3686         (aarch64_combine<mode>): Convert to define_expand.
3687         (aarch64_combine_internal<mode>): New.
3688         (aarch64_simd_combine<mode>): Remove bogus RTL description.
3690 2014-07-04  Tom de Vries  <tom@codesourcery.com>
3692         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
3693         combination of earlyclobber and read/write modifiers.
3695 2014-07-04  Tom de Vries  <tom@codesourcery.com>
3697         * config/aarch64/aarch64-simd.md
3698         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
3700 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
3702         PR target/61714
3703         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
3705 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
3707         PR middle-end/61654
3708         * cgraphunit.c (expand_thunk): Call free_dominance_info.
3710         PR tree-optimization/61684
3711         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
3712         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
3714 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
3715             Kito Cheng  <kito@0xlab.org>
3716             Monk Chiang  <sh.chiang04@gmail.com>
3718         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
3719         (nds32_symbol_load_store_p): Move to ...
3720         (nds32_fp_as_gp_check_available): Move to ...
3721         * config/nds32/nds32-fp-as-gp.c: ... here.
3722         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
3723         extern declaration.
3725 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
3726             Kito Cheng  <kito@0xlab.org>
3727             Monk Chiang  <sh.chiang04@gmail.com>
3729         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
3730         (nds32_expand_store_multiple): Move to ...
3731         (nds32_expand_movmemqi): Move to ...
3732         * config/nds32/nds32-memory-manipulation.c: ... here.
3734 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
3735             Kito Cheng  <kito@0xlab.org>
3736             Monk Chiang  <sh.chiang04@gmail.com>
3738         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
3739         (nds32_output_casesi_pc_relative): Move to ...
3740         (nds32_output_casesi): Move to ...
3741         (nds32_mem_format): Move to ...
3742         (nds32_output_16bit_store): Move to ...
3743         (nds32_output_16bit_load): Move to ...
3744         (nds32_output_32bit_store): Move to ...
3745         (nds32_output_32bit_load): Move to ...
3746         (nds32_output_32bit_load_s): Move to ...
3747         (nds32_output_stack_push): Move to ...
3748         (nds32_output_stack_pop): Move to ...
3749         * config/nds32/nds32-md-auxiliary.c: ... here.
3751 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
3752             Ling-Hua Tseng  <uranus@tinlans.org>
3754         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
3755         the purpose of this file.
3757 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
3758             Kito Cheng  <kito@0xlab.org>
3759             Monk Chiang  <sh.chiang04@gmail.com>
3761         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
3762         (nds32_address_cost): Move implementation to ...
3763         * config/nds32/nds32-cost.c: ... here.
3764         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
3765         (nds32_address_cost_impl): Declare.
3767 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
3768             Kito Cheng  <kito@0xlab.org>
3769             Monk Chiang  <sh.chiang04@gmail.com>
3771         * config/nds32/nds32.c
3772         (nds32_consecutive_registers_load_store_p): Move to ...
3773         (nds32_valid_multiple_load_store): Move to ...
3774         (nds32_valid_stack_push_pop): Move to ...
3775         (nds32_can_use_bclr_p): Move to ...
3776         (nds32_can_use_bset_p): Move to ...
3777         (nds32_can_use_btgl_p): Move to ...
3778         (nds32_can_use_bitci_p): Move to ...
3779         * config/nds32/nds32-predicates.c: ... here.
3781 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
3782             Kito Cheng  <kito@0xlab.org>
3783             Monk Chiang  <sh.chiang04@gmail.com>
3785         * config/nds32/nds32.c
3786         (nds32_expand_builtin_null_ftype_reg): Move to ...
3787         (nds32_expand_builtin_reg_ftype_imm): Move to ...
3788         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
3789         (nds32_init_builtins): Move implementation to ...
3790         (nds32_expand_builtin): Move implementation to ...
3791         * config/nds32/nds32-intrinsic.c: ... here.
3792         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
3793         (nds32_expand_builtin_impl): Declare.
3795 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
3796             Kito Cheng  <kito@0xlab.org>
3797             Monk Chiang  <sh.chiang04@gmail.com>
3799         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
3800         (nds32_emit_section_tail_template): Move to ...
3801         (nds32_emit_isr_jmptbl_section): Move to ...
3802         (nds32_emit_isr_vector_section): Move to ...
3803         (nds32_emit_isr_reset_conten): Move to ...
3804         (nds32_check_isr_attrs_conflict): Move to ...
3805         (nds32_construct_isr_vectors_information): Move to ...
3806         (nds32_asm_file_start): Move implementation to ...
3807         (nds32_asm_file_end): Move implementation to ...
3808         * config/nds32/nds32-isr.c: ... here.
3809         * config/nds32/nds32-protos.h
3810         (nds32_check_isr_attrs_conflict): Declare.
3811         (nds32_construct_isr_vectors_information): Declare.
3812         (nds32_asm_file_start_for_isr): Declare.
3813         (nds32_asm_file_end_for_isr): Declare.
3815 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
3816             Kito Cheng  <kito@0xlab.org>
3817             Monk Chiang  <sh.chiang04@gmail.com>
3819         * config.gcc (nds32*): Add new modules to extra_objs.
3820         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
3821         (nds32be-*-*): Likewise.
3822         * config/nds32/nds32-cost.c: New file.
3823         * config/nds32/nds32-fp-as-gp.c: New file.
3824         * config/nds32/nds32-intrinsic.c: New file.
3825         * config/nds32/nds32-isr.c: New file.
3826         * config/nds32/nds32-md-auxiliary.c: New file.
3827         * config/nds32/nds32-memory-manipulation.c: New file.
3828         * config/nds32/nds32-pipelines-auxiliary.c: New file.
3829         * config/nds32/nds32-predicates.c: New file.
3830         * config/nds32/t-nds32: New file.
3832 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
3834         PR tree-optimization/61682
3835         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
3836         using cases and when one of the operands is equal to 1.
3838 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
3840         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
3841         ashr<mode>3): Correct mode of operands[2].
3842         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
3843         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
3844         Correct mode of operands[2].  Fix split condition.
3846 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
3848         * arm.md (arch): Add armv6_or_vfpv3.
3849         (arch_enabled): Add test for the above.
3850         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
3851         on VFP9.
3852         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
3854 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
3856         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
3857         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
3858         HWI 1 and negate the unsigned value.
3859         * expmed.c (expand_sdiv_pow2): For modes wider than word always
3860         use AND instead of shift.
3861         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
3863 2014-07-03  Marek Polacek  <polacek@redhat.com>
3865         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
3866         (-fsanitize=float-divide-by-zero): Move to the table with
3867         -fsanitize=undefined suboptions.
3868         (-fsanitize=float-cast-overflow): Likewise.
3870 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
3872         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
3873         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
3874         endianness.
3876 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
3878         * loop-invariant.c (struct invariant): Add a new member: eqno;
3879         (find_identical_invariants): Update eqno;
3880         (create_new_invariant): Init eqno;
3881         (get_inv_cost): Compute comp_cost with eqno;
3883 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
3885         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
3886         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
3887         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
3888         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
3889         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
3891 2014-07-02  Christian Bruel  <christian.bruel@st.com>
3893         PR target/29349
3894         PR target/53513
3895         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
3896         (make_preds_opaque): Delete.
3897         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
3898         (commit_mode_sets): New function.
3899         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
3900         Process all modes at once.
3901         * basic-block.h (pre_edge_lcm_avs): Declare.
3902         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
3903         Call clear_aux_for_edges. Fix comments.
3904         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
3905         (pre_edge_rev_lcm): Idem.
3906         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
3907         parameter.
3908         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
3909         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
3910         Idem.
3911         * config/i386/i386.c (x96_emit_mode_set): Idem.
3912         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
3913         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
3914         (fpscr_toggle) Disallow from delay slot.
3915         * target.def (emit_mode_set): Add prev_mode parameter.
3916         * doc/tm.texi: Regenerate.
3918 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3920         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
3921         variable i.
3923 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
3925         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
3926         vtable_pointer_value_to_vtable): Constify.
3927         (contains_polymorphic_type_p): Declare.
3928         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
3929         vtable_pointer_value_to_vtable): Constify.
3930         (contains_polymorphic_type_p): New predicate.
3931         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
3932         polymorphic types.
3933         (ipa_set_ancestor_jf): Likewise.
3934         (detect_type_change): Return false in easy cases.
3935         (compute_complex_assign_jump_func): Require type to contain
3936         polymorphic type.
3937         (compute_known_type_jump_func): Likewise.
3939 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
3941         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
3942         Remove.
3943         (type_in_anonymous_namespace_p): Constify argument.
3944         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
3945         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
3946         (main_odr_variant): New function.
3947         (hash_type_name): Make static; update assert; do not ICE on
3948         non-records.
3949         (types_same_for_odr): Bring here from tree.c; simplify and remove
3950         old structural comparing code that doesn't work for templates.
3951         (odr_hasher::equal): Update assert.
3952         (add_type_duplicate): Return true when bases should be computed;
3953         replace incomplete loader by complete; do not output duplicated
3954         warnings; do not ICE on non-records; set odr_violated flag.
3955         (get_odr_type): Be ready to replace incomplete type by complete
3956         one; work on ODR variants instead of main variants; reorder item
3957         in array so bases have still smaller indexes.
3958         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
3959         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
3961 2014-07-01  Cary Coutant  <ccoutant@google.com>
3963         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
3964         lookup.
3965         (resolve_addr_in_expr): When replacing the rtx in a location list
3966         entry, get a new address table entry.
3967         (dwarf2out_finish): Call index_location_lists even if there are no
3968         addr_index_table entries yet.
3970 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
3972         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
3973         change for not being obvious.
3975 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
3977         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
3978         unused argument.
3980 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3982         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
3983         (vcagt_f64): Likewise.
3984         (vcale_f64): Likewise.
3985         (vcaled_f64): Likewise.
3986         (vcales_f32): Likewise.
3987         (vcalt_f64): Likewise.
3988         (vcaltd_f64): Likewise.
3989         (vcalts_f32): Likewise.
3991 2014-07-01  Marek Polacek  <polacek@redhat.com>
3993         * doc/invoke.texi: Document -Wint-conversion.
3995 2014-07-01  Marek Polacek  <polacek@redhat.com>
3997         PR c/58286
3998         * doc/invoke.texi: Document -Wincompatible-pointer-types.
4000 2014-07-01  Martin Liska  <mliska@suse.cz>
4002         IPA REF alias refactoring
4003         * cgraph.h (iterate_direct_aliases): New function.
4004         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
4005         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
4006         FOR_EACH_ALIAS added.
4007         (cgraph_for_node_and_aliases): Likewise.
4008         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
4009         * ipa-inline.c (reset_edge_caches): Likewise.
4010         (update_caller_keys): Likewise.
4011         * trans-mem.c (ipa_tm_execute): Likewise.
4012         *varpool.c (varpool_analyze_node): Likewise.
4013         (varpool_for_node_and_aliases): Likewise.
4014         * ipa-ref.h (first_alias): New function.
4015         (last_alias): Likewise.
4016         (has_aliases_p): Likewise.
4017         * ipa-ref.c (ipa_ref::remove_reference): Removal function
4018         is sensitive to IPA_REF_ALIASes.
4019         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
4020         are put at the beginning of the list.
4021         (symtab_node::iterate_direct_aliases): New function.
4023 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
4025         Revert:
4026         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
4027         type is complete.
4028         (write_ts_type_common_tree_pointers): Do not stream fields not set
4029         for incomplete types; do not stream duplicated fields for variants;
4030         sanity check that variant and type match.
4031         (write_ts_type_non_common_tree_pointers): Likewise.
4032         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
4033         TYPE_SIZE whether type is complete.
4034         (lto_input_ts_type_common_tree_pointers): Do same changes as in
4035         write_ts_type_common_tree_pointers
4036         (lto_input_ts_type_non_common_tree_pointers): Likewise.
4038 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
4040         * var-tracking.c (add_stores): Return instead of asserting if old
4041         and new values for conditional store are the same.
4043 2014-06-30  Richard Henderson  <rth@redhat.com>
4045         PR rtl-opt/61608
4046         PR target/39284
4047         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
4048         the cfg if there were any changes.
4049         * passes.def: Revert move of peephole2 after reorder_blocks;
4050         move duplicate_computed_gotos before peephole2.
4052 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
4054         * except.c (emit_note_eh_region_end): New helper function.
4055         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
4056         emit EH_REGION_END note.
4057         * jump.c (cleanup_barriers): Do not split a call and its
4058         corresponding CALL_ARG_LOCATION note.
4060 2014-06-30  Jeff Law  <law@redhat.com>
4062         PR tree-optimization/61607
4063         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
4064         deeper into the SSA_NAME_VALUE chain.
4066 2014-06-30  Marek Polacek  <polacek@redhat.com>
4068         * convert.c (convert_to_integer): Don't instrument conversions if the
4069         function has no_sanitize_undefined attribute.
4070         * ubsan.c: Don't run the ubsan pass if the function has
4071         no_sanitize_undefined attribute.
4073 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
4075         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
4076         -fsanitize=undefined suboptions.
4078 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
4080         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
4081         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
4082         against bigendian and adjust indices.
4084 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
4086         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
4088 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4090         PR target/61633
4091         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
4092         Add alternative; make early clobber.  Adjust both split patterns
4093         to use operand 0 as the working register.
4095 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
4097         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
4098         as ira_object_id_map might be NULL, or 1.
4100 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
4102         * loop-invariant.c (get_inv_cost): Handle register class.
4103         (gain_for_invariant): Check the register pressure of the inv
4104         and its overlapped register class, other than all.
4106 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
4108         * doc/invoke.texi (Optimize Options): Fix descriptions of
4109         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
4111 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
4113         * doc/extend.texi (Function Attributes): Update 'naked' attribute
4114         documentation.
4116 2014-06-29  Tobias Grosser <tobias@grosser.es>
4118         PR bootstrap/61650
4119         * graphite-isl-ast-to-gimple.c: Add missing guards.
4121 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
4123         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
4124         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
4125         * flag-types.h: Add new enum fgraphite_generator.
4126         * graphite-isl-ast-to-gimple.c: New.
4127         * graphite-isl-ast-to-gimple.h: New.
4128         * graphite.c (graphite_transform_loops): Add choice of Graphite
4129         code generator, which depends on flag_graphite_code_gen.
4131 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
4133         * graphite-dependences.c (subtract_commutative_associative_deps):
4134         Add NULL checking of the following variables: must_raw_no_source,
4135         may_raw_no_source, must_war_no_source, may_war_no_source,
4136         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
4137         must_war, may_war, must_waw, may_waw.
4139 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
4141         * graphite-clast-to-gimple.c: gloog is renamed to
4142         graphite_regenerate_ast_cloog.  gloog_error is renamed to
4143         graphite_regenerate_error.
4144         * graphite-clast-to-gimple.h: The definition of the struct
4145         bb_pbb_def is moved to graphite-htab.h.
4146         Add inclusion of the hash-table.h.
4147         * graphite-htab.h: The declaration of the function gloog is moved
4148         to graphite-clast-to-gimple.h and renamed to
4149         graphite_regenerate_ast_cloog.
4150         * graphite.c (graphite_transform_loops): gloog is renamed
4151         to graphite_regenerate_ast_cloog.
4153 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
4155         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
4156         type is complete.
4157         (write_ts_type_common_tree_pointers): Do not stream fields not set
4158         for incomplete types; do not stream duplicated fields for variants;
4159         sanity check that variant and type match.
4160         (write_ts_type_non_common_tree_pointers): Likewise.
4161         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
4162         TYPE_SIZE whether type is complete.
4163         (lto_input_ts_type_common_tree_pointers): Do same changes as in
4164         write_ts_type_common_tree_pointers
4165         (lto_input_ts_type_non_common_tree_pointers): Likewise.
4167 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
4169         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
4171 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
4173         * tree-inline.c (remap_type_1): Do not duplicate fields
4174         that are shared in between type and its main variant.
4176 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
4178         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
4179         of the type.
4180         (ipa_set_ancestor_jf) Likewise.
4181         (check_stmt_for_type_change): Check that we work on main variant.
4182         (detect_type_change): Look into main variant.
4183         (compute_known_type_jump_func): Check that main variant has BINFO.
4185 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
4187         * ipa-devirt.c (set_type_binfo): New function.
4188         (add_type_duplicate): Use it.
4189         (get_odr_type): Sanity check that binfos points to main variants.
4190         (get_class_context): Be sure the context's outer_type is main variant.
4191         (contains_type_p): Walk main variant.
4192         (get_polymorphic_call_info_for_decl): Set outer_type to be
4193         main variant.
4194         (get_polymorphic_call_info): Likewise.
4195         (possible_polymorphic_call_targets): Sanity check that we operate
4196         on main variant.
4198 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
4200         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
4202 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4204         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
4205         accidental change due to wide-int branch merge.
4207 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4209         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
4210         compressed debug support.
4211         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
4212         * configure: Regenerate.
4213         * config.in: Regenerate.
4214         * common.opt (compressed_debug_sections): New enum.
4215         (gz, gz=): New options.
4216         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
4217         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
4218         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
4219         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
4220         LINK_COMPRESS_DEBUG_SPEC.
4221         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
4222         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
4223         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
4224         (Debugging Options): Document -gz[=type].
4226 2014-06-27  Martin Jambor  <mjambor@suse.cz>
4228         PR ipa/61160
4229         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
4230         args_to_skip, use those from node instead.  Copy args_to_skip and
4231         combined_args_to_skip from node to the new thunk.
4232         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
4233         (cgraph_create_virtual_clone): Moved computation of
4234         combined_args_to_skip...
4235         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
4237 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
4239         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
4240         redundant diagnostic machinary.
4242 2014-06-27  Richard Biener  <rguenther@suse.de>
4244         * tree-ssa-math-opts.c (bswap_replace): Fix
4245         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
4247 2014-06-27  Martin Liska  <mliska@suse.cz>
4249         * gimple.h (gimple_location_safe): New function introduced.
4250         * cgraphunit.c (walk_polymorphic_call_targets): Usage
4251         of gimple_location_safe replaces gimple_location.
4252         (gimple_fold_call): Likewise.
4253         * ipa-devirt.c (ipa_devirt): Likewise.
4254         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
4255         * ipa.c (walk_polymorphic_call_targets): Likewise.
4256         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
4258 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
4260         PR tree-optimization/57233
4261         PR tree-optimization/61299
4262         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
4263         functions.
4264         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
4265         would be lowered to scalar shifts, check if corresponding
4266         shifts and vector BIT_IOR_EXPR are supported and don't lower
4267         or lower just to narrower vector type in that case.
4268         * expmed.c (expand_shift_1): Fix up handling of vector
4269         shifts and rotates.
4271 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
4273         PR target/61586
4274         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
4276 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
4278         * doc/invoke.texi (-fsemantic-interposition): Document.
4279         * common.opt (fsemantic-interposition): New flag.
4280         * varasm.c (decl_replaceable_p): Use it.
4282 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4284         PR target/61542
4285         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
4286         extraction other than index 3.
4288 2014-06-26  Teresa Johnson  <tejohnson@google.com>
4290         * doc/invoke.texi: Fix typo.
4291         * dumpfile.c: Add support for documented -fdump-* options
4292         optimized/missed/note/optall.
4294 2014-06-26  Martin Jambor  <mjambor@suse.cz>
4296         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
4297         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
4298         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
4299         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
4300         * opts.c (default_options_optimization): Set
4301         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
4302         * doc/invoke.texi (allow-load-data-races)
4303         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
4304         (allow-store-data-races): Document the new default.
4306 2014-06-26  Martin Jambor  <mjambor@suse.cz>
4308         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
4309         renamed to ipa_impossible_devirt_target.  Fix typo.
4310         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
4311         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
4312         ipa_impossible_devirt_target.
4314 2014-06-26  Richard Biener  <rguenther@suse.de>
4316         PR tree-optimization/61607
4317         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
4318         explaining why we restrict copies on loop depth.
4319         * tree-ssa-dom.c (cprop_operand): Remove restriction on
4320         on loop depth.
4321         (record_equivalences_from_phis): Instead add it here.
4323 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
4325         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
4326         (LTO_WRAPPER_OBJS): New variable.
4327         (lto-wrapper$(exeext)): Use it.
4328         * collect2.c: Include "collect-utils.h".
4329         (verbose, debug): Remove variables.
4330         (at_file_supplied): No longer static.
4331         (tool_name): New variable.
4332         (do_wait, fork_execute, maybe_unlink): Don't declare.
4333         (tool_cleanup): No longer static.
4334         (notice): Remove function.
4335         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
4336         fork_execute calls.
4337         (collect_wait, do_wait, collect_execute): Remove functions.
4338         (maybe_unlink): No longer static.
4339         * collect2.h (verbose, debug): Don't declare.
4340         (at_file_supplied): Declare.
4341         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
4342         changed.
4343         (collect_execute): Replace with implementation from collect2, plus a
4344         new arg use_atfile.  All callers changed.
4345         (collect_wait): Replace with implementation from collect2.
4346         (maybe_unlink_file): Remove function.
4347         (fork_execute): Replace with implementation from collect2, plus a
4348         new arg use_atfile.  All callers changed.
4349         (do_wait): Add call to utils_cleanup to the error path.
4350         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
4351         (tool_cleanup): Adjust declarations.
4352         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
4353         * tlink.c: Include "collect-utils.h".
4354         (tlink_execute): New arg use_atfile.  All callers changed.
4355         (tlink_init, tlink_execute): Remove declarations.
4357         * collect-utils.c (save_temps): New variable.
4358         (do_wait): Use it instead of debug.  Use fatal_error.
4359         * collect-utils.h (save_temps): Declare.
4360         * collect2.c (verbose): Rename from vflag.  All uses changed.
4361         (tool_cleanup): New function, copied from collect_atexit.
4362         (collect_atexit, handler): Just call it.
4363         * collect2.h (verbose): Declaration renamed from vflag.
4364         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
4365         debug.
4367         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
4368         (lto-wrapper$(exeext)): Link with collect-utils.o.
4369         * collect-utils.c: New file.
4370         * collect-utils.h: New file.
4371         * lto-wrapper.c: Include "collect-utils.h".
4372         (args_name): Delete variable.
4373         (tool_name): New variable.
4374         (tool_cleanup): New function.
4375         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
4376         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
4377         (fork_execute): Remove functions.
4379 2014-06-26  Nick Clifton  <nickc@redhat.com>
4381         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
4383         * doc/extend.texi (Function Attributes): Fix typo in description
4384         of RX vector attribute.
4386 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
4388         * config.gcc (supported_defaults): Error when passing either
4389         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
4391 2014-06-26  Richard Biener  <rguenther@suse.de>
4393         * tree-ssa-dom.c (cprop_operand): Remove restriction on
4394         propagating volatile pointers.
4396 2014-06-26  Richard Biener  <rguenther@suse.de>
4398         PR tree-optimization/61607
4399         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
4400         loop if we redirected its latch edge.
4401         (thread_block_1): Do not cancel loops prematurely.
4403 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
4405         * toplev.c (backend_init_target): Move init_emit_regs and
4406         init_regs to...
4407         (backend_init) ... here; skip ira_init_once and backend_init_target.
4408         (target_reinit) ... and here; clear
4409         this_target_rtl->lang_dependent_initialized.
4410         (lang_dependent_init_target): Clear
4411         this_target_rtl->lang_dependent_initialized;
4412         break out rtl initialization to ...
4413         (initialize_rtl): ... here; call also backend_init_target
4414         and ira_init_once.
4415         * toplev.h (initialize_rtl): New function.
4416         * function.c: Include toplev.h
4417         (init_function_start): Call initialize_rtl.
4418         * rtl.h (target_rtl): Add target_specific_initialized,
4419         lang_dependent_initialized.
4421 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
4422             Jakub Jelinek  <jakub@redhat.com>
4424         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
4426 2014-06-25  Tom de Vries  <tom@codesourcery.com>
4428         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
4430 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4432         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
4433         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
4434         Issue a strict overflow warning if appropriate.
4436 2014-06-25  Martin Liska  <mliska@suse.cz>
4438         IPA REF refactoring
4439         * Makefile.in: Removed header file (ipa-ref-inline.h).
4440         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
4441         called.
4442         (cgraph_speculative_call_info): Likewise.
4443         (cgraph_for_node_thunks_and_aliases): Likewise.
4444         (cgraph_for_node_and_aliases): Likewise.
4445         (verify_cgraph_node): Likewise.
4446         * cgraph.h: Batch of IPA REF functions become member functions of
4447         symtab_node: add_reference, maybe_add_reference, clone_references,
4448         clone_referring, clone_reference, find_reference,
4449         remove_stmt_references, remove_all_references,
4450         remove_all_referring, dump_references, dump_referring,
4451         has_alias_p, iterate_reference, iterate_referring.
4452         * cgraphbuild.c (record_reference): New IPA REF function used.
4453         (record_type_list): Likewise.
4454         (record_eh_tables): Likewise.
4455         (mark_address): Likewise.
4456         (mark_load): Likewise.
4457         (mark_store): Likewise.
4458         (pass_build_cgraph_edges): Likewise.
4459         (rebuild_cgraph_edge): Likewise.
4460         (cgraph_rebuild_references): Likewise.
4461         (pass_remove_cgraph_callee_edges): Likewise.
4462         * cgraphclones.c (cgraph_clone_node): Likewise.
4463         (cgraph_create_virtual_clone): Likewise.
4464         (cgraph_materialize_clone): Likewise.
4465         (cgraph_materialize_all_clones): Likewise.
4466         * cgraphunit.c (cgraph_reset_node): Likewise.
4467         (cgraph_reset_node): Likewise.
4468         (analyze_function): Likewise.
4469         (assemble_thunks_and_aliases): Likewise.
4470         (expand_function): Likewise.
4471         * ipa-comdats.c (propagate_comdat_group): Likewise.
4472         (enqueue_references): Likewise.
4473         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
4474         (create_specialized_node): Likewise.
4475         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
4476         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
4477         * ipa-inline.c (reset_edge_caches): Likewise.
4478         (update_caller_keys): Likewise.
4479         (execute): Likewise.
4480         * ipa-prop.c (remove_described_reference): Likewise.
4481         (propagate_controlled_uses): Likewise.
4482         (ipa_edge_duplication_hook): Likewise.
4483         (ipa_modify_call_arguments): Likewise.
4484         * ipa-pure-const.c (propagate_pure_const): Likewise.
4485         * ipa-ref-inline.h: Header file removed, functions moved
4486         to symtab_node class.
4487         * ipa-ref.c (remove_reference): New class member function.
4488         (cannot_lead_to_return): New class member function.
4489         (referring_ref_list): Likewise.
4490         (referred_ref_list): Likewise.
4491         Rest of functions moved to symtab_node class.
4492         * ipa-ref.h: New member functions remove_reference,
4493         cannot_lead_to_return, referring_ref_list, referred_ref_list added
4494         to ipa_ref class.
4495         ipa_ref_list class has new member functions: first_reference,
4496         first_referring, clear, nreferences.
4497         * ipa-reference.c (analyze_function): New IPA REF function used.
4498         (write_node_summary_p): Likewise.
4499         (ipa_reference_write_optimization_summary): Likewise.
4500         * ipa-split.c (split_function): Likewise.
4501         * ipa-utils.c (ipa_reverse_postorder): Likewise.
4502         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
4503         (function_and_variable_visibility): Likewise.
4504         * ipa.c (has_addr_references_p): Likewise.
4505         (process_references): Argument type changed.
4506         (symtab_remove_unreachable_nodes): New IPA REF function used.
4507         (process_references): Likewise.
4508         (set_writeonly_bit): Likewise.
4509         * lto-cgraph.c: Implementation of new symtab_node member functions
4510         that uses new IPA REF functions.
4511         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
4512         function used.
4513         * lto-streamer-out.c (output_symbol_p): Likewise.
4514         * lto-streamer.h (referenced_from_this_partition_p): Argument type
4515         changed.
4516         * symtab.c: Implementation of new IPA REF API.
4517         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
4518         (ipa_tm_create_version): Likewise.
4519         (ipa_tm_execute): Likewise.
4520         * tree-emutls.c (gen_emutls_addr): Likewise.
4521         * tree-inline.c (copy_bb): Likewise.
4522         (delete_unreachable_blocks_update_callgraph): Likewise.
4523         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
4524         (varpool_for_node_and_aliases): Likewise.
4526 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
4528         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
4530 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
4532         PR bootstrap/61598
4533         * fold-const.c (fold_checksum_tree): Use a hash_table of const
4534         tree_node * instead of tree_node *.
4535         (fold): Adjust.
4536         (print_fold_checksum): Likewise.
4537         (fold_check_failed): Likewise.
4538         (debug_fold_checksum): Likewise.
4539         (fold_build1_stat_loc): Likewise.
4540         (fold_build2_stat_loc): Likewise.
4541         (fold_build3_stat_loc): Likewise.
4542         (fold_build_call_array_loc): Likewise.
4544 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
4546         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
4547         implementation with call to...
4548         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
4549         function.
4550         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
4551         Declare.
4553 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
4555         PR tree-optimization/57742
4556         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
4557         after replacing the statement.
4559 2014-06-25  Nick Clifton  <nickc@redhat.com>
4561         * config/v850/v850.c (GHS_default_section_names): Change to const
4562         char * type.
4563         (GHS_current_section_names): Likewise.
4564         (v850_insert_attributes): Do not build strings, just assign the
4565         names directly.  Change the type of 'chosen_section' to const
4566         char*.
4567         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
4568         directly to the array entry.
4569         * config/v850/v850.h (GHS_default_section_names): Change to const
4570         char * type.
4571         (GHS_current_section_names): Likewise.
4573 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
4575         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
4576         (LANG_HOOKS_DECLS): Add it.
4577         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
4578         has correct type.
4579         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
4580         * langhooks.h (struct lang_hooks_for_decls): Add
4581         omp_clause_linear_ctor hook.
4582         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
4583         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
4584         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
4585         combined simd loop use omp_clause_linear_ctor hook.
4587 2014-06-24  Cong Hou  <congh@google.com>
4589         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
4590         pattern recognition.
4591         (type_conversion_p): PROMOTION is true if it's a type promotion
4592         conversion, and false otherwise.  Return true if the given expression
4593         is a type conversion one.
4594         * tree-vectorizer.h: Adjust the number of patterns.
4595         * tree.def: Add SAD_EXPR.
4596         * optabs.def: Add sad_optab.
4597         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
4598         * expr.c (expand_expr_real_2): Likewise.
4599         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4600         * gimple.c (get_gimple_rhs_num_ops): Likewise.
4601         * optabs.c (optab_for_tree_code): Likewise.
4602         * tree-cfg.c (estimate_operator_cost): Likewise.
4603         * tree-ssa-operands.c (get_expr_operands): Likewise.
4604         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
4605         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
4606         * doc/generic.texi: Add document for SAD_EXPR.
4607         * doc/md.texi: Add document for ssad and usad.
4609 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
4611         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
4612         qualification in cast.
4614 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
4616         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
4617         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
4618         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
4619         (tree_function_decl): ... here.
4620         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
4621         streaming of vindex to ...
4622         (write_ts_function_decl_tree_pointers): ... here.
4623         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
4624         Do not stream DECL_VINDEX.
4625         (lto_input_ts_function_decl_tree_pointers): Stream it here.
4627 2014-06-24  Catherine Moore  <clm@codesourcery.com>
4628             Sandra Loosemore  <sandra@codesourcery.com>
4630         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
4631         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
4632         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
4634 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
4636         * doc/invoke.texi (Warning Options): Remove duplicated
4637         -Wmaybe-uninitialized.
4639 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
4641         PR tree-optimization/57742
4642         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
4643         (handle_builtin_malloc, handle_builtin_memset): New functions.
4644         (strlen_optimize_stmt): Call them.
4645         * passes.def: Move strlen after loop+dom but before vrp.
4647 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
4649         PR target/61570
4650         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
4651         model family 6 CPU with has_longmode never use a CPU without
4652         64-bit support.
4654 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
4656         PR target/61570
4657         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
4658         the last change.
4660 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
4662         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
4663         * dominance.c (iterate_fix_dominators): Use hash_map instead of
4664         pointer_map.
4665         * hash-map.h: New file.
4666         * ipa-comdats.c: Use hash_map instead of pointer_map.
4667         * ipa.c: Likewise.
4668         * lto-section-out.c: Adjust.
4669         * lto-streamer.h: Replace pointer_map with hash_map.
4670         * symtab.c (verify_symtab): Likewise.
4671         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
4672         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
4673         * tree-streamer.h: Likewise.
4674         * tree-streamer.c: Adjust.
4675         * pointer-set.h: Remove pointer_map.
4677 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
4679         * hash-table.h: Add a template arg to choose between storing values
4680         and storing pointers to values, and then provide partial
4681         specializations for both.
4682         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
4683         should store, not the type values should point to.
4684         * tree-into-ssa.c (var_info_hasher): Likewise.
4685         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
4686         * tree-complex.c: Adjust.
4687         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
4688         table instead of int_tree_map *.
4689         * tree-parloops.c: Adjust.
4690         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
4691         type is being stored.
4692         * tree-vectorizer.c: Adjust.
4694 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
4696         * hash-table.h: Remove a layer of indirection from hash_table so that
4697         it contains the hash table's data instead of a pointer to the data.
4698         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
4699         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
4700         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
4701         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
4702         fold-const.c, gcse.c, ggc-common.c,
4703         gimple-ssa-strength-reduction.c, gimplify.c,
4704         graphite-clast-to-gimple.c, graphite-dependences.c,
4705         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
4706         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
4707         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
4708         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
4709         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
4710         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
4711         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
4712         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
4713         tree-ssa-live.c, tree-ssa-loop-im.c,
4714         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
4715         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
4716         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
4717         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
4718         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
4719         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
4720         vtable-verify.c, vtable-verify.h: Adjust.
4722 2014-06-24  Richard Biener  <rguenther@suse.de>
4724         PR tree-optimization/61572
4725         * tree-ssa-sink.c (statement_sink_location): Do not sink
4726         loads from hard registers.
4728 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
4730         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
4731         not mentioned in clauses use private clause if the iterator is
4732         declared in #pragma omp for simd, and when adding lastprivate
4733         instead, add it to the outer #pragma omp for too.  Diagnose
4734         if the variable is private in outer context.  For simd collapse > 1
4735         loops, replace all iterators with temporaries.
4736         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
4737         same even in collapse > 1 loops.
4739         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
4740         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
4741         non-NULL.
4742         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
4743         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
4744         non-NULL.
4745         (gimplify_adjust_omp_clauses): Likewise.
4746         * omp-low.c (lower_rec_simd_input_clauses,
4747         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
4748         safelen the same as safelen(1).
4749         * tree-nested.c (convert_nonlocal_omp_clauses,
4750         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
4751         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
4752         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
4753         Fixup handling of GIMPLE_OMP_TARGET.
4754         (convert_tramp_reference_stmt, convert_gimple_call): Handle
4755         GIMPLE_OMP_TARGET.
4757 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
4759         PR tree-optimization/61554
4760         * tree-ssa-propagate.c: Include "bitmap.h".
4761         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
4762         properly update constructor/destructor.
4763         (substitute_and_fold_dom_walker::before_dom_children):
4764         Remove call to gimple_purge_dead_eh_edges, add bb->index to
4765         need_eh_cleaup instead.
4766         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
4767         need_eh_cleanup.
4769 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
4771         * varpool.c (dump_varpool_node): Dump used_by_single_function.
4772         * tree-pass.h (make_pass_ipa_single_use): New pass.
4773         * cgraph.h (used_by_single_function): New flag.
4774         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
4775         Stream it.
4776         * passes.def (pass_ipa_single_use): Scedule.
4777         * ipa.c (BOTTOM): New macro.
4778         (meet): New function
4779         (propagate_single_user): New function.
4780         (ipa_single_use): New function.
4781         (pass_data_ipa_single_use): New pass.
4782         (pass_ipa_single_use): New pass.
4783         (pass_ipa_single_use::gate): New gate.
4784         (make_pass_ipa_single_use): New function.
4786 2014-06-23  Kai Tietz  <ktietz@redhat.com>
4788         PR target/39284
4789         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
4790         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
4792 2014-06-23  Richard Biener  <rguenther@suse.de>
4794         * tree-ssa-loop.c (gate_loop): New function.
4795         (pass_tree_loop::gate): Call it.
4796         (pass_data_tree_no_loop, pass_tree_no_loop,
4797         make_pass_tree_no_loop): New.
4798         * tree-vectorizer.c: Include tree-scalar-evolution.c
4799         (pass_slp_vectorize::execute): Initialize loops and SCEV if
4800         required.
4801         (pass_slp_vectorize::clone): New method.
4802         * timevar.def (TV_TREE_NOLOOP): New.
4803         * tree-pass.h (make_pass_tree_no_loop): Declare.
4804         * passes.def (pass_tree_no_loop): New pass group with
4805         SLP vectorizer.
4807 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
4809         PR target/61570
4810         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
4811         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
4813 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
4815         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
4816         "yes" where needed.
4818 2014-06-23  Alan Modra  <amodra@gmail.com>
4820         PR bootstrap/61583
4821         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
4822         to zero on debug statements.
4824 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
4826         PR target/60825
4827         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
4828         Ignore third operand if present by marking qualifier_internal.
4830         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
4832         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
4833         vector extension.
4834         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
4835         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
4836         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
4837         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
4838         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
4839         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
4840         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
4841         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
4842         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
4843         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
4844         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
4845         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
4846         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
4847         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
4848         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
4849         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
4850         logic in GCC vector extensions
4852         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
4853         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
4854         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
4855         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
4856         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
4857         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
4858         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
4859         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
4860         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
4861         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
4863         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
4865         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
4866         extensions.
4868         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
4869         (vget_low_s64): Use __GET_LOW macro.
4870         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
4871         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
4872         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
4873         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
4874         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
4876         (vcombine_s64): Use GCC vector extensions; remove cast.
4877         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
4878         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
4879         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
4880         Fix type signature; remove cast.
4882 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
4884         PR target/60825
4885         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
4886         V1DFmode.
4887         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
4888         add V1DFmode
4889         (BUILTIN_VD1): New.
4890         (BUILTIN_VD_RE): Remove.
4891         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
4892         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
4893         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
4894         variant but not df.
4895         (vreinterpretv1df*, vreinterpret*v1df): New.
4896         (vreinterpretdf*, vreinterpret*df): Remove.
4897         * config/aarch64/aarch64-simd.md (aarch64_create,
4898         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
4899         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
4900         (VD1): New.
4901         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
4902         (vcreate_f64): Remove cast, use v1df builtin.
4903         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
4904         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
4905         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
4906         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
4907         vmov_n_f64, vst1_f64): Use gcc vector extensions.
4908         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
4909         add range check using __builtin_aarch64_im_lane_boundsi.
4910         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
4911         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
4912         type signature, use gcc vector extensions.
4913         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
4914         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
4915         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
4916         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
4917         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
4918         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
4919         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
4920         vreinterpret_u64_f64): Use v1df builtin not df.
4922 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
4924         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
4925         vector registers.
4927 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
4929         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
4930         priority directly.
4932 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
4934         * loop-invariant.c (pre_check_invariant_p): New function.
4935         (find_invariant_insn): Call pre_check_invariant_p.
4937 2014-06-22  Richard Henderson  <rth@redhat.com>
4939         PR target/61565
4940         * compare-elim.c (struct comparison): Add eh_note.
4941         (find_comparison_dom_walker::before_dom_children): Don't eliminate
4942         a redundant comparison in a different EH region.  Purge EH edges if
4943         necessary.
4945 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
4947         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
4948         (var_shift): Use it.
4949         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
4950         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
4951         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
4952         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
4953         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
4954         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
4955         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
4956         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
4957         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
4958         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
4959         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
4960         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
4961         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
4962         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
4963         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
4964         *rotldi3_internal15be): Use the new attribute.  Merge register and
4965         integer alternatives.
4967 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
4969         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
4970         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
4971         split, *ashrdi3_internal3 and split): Delete, merge into...
4972         (ashr<mode>3): New expander.
4973         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
4974         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
4976 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
4978         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
4979         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
4980         *rotldi3_internal3 and split): Delete, merge into...
4981         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
4982         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
4983         Use "rotlw" extended mnemonic.
4985 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
4987         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
4988         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
4989         and split, *ashldi3_internal3 and split): Delete, merge into...
4990         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
4991         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
4993 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
4995         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
4996         (lshrsi3, two anonymous define_insns and define_splits,
4997         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
4998         *lshrdi3_internal3 and split): Delete, merge into...
4999         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
5000         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
5002 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
5004         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
5005         Remove "O" alternative.
5007 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
5009         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
5010         (mips_move_from_gpr_cost): Likewise.
5011         (mips_register_move_cost): Update accordingly.
5012         (mips_secondary_reload_class): Remove name of in_p.
5014 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
5016         PR target/61503
5017         * config/i386/i386.md (x86_64_shrd, x86_shrd,
5018         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
5020 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5022         * config/nios2/nios2.c: Include "builtins.h".
5024 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
5026         * cgraph.h (tls_model_names): New variable.
5027         * print-tree.c (print_node): Simplify.
5028         * varpool.c (tls_model_names): New variable.
5029         (dump_varpool_node): Output tls model.
5031 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
5033         * ipa-visibility.c (function_and_variable_visibility): Disable
5034         temporarily local aliases for some targets.
5036 2014-06-20  Marek Polacek  <polacek@redhat.com>
5038         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
5039         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
5040         into SANITIZE_UNDEFINED.
5041         * doc/invoke.texi: Describe -fsanitize=bounds.
5042         * gimplify.c (gimplify_call_expr): Add gimplification of internal
5043         functions created in the FEs.
5044         * internal-fn.c: Move "internal-fn.h" after "tree.h".
5045         (expand_UBSAN_BOUNDS): New function.
5046         * internal-fn.def (UBSAN_BOUNDS): New internal function.
5047         * internal-fn.h: Don't define internal functions here.
5048         * opts.c (common_handle_option): Add -fsanitize=bounds.
5049         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
5050         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
5051         * tree-core.h: Define internal functions here.
5052         (struct tree_base): Add ifn field.
5053         * tree-pretty-print.c: Include "internal-fn.h".
5054         (dump_generic_node): Handle functions without CALL_EXPR_FN.
5055         * tree.c (get_callee_fndecl): Likewise.
5056         (build_call_expr_internal_loc): New function.
5057         * tree.def (CALL_EXPR): Update description.
5058         * tree.h (CALL_EXPR_IFN): Define.
5059         (build_call_expr_internal_loc): Declare.
5060         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
5061         types.
5062         (ubsan_type_descriptor): Change bool parameter to enum
5063         ubsan_print_style.  Adjust the code.  Add handling of
5064         UBSAN_PRINT_ARRAY.
5065         (ubsan_expand_bounds_ifn): New function.
5066         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
5067         (ubsan_build_overflow_builtin): Likewise.
5068         (instrument_bool_enum_load): Likewise.
5069         (ubsan_instrument_float_cast): Likewise.
5070         * ubsan.h (enum ubsan_print_style): New enum.
5071         (ubsan_expand_bounds_ifn): Declare.
5072         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
5074 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
5076         * config/rs6000/rs6000.md: Append `DONE' to preparation
5077         statements of `bswap' pattern splitters.
5079 2014-06-20  Tom de Vries  <tom@codesourcery.com>
5081         * target.def (call_fusage_contains_non_callee_clobbers): Update
5082         definition.
5083         * doc/tm.texi: Regenerate.
5085 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
5086             Max Ostapenko  <m.ostapenko@partner.samsung.com>
5088         PR sanitizer/61547
5089         * asan.c (instrument_strlen_call): Fixed instrumentation of
5090         trailing byte.
5092 2014-06-20  Martin Jambor  <mjambor@suse.cz>
5094         PR ipa/61540
5095         * ipa-prop.c (impossible_devirt_target): New function.
5096         (try_make_edge_direct_virtual_call): Use it, also instead of
5097         asserting.
5099 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
5100             Max Ostapenko  <m.ostapenko@partner.samsung.com>
5102         PR sanitizer/61530
5103         * asan.c (build_check_stmt): Add condition.
5105 2014-06-20  Martin Jambor  <mjambor@suse.cz>
5107         PR ipa/61211
5108         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
5109         expanded clones.
5111 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5113         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
5114         Update comments.
5115         (VCONQ): Make comment more helpful.
5116         (VCON): Delete.
5117         * config/aarch64/aarch64-simd.md
5118         (aarch64_sqdmulh_lane<mode>):
5119         Use VCOND for operands 2.  Update lane checking and flipping logic.
5120         (aarch64_sqrdmulh_lane<mode>): Likewise.
5121         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
5122         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
5123         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
5124         attribute of operand 3 to VCOND.
5125         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
5126         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
5127         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
5128         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
5129         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
5130         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
5131         define_insn.
5132         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
5133         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
5134         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
5135         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
5136         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
5137         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
5138         operand to VCOND.  Update lane flipping and bounds checking logic.
5139         (aarch64_sqdmlal2_lane<mode>): Likewise.
5140         (aarch64_sqdmlsl_lane<mode>): Likewise.
5141         (aarch64_sqdmull_lane<mode>): Likewise.
5142         (aarch64_sqdmull2_lane<mode>): Likewise.
5143         (aarch64_sqdmlal_laneq<mode>):
5144         Replace VCON usage with VCONQ.
5145         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
5146         (aarch64_sqdmlal2_laneq<mode>): Emit
5147         aarch64_sqdmlal2_laneq<mode>_internal insn.
5148         Replace VCON with VCONQ.
5149         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
5150         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
5151         (aarch64_sqdmull_laneq<mode>): Emit
5152         aarch64_sqdmull_laneq<mode>_internal insn.
5153         Replace VCON with VCONQ.
5154         (aarch64_sqdmull2_laneq<mode>): Emit
5155         aarch64_sqdmull2_laneq<mode>_internal insn.
5156         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
5157         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
5158         of 3rd argument to int16x4_t.
5159         (vqdmlalh_lane_s16): Likewise.
5160         (vqdmlslh_lane_s16): Likewise.
5161         (vqdmull_high_lane_s16): Likewise.
5162         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
5163         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
5164         (vqdmlsl_lane_s16): Likewise.
5165         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
5166         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
5167         (vqdmlals_lane_s32): Likewise.
5168         (vqdmlsls_lane_s32): Likewise.
5169         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
5170         (vqdmulls_lane_s32): Likewise.
5171         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
5172         (vqdmlsl_lane_s32): Likewise.
5173         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
5174         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
5175         (vqrdmulhh_lane_s16): Likewise.
5176         (vqdmlsl_high_lane_s16): Likewise.
5177         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
5178         (vqdmlsl_high_lane_s32): Likewise.
5179         (vqrdmulhs_lane_s32): Likewise.
5181 2014-06-20  Tom de Vries  <tom@codesourcery.com>
5183         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
5184         get_call_reg_set_usage.
5186 2014-06-20  Tom de Vries  <tom@codesourcery.com>
5188         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
5189         it contains all call_used_regs.
5191 2014-06-20  Tom de Vries  <tom@codesourcery.com>
5193         * final.c (collect_fn_hard_reg_usage): Add and use variable
5194         function_used_regs.
5196 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
5198         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
5199         (set_init_priority, get_init_priority, set_fini_priority,
5200         get_fini_priority): New methods.
5201         * tree.c (init_priority_for_decl): Remove.
5202         (init_ttree): Do not initialize init priority.
5203         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
5204         (decl_priority_info): Remove.
5205         (decl_init_priority_insert): Rewrite.
5206         (decl_fini_priority_insert): Rewrite.
5207         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
5208         tree_priority_map_marked_p): Remove.
5209         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
5210         * lto-streamer-out.c (hash_tree): Do not hash priorities.
5211         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
5212         not output priorities.
5213         (pack_ts_function_decl_value_fields): Likewise.
5214         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
5215         not input priorities.
5216         (unpack_ts_function_decl_value_fields): Likewise.
5217         * symtab.c (symbol_priority_map): Declare.
5218         (init_priority_hash): Declare.
5219         (symtab_unregister_node): Unregister from priority hash, too.
5220         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
5221         New methods.
5222         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
5223         (symbol_priority_info): New function.
5224         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
5225         New methods.
5226         * tree-core.h (tree_priority_map): Remove.
5228 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
5230         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
5231         0xff to uint64_t before shifting it up.
5233 2014-06-20  Julian Brown  <julian@codesourcery.com>
5234             Chung-Lin Tang  <cltang@codesourcery.com>
5236         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
5237         TARGET_THUMB1_ONLY. Add comments.
5239 2014-06-19  Tom de Vries  <tom@codesourcery.com>
5241         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
5242         return type to void.
5243         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
5245 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5247         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
5248         as "move", from depends_on.
5250 2014-06-19  Terry Guo  <terry.guo@arm.com>
5252         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
5253         stage.
5255 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
5257         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
5258         Remove cr5.
5259         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
5261 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5263         PR target/61550
5264         * config/sh/sh.c (prepare_move_operands): Don't process TLS
5265         addresses here if reload in progress or completed.
5267 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
5269         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
5270         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
5271         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
5272         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
5273         (mips_register_priority): New function that implements the target
5274         hook TARGET_REGISTER_PRIORITY.
5275         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
5276         (mips_lra_p): Likewise for TARGET_LRA_P.
5277         (TARGET_REGISTER_PRIORITY): Define macro.
5278         (TARGET_SPILL_CLASS): Likewise.
5279         (TARGET_LRA_P): Likewise.
5280         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
5281         classes.
5282         (REG_CLASS_NAMES): Likewise.
5283         (REG_CLASS_CONTENTS): Likewise.
5284         (BASE_REG_CLASS): Use M16_SP_REGS.
5285         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
5286         New set attribute to enable alternatives depending on the register
5287         allocator used.
5288         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
5289         (*lea64): Disable pattern for MIPS16.
5290         * config/mips/mips.opt (mlra): New option.
5292 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
5294         * lra-constraints.c (base_to_reg): New function.
5295         (process_address): Use new function.
5297 2014-06-18  Tom de Vries  <tom@codesourcery.com>
5299         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
5300         * config/aarch64/aarch64.c
5301         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
5302         (aarch64_emit_call_insn): New function.
5303         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
5304         of emit_call_insn.
5305         * config/aarch64/aarch64.md (define_expand "call_internal")
5306         (define_expand "call_value_internal", define_expand "sibcall_internal")
5307         (define_expand "sibcall_value_internal"): New.
5308         (define_expand "call", define_expand "call_value")
5309         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
5310         expand variant and aarch64_emit_call_insn.
5312 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
5313             Tom de Vries  <tom@codesourcery.com>
5315         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
5316         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
5317         Redefine to true.
5318         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
5319         clobbers to CALL_INSN_FUNCTION_USAGE.
5320         (define_expand "sibcall_internal")
5321         (define_expand "sibcall_value_internal"): New.
5322         (define_expand "call", define_expand "call_value"): Add argument to
5323         arm_emit_call_insn.
5324         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
5325         (define_expand "sibcall_value"): Use sibcall_value_internal and
5326         arm_emit_call_insn.
5328 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
5330         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
5332 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
5334         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
5335         __udivmoddi4.
5337 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
5339         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
5340         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
5341         annotations. Fix DWARF information.
5343 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
5345         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
5346         __udivmoddi4, and fixups for negative operands.
5348 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
5350         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
5352 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
5354         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
5355         to __udivmoddi4.
5357 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
5359         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
5360         manipulation.
5362 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
5364         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
5365         describing register usage on function entry and exit.
5367 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
5369         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
5370         (__aeabi_ldivmod): Fix whitespace.
5372 2014-06-18  Andreas Schwab  <schwab@suse.de>
5374         * doc/md.texi (Standard Names): Use @itemx for grouped items.
5375         Remove blank line after @item.
5377 2014-06-18  Richard Henderson  <rth@redhat.com>
5379         PR target/61545
5380         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
5382 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
5384         * config/arm/arm.c (neon_vector_mem_operand): Allow register
5385         POST_MODIFY for neon loads and stores.
5386         (arm_print_operand): Output post-index register for neon loads and
5387         stores.
5389 2014-06-18  Richard Biener  <rguenther@suse.de>
5391         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
5393 2014-06-18  Richard Biener  <rguenther@suse.de>
5395         * tree-pass.h (make_pass_dce_loop): Remove.
5396         * passes.def: Replace pass_dce_loop with pass_dce.
5397         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
5398         changed free niter estimates and reset the scev cache.
5399         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
5400         make_pass_dce_loop): Remove.
5401         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
5402         (fini_copy_prop): Return whether something changed.  Always
5403         let substitute_and_fold perform DCE and free niter estimates
5404         and reset the scev cache if so.
5405         (execute_copy_prop): If sth changed schedule cleanup-cfg.
5406         (pass_data_copy_prop): Do not unconditionally schedule
5407         cleanup-cfg or update-ssa.
5409 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
5411         PR tree-optimization/61518
5412         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
5413         reduction var is used in reduction stmt or phi-function only.
5415 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5417         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
5419 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5421         PR tree-optimization/61517
5422         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
5423         whose rhs's first tree is the source expression instead of the
5424         expression itself.
5425         (find_bswap_or_nop): Likewise.
5426         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
5427         gimple stmt whose rhs's first tree is the source. In the memory source
5428         case, move the stmt to be replaced close to one of the original load to
5429         avoid the problem of a store between the load and the stmt's original
5430         location.
5431         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
5432         signature.
5434 2014-06-18  Andreas Schwab  <schwab@suse.de>
5436         PR rtl-optimization/54555
5437         * postreload.c (move2add_use_add2_insn): Substitute
5438         STRICT_LOW_PART only if it is cheaper.
5440 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
5442         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
5443         Do not use unspec as call operand.  Use memory_operand instead of
5444         memory_nox32_operand and add "m" operand constraint.  Disable
5445         pattern for TARGET_X32.
5446         (*sibcall_pop_memory): Ditto.
5447         (*sibcall_value_memory): Ditto.
5448         (*sibcall_value_pop_memory): Ditto.
5449         (sibcall peepholes): Merge SImode and DImode patterns using
5450         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
5451         Disable pattern for TARGET_X32.  Check if eliminated register is
5452         really dead after call insn.  Generate call RTX without unspec operand.
5453         (sibcall_value peepholes): Ditto.
5454         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
5455         instead of memory_nox32_operand.  Check if eliminated register is
5456         really dead after call insn. Generate call RTX without unspec operand.
5457         (sibcall_value_pop peepholes): Ditto.
5458         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
5460 2014-06-18  Terry Guo  <terry.guo@arm.com>
5462         PR target/61544
5463         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
5464         reach the head.
5466 2014-06-18  Olivier Hainque  <hainque@adacore.com>
5468         * tree-core.h (tree_block): Add an "end_locus" field, allowing
5469         memorization of the end of block source location.
5470         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
5471         * gimplify.c (gimplify_bind_expr): Propagate the block start and
5472         end source location info we have on the block entry/exit code we
5473         generate.
5475 2014-06-18  Richard Biener  <rguenther@suse.de>
5477         * common.opt (fssa-phiopt): New option.
5478         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
5479         but not with -Og.
5480         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
5481         * doc/invoke.texi (-fssa-phiopt): Document.
5483 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5485         * genattrtab.c (n_bypassed): New variable.
5486         (process_bypasses): Initialise n_bypassed.
5487         Count number of bypassed reservations.
5488         (make_automaton_attrs): Allocate space for bypassed reservations
5489         rather than number of bypasses.
5491 2014-06-18  Richard Biener  <rguenther@suse.de>
5493         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
5494         we propagated anything.
5495         (substitute_and_fold_dom_walker::before_dom_children): Something
5496         changed if we propagated into PHI arguments.
5497         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
5498         we removed a stmt.
5500 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
5502         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
5503         vector case.
5504         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
5505         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
5506         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
5507         Introduces alternative way of loads group permutaions.
5508         (vect_transform_grouped_load): Try alternative way of permutations.
5510 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
5512         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
5513         changed in ORT_TARGET region, don't jump to do_outer.
5514         (struct gimplify_adjust_omp_clauses_data): New type.
5515         (gimplify_adjust_omp_clauses_1): Adjust for data being
5516         a struct gimplify_adjust_omp_clauses_data pointer instead
5517         of tree *.  Pass pre_p as a new argument to
5518         lang_hooks.decls.omp_finish_clause hook.
5519         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
5520         splay_tree_foreach to pass both list_p and pre_p.
5521         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
5522         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
5523         gimplify_adjust_omp_clauses callers.
5524         * langhooks.c (lhd_omp_finish_clause): New function.
5525         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
5526         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
5527         * langhooks.h (struct lang_hooks_for_decls): Add a new
5528         gimple_seq * argument to omp_finish_clause hook.
5529         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
5530         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
5531         (scan_omp_parallel, lower_omp_for): When adding
5532         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
5533         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
5534         * tree-nested.c (convert_nonlocal_omp_clauses,
5535         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
5536         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
5538 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
5540         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
5541         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
5543 2014-06-17  Xinliang David Li  <davidxl@google.com>
5545         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
5546         * passes.c (pass_init_dump_file): Do not set initialize
5547         flag to false unconditionally.
5549 2014-06-17  Richard Biener  <rguenther@suse.de>
5551         * genopinit.c (main): Use vec<>::qsort method.
5552         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
5553         Likewise.
5554         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
5556 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
5558         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
5559         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
5560         (mips_move_to_gpr_cost): Remove ST_REGS case.
5561         (mips_move_from_gpr_cost): Likewise.
5562         (mips_register_move_cost): Likewise.
5563         (mips_secondary_reload_class): Likewise.
5565 2014-06-17  Richard Biener  <rguenther@suse.de>
5567         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
5568         (pass_all_optimizations): Move 3rd copy-prop pass from after
5569         fre to before ifcombine/phiopt.
5571 2014-06-17  Richard Biener  <rguenther@suse.de>
5573         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
5574         and allow all blocks to be forwarders.
5576 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
5578         PR target/61483
5579         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
5580         variable 'size'; calculate 'size' right in the front; use
5581         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
5582         pcum->aapcs_stack_words.
5584 2014-06-17  Nick Clifton  <nickc@redhat.com>
5586         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
5587         (umulhi3, mulsidi3, umulsidi3): Likewise.
5589 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
5591         PR middle-end/61508
5592         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
5593         check for section name.
5595 2014-06-17  Richard Biener  <rguenther@suse.de>
5597         * tree-ssa-propagate.c: Include domwalk.h.
5598         (substitute_and_fold): Outline main worker into a domwalker ...
5599         (substitute_and_fold_dom_walker::before_dom_children): ... here.
5600         Schedule stmts we can fully propagate for removal.  Remove
5601         poor-mans DCE.
5602         (substitute_and_fold): Apply a dominator walk to perform
5603         substitution.  Process stmts scheduled for removal here.
5605 2014-06-17  Richard Biener  <rguenther@suse.de>
5607         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
5608         of PHI node moving.
5610 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
5612         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
5613         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
5614         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
5615         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
5616         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
5617         TARGET_HARD_FLOAT.
5618         (get_fpscr) : Likewise.
5620 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
5622         PR rtl-optimization/61325
5623         * lra-constraints.c (valid_address_p): Add forward declaration.
5624         (simplify_operand_subreg): Check address validity before and after
5625         alter_reg of memory subreg.
5627 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
5629         * config/i386/i386.c (decide_alg): Correctly handle
5630         maximum size of stringop algorithm.
5632 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
5634         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
5636 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
5638         PR rtl-optimization/61522
5639         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
5641 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
5643         Revert:
5644         * symtab.c (symtab_node::reset_section): New method.
5645         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
5646         for localization.
5647         * cgraph.h (reset_section): Declare.
5648         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
5649         do not consider comdat locals.
5650         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
5651         for new symbol.
5652         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
5653         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
5654         reset sections of symbols dragged out of the comdats.
5655         (function_and_variable_visibility): Reset sections of
5656         localized symbols.
5658 2014-06-16  Richard Biener  <rguenther@suse.de>
5660         PR tree-optimization/61482
5661         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
5662         [-INF(OVF), +INF(OVF)] range.
5664 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
5666         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
5667         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
5668         handling 32-bit multiplication.
5670 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
5672         PR middle-end/61430
5673         * lra-lives.c (process_bb_lives): Skip creating copy during
5674         insn scan when src/dest has constrained to same regno.
5676 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
5678         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
5679         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
5681 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
5683         * asan.c (check_func): New function.
5684         (maybe_create_ssa_name): Likewise.
5685         (build_check_stmt_with_calls): Likewise.
5686         (use_calls_p): Likewise.
5687         (report_error_func): Change interface.
5688         (build_check_stmt): Allow non-integer lengths; add support
5689         for new parameter.
5690         (asan_instrument): Likewise.
5691         (instrument_mem_region_access): Moved code to build_check_stmt.
5692         (instrument_derefs): Likewise.
5693         (instrument_strlen_call): Likewise.
5694         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
5695         * doc/invoke.texi: Describe new parameter.
5696         * params.def: Define new parameter.
5697         * params.h: Likewise.
5698         * sanitizer.def: Describe new builtins.
5700 2014-06-16  Richard Biener  <rguenther@suse.de>
5702         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5703         Make all defs available at the end.
5704         (eliminate): If we remove a PHI node schedule cfg-cleanup.
5706 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
5708         PR plugins/45078
5709         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
5711 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
5713         PR bootstrap/61516
5714         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
5715         initialization.  Replace remaining use of uid.
5717 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
5719         * c-family/c-common.c (handle_tls_model_attribute): Use
5720         set_decl_tls_model.
5721         * c-family/c-common.c (handle_tls_model_attribute): Use
5722         set_decl_tls_model.
5723         * cgraph.h (struct varpool_node): Add tls_model.
5724         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
5725         * tree.h (DECL_TLS_MODEL): Update.
5726         (DECL_THREAD_LOCAL_P): Check that variable is static.
5727         (decl_tls_model): Declare.
5728         (set_decl_tls_model): Declare.
5729         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
5730         set symbol prorperties.
5731         (get_emutls_init_templ_addr): Cleanup.
5732         (new_emutls_decl): Update.
5733         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
5734         (lto_input_varpool_node): Likewise.
5735         * lto-streamer-out.c (hash_tree): Likewise.
5736         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
5737         not stream DECL_TLS_MODEL.
5738         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
5739         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
5741 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
5743         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
5745 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
5747         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
5748         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
5749         lists.
5750         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
5751         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
5752         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
5753         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
5754         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
5755         (df_get_artificial_defs, df_get_artificial_uses)
5756         (df_single_def, df_single_use): Update accordingly.
5757         (df_refs_chain_dump): Take the first element in a linked list as
5758         parameter, rather than a pointer to an array of pointers.
5759         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
5760         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
5761         (df_chain_create_bb_process_use): Likewise.
5762         (df_md_bb_local_compute_process_def): Likewise.
5763         * fwprop.c (process_defs, process_uses): Likewise.
5764         (register_active_defs, update_uses): Likewise.
5765         (forward_propagate_asm): Update for new df_ref linking.
5766         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
5767         (df_null_ref_rec, df_null_mw_rec): Likewise.
5768         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
5769         explicitly.
5770         (df_scan_free_bb_info): Remove check for null artificial_defs.
5771         (df_install_ref_incremental): Adjust for new df_ref linking.
5772         Use a single-element insertion rather than a full sort.
5773         (df_ref_chain_delete_du_chain): Take the first element
5774         in a linked list as parameter, rather than a pointer to an array of
5775         pointers.
5776         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
5777         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
5778         (df_insn_info_delete): Remove check for null defs and call to
5779         df_scan_free_mws_vec.
5780         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
5781         null rather than df_null_*_rec.
5782         (df_insn_rescan_debug_internal): Likewise, and update null
5783         checks in the same way.  Remove check for null defs.
5784         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
5785         Move a single element rather doing a full sort.
5786         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
5787         linking.
5788         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
5789         Initialize df_ref and df_mw_hardreg lists to null rather than
5790         df_null_*_rec.
5791         (df_ref_compare): Take df_refs as parameter, transferring the
5792         old interface to...
5793         (df_ref_ptr_compare): ...this new function.
5794         (df_sort_and_compress_refs): Update accordingly.
5795         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
5796         old interface to...
5797         (df_mw_ptr_compare): ...this new function.
5798         (df_sort_and_compress_mws): Update accordingly.
5799         (df_install_refs, df_install_mws): Return a linked list rather than
5800         an array of pointers.
5801         (df_refs_add_to_chains): Assert that old lists are empty rather
5802         than freeing them.
5803         (df_insn_refs_verify): Don't handle null defs speciailly.
5804         * web.c (union_match_dups): Update for new df_ref linking.
5806 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
5808         * df.h (df_ref_create, df_ref_remove): Delete.
5809         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
5810         (df_ref_remove): Likewise.
5812 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
5814         * df.h (df_single_def, df_single_use): New functions.
5815         * ira.c (find_moveable_pseudos): Use them.
5817 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
5819         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
5820         * df-problems.c (df_note_bb_compute): Use it.
5821         * regstat.c (regstat_bb_compute_ri): Likewise.
5823 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
5825         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
5826         * cse.c (cse_extended_basic_block): Use them.
5827         * dce.c (mark_artificial_use): Likewise.
5828         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
5829         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
5830         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
5831         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
5832         (df_simulate_initialize_backwards): Likewise.
5833         (df_simulate_finalize_backwards): Likewise.
5834         (df_simulate_initialize_forwards): Likewise.
5835         (df_md_simulate_artificial_defs_at_top): Likewise.
5836         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
5837         * regrename.c (init_rename_info): Likewise.
5838         * regstat.c (regstat_bb_compute_ri): Likewise.
5839         (regstat_bb_compute_calls_crossed): Likewise.
5841 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
5843         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
5844         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
5845         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
5846         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
5847         * combine.c (create_log_links): Likewise.
5848         * compare-elim.c (find_flags_uses_in_insn): Likewise.
5849         (try_eliminate_compare): Likewise.
5850         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
5851         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
5852         (remove_reg_equal_equiv_notes_for_defs): Likewise.
5853         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
5854         (word_dce_process_block, dce_process_block): Likewise.
5855         * ddg.c (def_has_ccmode_p): Likewise.
5856         * df-core.c (df_bb_regno_first_def_find): Likewise.
5857         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
5858         * df-problems.c (df_rd_simulate_one_insn): Likewise.
5859         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
5860         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
5861         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
5862         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
5863         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
5864         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
5865         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
5866         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
5867         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
5868         * fwprop.c (local_ref_killed_between_p): Likewise.
5869         (all_uses_available_at, free_load_extend): Likewise.
5870         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
5871         * hw-doloop.c (scan_loop): Likewise.
5872         * ifcvt.c (dead_or_predicable): Likewise.
5873         * init-regs.c (initialize_uninitialized_regs): Likewise.
5874         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
5875         (process_bb_node_lives): Likewise.
5876         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
5877         (find_moveable_pseudos): Likewise.
5878         * loop-invariant.c (check_dependencies, record_uses): Likewise.
5879         * recog.c (peep2_find_free_register): Likewise.
5880         * ree.c (get_defs): Likewise.
5881         * regstat.c (regstat_bb_compute_ri): Likewise.
5882         (regstat_bb_compute_calls_crossed): Likewise.
5883         * sched-deps.c (find_inc, find_mem): Likewise.
5884         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
5885         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
5886         * shrink-wrap.c (requires_stack_frame_p): Likewise.
5887         (prepare_shrink_wrap): Likewise.
5888         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
5889         * web.c (union_defs, pass_web::execute): Likewise.
5890         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
5891         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
5893 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
5895         * lra-assign.c (assign_by_spills): Add code to assign vector regs
5896         to inheritance pseudos.
5897         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
5899 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
5901         PR target/61415
5902         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
5903         (BU_MISC_2): Rename to ...
5904         (BU_LDBL128_2): ... this.
5905         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
5906         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
5907         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
5908         RS6000_BTM_LDBL128.
5909         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
5910         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
5911         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
5912         (unpacktf_1): Likewise.
5913         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
5914         (__builtin_longdouble_dw1): Likewise.
5915         * doc/sourcebuild.texi (longdouble128): Document.
5917 2014-06-13  Jeff Law  <law@redhat.com>
5919         PR rtl-optimization/61094
5920         PR rtl-optimization/61446
5921         * ree.c (combine_reaching_defs): Get the mode for the copy from
5922         the extension insn rather than the defining insn.
5924 2014-06-13  Dehao Chen  <dehao@google.com>
5926         * dwarf2out.c (add_linkage_name): Emit more linkage name.
5928 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
5930         * doc/install.texi (--enable-linker-plugin-configure-flags)
5931         (--enable-linker-plugin-flags): Document new flags.
5933 2014-06-13  Martin Jambor  <mjambor@suse.cz>
5935         PR ipa/61186
5936         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
5937         cache_token if returning early.
5939 2014-06-13  Nick Clifton  <nickc@redhat.com>
5941         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
5942         requested alignment is active.
5943         (LABEL_ALIGN): Likewise.
5944         (LOOP_ALIGN): Likewise.
5946 2014-06-13  Richard Biener  <rguenther@suse.de>
5948         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5949         Rewrite to propagate the VN result into all uses where
5950         possible and to remove stmts becoming dead because of that.
5951         (eliminate): Generalize stmt removal handling, remove in
5952         reverse dominator order to support proper debug stmt
5953         generation.  Update stmts before removing stmts.
5954         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
5956 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5958         PR tree-optimization/61375
5959         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
5960         symbolic number cannot be represented in an uint64_t.
5961         (find_bswap_or_nop_1): Likewise.
5963 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
5965         * symtab.c (symtab_node::reset_section): New method.
5966         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
5967         for localization.
5968         * cgraph.h (reset_section): Declare.
5969         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
5970         do not consider comdat locals.
5971         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
5972         for new symbol.
5973         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
5974         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
5975         reset sections of symbols dragged out of the comdats.
5976         (function_and_variable_visibility): Reset sections of
5977         localized symbols.
5979 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
5981         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
5982         to use symtab and decl_binds_to_current_def_p
5983         * tree-vectorizer.c (increase_alignment): Increase alignment
5984         of alias target, too.
5986 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
5988         PR middle-end/61486
5989         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
5990         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
5991         if outer combined construct is distribute.
5992         (gimplify_omp_for): For OMP_DISTRIBUTE set
5993         gimplify_omp_ctxp->distribute.
5994         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
5995         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
5996         mapping into decl map.
5998 2014-06-12  Jason Merrill  <jason@redhat.com>
6000         * common.opt (fabi-version): Change default to 0.
6002 2014-06-12  Jason Merrill  <jason@redhat.com>
6004         * toplev.c (process_options): Reject -fabi-version=1.
6006 2014-06-12  Jeff Law  <law@redhat.com>
6008         PR tree-optimization/61009
6009         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
6010         value when we stop processing a block due to problematic PHIs.
6012 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
6014         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
6015         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
6016         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
6017         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
6018         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
6019         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
6020         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
6021         are not in the spec.
6023 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
6025         PR target/59843
6026         * config/aarch64/aarch64-modes.def: Add V1DFmode.
6027         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
6028         Support V1DFmode.
6030 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
6032         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
6034 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
6036         PR target/61443
6037         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
6038         loading from address spaces.
6040 2014-06-12  Martin Liska  <mliska@suse.cz>
6042         PR ipa/61462
6043         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
6044         statement is reachable.
6046 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
6048         * symtab.c (section_hash): New hash.
6049         (symtab_unregister_node): Clear section before freeing.
6050         (hash_section_hash_entry): New haser.
6051         (eq_sections): New function.
6052         (symtab_node::set_section_for_node): New method.
6053         (set_section_1): Update.
6054         (symtab_node::set_section): Take string instead of tree as parameter.
6055         (symtab_resolve_alias): Update.
6056         * cgraph.h (section_hash_entry_d): New structure.
6057         (section_hash_entry): New typedef.
6058         (cgraph_node): Change comdat_group_ to x_comdat_group,
6059         change section_ to x_section and turn into section_hash_entry;
6060         update accestors; put set_section_for_node offline.
6061         * tree.c (decl_section_name): Turn into string.
6062         (set_decl_section_name): Change parameter to be string.
6063         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
6064         * sdbout.c (sdbout_one_type): Update.
6065         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
6066         * varasm.c (IN_NAMED_SECTION, get_named_section,
6067         resolve_unique_section, hot_function_section, get_named_text_section,
6068         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
6069         make_decl_rtl, default_unique_section): Update.
6070         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
6071         (c6x_elf_unique_section): Update.
6072         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
6073         * config/pa/pa.c (pa_function_section): Update.
6074         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
6075         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
6076         * config/arc/arc.c (arc_in_small_data_p): Update.
6077         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
6078         * config/mcore/mcore.c (mcore_unique_section): Update.
6079         * config/mips/mips.c (mips16_build_function_stub): Update.
6080         (mips16_build_call_stub): Update.
6081         (mips_function_rodata_section): Update.
6082         (mips_in_small_data_p): Update.
6083         * config/score/score.c (score_in_small_data_p): Update.
6084         * config/rx/rx.c (rx_in_small_data): Update.
6085         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
6086         (rs6000_xcoff_asm_named_section): Update.
6087         (rs6000_xcoff_unique_section): Update.
6088         * config/frv/frv.c (frv_string_begins_with): Update.
6089         (frv_in_small_data_p): Update.
6090         * config/v850/v850.c (v850_encode_data_area): Update.
6091         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
6092         (bfin_handle_l1_data_attribute): Update.
6093         (bfin_handle_l2_attribute): Update.
6094         * config/mep/mep.c (mep_unique_section): Update.
6095         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
6096         Update.
6097         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
6098         (h8300_handle_tiny_data_attribute): Update.
6099         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
6100         (m32r_in_small_data_p): Update.
6101         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
6102         * config/i386/i386.c (ix86_in_large_data_p): Update.
6103         * config/i386/winnt.c (i386_pe_unique_section): Update.
6104         * config/darwin.c (darwin_function_section): Update.
6105         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
6106         * tree-emutls.c (get_emutls_init_templ_addr): Update.
6107         (new_emutls_decl): Update.
6108         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
6109         input_varpool_node): Update.
6110         (ead_string_cst): Turn to ...
6111         (read_string): ... this one.
6112         * dwarf2out.c (secname_for_decl): Update.
6113         * asan.c (asan_protect_global): Update.
6115 2014-06-11  DJ Delorie  <dj@redhat.com>
6117         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
6118         cache lines.
6119         * config/rx/rx.c (rx_option_override): Likewise.
6120         (rx_align_for_label): Likewise.
6122         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
6124 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
6126         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
6127         prototype.
6129 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
6131         * common.md: New file.
6132         * doc/md.texi: Update description of generic, machine-independent
6133         constraints.
6134         * config/s390/constraints.md (e): Delete.
6135         * Makefile.in (md_file): Include common.md.
6136         * config/m32c/t-m32c (md_file): Likewise.
6137         * genpreds.c (general_mem): New array.
6138         (generic_constraint_letters): Remove constraints now defined by
6139         common.md.
6140         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
6141         Allow the first character to be '<' or '>' as well.
6142         * genoutput.c (general_mem): New array.
6143         (indep_constraints): Remove constraints now defined by common.md.
6144         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
6145         Remove special handling of 'm'.
6146         * ira-costs.c (record_reg_classes): Remove special handling of
6147         constraints now defined by common.md.
6148         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
6149         * ira-lives.c (single_reg_class): Likewise.
6150         (ira_implicitly_set_insn_hard_regs): Likewise.
6151         * lra-constraints.c (reg_class_from_constraints): Likewise.
6152         (process_alt_operands, process_address, curr_insn_transform): Likewise.
6153         * postreload.c (reload_cse_simplify_operands): Likewise.
6154         * reload.c (push_secondary_reload, scratch_reload_class)
6155         (find_reloads, alternative_allows_const_pool_ref): Likewise.
6156         * reload1.c (maybe_fix_stack_asms): Likewise.
6157         * targhooks.c (default_secondary_reload): Likewise.
6158         * stmt.c (parse_output_constraint): Likewise.
6159         * recog.c (preprocess_constraints): Likewise.
6160         (constrain_operands, peep2_find_free_register): Likewise.
6161         (asm_operand_ok): Likewise, but add a comment saying why 'o'
6162         must be handled specially.
6164 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
6166         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
6167         * genpreds.c (have_const_dbl_constraints): Delete.
6168         (add_constraint): Don't set it.
6169         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
6170         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
6171         constraints using the lookup_constraint logic.
6172         * ira-lives.c (single_reg_class): Likewise.
6173         * ira.c (ira_setup_alts): Likewise.
6174         * lra-constraints.c (process_alt_operands): Likewise.
6175         * recog.c (asm_operand_ok, constrain_operands): Likewise.
6176         * reload.c (find_reloads): Likewise.
6178 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
6180         * genpreds.c (const_int_start, const_int_end): New variables.
6181         (choose_enum_order): Output CONST_INT constraints before memory
6182         constraints.
6183         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
6184         Add CT_CONST_INT.
6185         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
6186         * ira.c (ira_setup_alts): Likewise.
6187         * lra-constraints.c (process_alt_operands): Likewise.
6188         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
6189         * reload.c (find_reloads): Likewise.
6191 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
6193         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
6194         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
6195         * recog.c (preprocess_constraints): Update accordingly.
6197 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
6199         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
6200         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
6201         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
6202         * genpreds.c (print_type_tree): New function.
6203         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
6204         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
6205         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
6206         Write out enum constraint_type and get_constraint_type.
6207         * lra-constraints.c (satisfies_memory_constraint_p): Take a
6208         constraint_num rather than a constraint string.
6209         (satisfies_address_constraint_p): Likewise.
6210         (reg_class_from_constraints): Avoid old constraint macros.
6211         (process_alt_operands, process_address_1): Likewise.
6212         (curr_insn_transform): Likewise.
6213         * ira-costs.c (record_reg_classes): Likewise.
6214         (record_operand_costs): Likewise.
6215         * ira-lives.c (single_reg_class): Likewise.
6216         (ira_implicitly_set_insn_hard_regs): Likewise.
6217         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
6218         * postreload.c (reload_cse_simplify_operands): Likewise.
6219         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
6220         (constrain_operands, peep2_find_free_register): Likewise.
6221         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
6222         (find_reloads, alternative_allows_const_pool_ref): Likewise.
6223         * reload1.c (maybe_fix_stack_asms): Likewise.
6224         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
6225         * targhooks.c (default_secondary_reload): Likewise.
6226         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
6227         to EXTRA_CONSTRAINT_STR.
6228         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
6230 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
6232         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
6233         (write_constraint_satisfied_p_array): ...this new function.
6234         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
6235         an array.
6236         (write_insn_preds_c): Update accordingly.
6238 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
6240         * genpreds.c (write_lookup_constraint): Rename to...
6241         (write_lookup_constraint_1): ...this.
6242         (write_lookup_constraint_array): New function.
6243         (write_tm_preds_h): Define lookup_constraint as an inline function
6244         that uses write_lookup_constraint_array where possible.
6245         (write_insn_preds_c): Update for the changes above.
6247 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
6249         * doc/md.texi (regclass_for_constraint): Rename to...
6250         (reg_class_for_constraint): ...this.
6251         * genpreds.c (num_constraints, enum_order, register_start)
6252         (register_end, satisfied_start, memory_start, memory_end)
6253         (address_start, address_end): New variables.
6254         (add_constraint): Count the number of constraints.
6255         (choose_enum_order): New function.
6256         (write_enum_constraint_num): Iterate over enum_order.
6257         (write_regclass_for_constraint): Rename to...
6258         (write_reg_class_for_constraint_1): ...this and update output
6259         accordingly.
6260         (write_constraint_satisfied_p): Rename to...
6261         (write_constraint_satisfied_p_1): ...this and update output
6262         accordingly.  Do nothing if all extra constraints are register
6263         constraints.
6264         (write_insn_extra_memory_constraint): Delete.
6265         (write_insn_extra_address_constraint): Delete.
6266         (write_range_function): New function.
6267         (write_tm_preds_h): Define constraint_satisfied_p and
6268         reg_class_for_constraint as inline functions that do a range check
6269         before calling the out-of-line function.  Use write_range_function
6270         to implement insn_extra_{register,memory,address}_constraint,
6271         the first of which is new.
6272         (write_insn_preds_c): Update after above changes to write_* functions.
6273         (main): Call choose_enum_order.
6275 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6277         PR tree-optimization/61306
6278         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
6279         expression instead of its size.
6280         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
6281         false to prevent optimization when the result is unpredictable due to
6282         arithmetic right shift of signed type with highest byte is set.
6283         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
6284         (init_symbolic_number): Likewise.
6285         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
6286         when the result is unpredictable due to sign extension.
6288 2014-06-11  Terry Guo  <terry.guo@arm.com>
6290         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
6291         (*thumb1_addsi3): Ditto.
6292         (*thumb_subdi3): Ditto.
6293         (thumb1_subsi3_insn): Ditto.
6294         (*thumb_mulsi3): Ditto.
6295         (*thumb_mulsi3_v6): Ditto.
6296         (*thumb1_andsi3_insn): Ditto.
6297         (thumb1_bicsi3): Ditto.
6298         (*thumb1_iorsi3_insn): Ditto.
6299         (*thumb1_xorsi3_insn): Ditto.
6300         (*thumb1_ashlsi3): Ditto.
6301         (*thumb1_ashrsi3): Ditto.
6302         (*thumb1_lshrsi3): Ditto.
6303         (*thumb1_rotrsi3): Ditto.
6304         (*thumb1_negdi2): Ditto.
6305         (*thumb1_negsi2): Ditto.
6306         (*thumb1_abssi2): Ditto.
6307         (*thumb1_neg_abssi2): Ditto.
6308         (*thumb1_one_cmplsi2): Ditto.
6309         (*thumb1_zero_extendhisi2): Ditto.
6310         (*thumb1_zero_extendqisi2): Ditto.
6311         (*thumb1_zero_extendqisi2_v6): Ditto.
6312         (thumb1_extendhisi2): Ditto.
6313         (thumb1_extendqisi2): Ditto.
6314         (*thumb1_movdi_insn): Ditto.
6315         (*thumb1_movsi_insn): Ditto.
6316         (*thumb1_movhi_insn): Ditto.
6317         (thumb_movhi_clobber): Ditto.
6318         (*thumb1_movqi_insn): Ditto.
6319         (*thumb1_movhf): Ditto.
6320         (*thumb1_movsf_insn): Ditto.
6321         (*thumb_movdf_insn): Ditto.
6322         (movmem12b): Ditto.
6323         (movmem8b): Ditto.
6324         (cbranchqi4): Ditto.
6325         (cbranchsi4_insn): Ditto.
6326         (cbranchsi4_scratch): Ditto.
6327         (*negated_cbranchsi4): Ditto.
6328         (*tbit_cbranch): Ditto.
6329         (*tlobits_cbranch): Ditto.
6330         (*tstsi3_cbranch): Ditto.
6331         (*cbranchne_decr1): Ditto.
6332         (*addsi3_cbranch): Ditto.
6333         (*addsi3_cbranch_scratch): Ditto.
6334         (*thumb_cmpdi_zero): Ditto.
6335         (cstoresi_eq0_thumb1): Ditto.
6336         (cstoresi_ne0_thumb1): Ditto.
6337         (*cstoresi_eq0_thumb1_insn): Ditto.
6338         (*cstoresi_ne0_thumb1_insn): Ditto.
6339         (cstoresi_nltu_thumb1): Ditto.
6340         (cstoresi_ltu_thumb1): Ditto.
6341         (thumb1_addsi3_addgeu): Ditto.
6342         (*thumb_jump): Ditto.
6343         (*call_reg_thumb1_v5): Ditto.
6344         (*call_reg_thumb1): Ditto.
6345         (*call_value_reg_thumb1_v5): Ditto.
6346         (*call_value_reg_thumb1): Ditto.
6347         (*call_insn): Ditto.
6348         (*call_value_insn): Ditto.
6349         (thumb1_casesi_internal_pic): Ditto.
6350         (thumb1_casesi_dispatch): Ditto.
6351         (*thumb1_indirect_jump): Ditto.
6352         (prologue_thumb1_interwork): Ditto.
6353         (*epilogue_insns): Ditto.
6354         (consttable_1): Ditto.
6355         (consttable_2): Ditto.
6356         (tablejump): Ditto.
6357         (*thumb1_tablejump): Ditto.
6358         (thumb_eh_return): Ditto.
6359         (define_peephole2): Two of them are thumb1 only and got moved into
6360         new file thumb1.md.
6361         (define_split): Six of them are thumb1 only and got moved into new
6362         file thumb1.md.
6363         * config/arm/thumb1.md: New file comprised of above thumb1 only
6364         patterns.
6366 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6368         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
6369         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
6370         dependencies.
6371         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
6372         (aarch64_crc_builtin_datum): New struct.
6373         (aarch64_crc_builtin_data): New.
6374         (aarch64_init_crc32_builtins): New function.
6375         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
6376         (aarch64_crc32_expand_builtin): New.
6377         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
6378         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
6379         __ARM_FEATURE_CRC32 when appropriate.
6380         (TARGET_CRC32): Define.
6381         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
6382         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
6383         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
6384         (aarch64_<crc_variant>): New pattern.
6385         * config/aarch64/arm_acle.h: New file.
6386         * config/aarch64/iterators.md (CRC): New int iterator.
6387         (crc_variant, crc_mode): New int attributes.
6388         * doc/aarch64-acle-intrinsics.texi: New file.
6389         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
6390         Include aarch64-acle-intrinsics.texi.
6392 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
6394         * tree-vect-data-refs.c (vect_grouped_store_supported): New
6395         check for stores group of length 3.
6396         (vect_permute_store_chain): New permutations for stores group of
6397         length 3.
6398         * tree-vect-stmts.c (vect_model_store_cost): Change cost
6399         of vec_perm_shuffle for the new permutations.
6401 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
6403         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
6404         table rewriting temporarily on targets not supporting ONE_ONLY.
6406 2014-06-11  Richard Biener  <rguenther@suse.de>
6408         PR middle-end/61437
6409         Revert
6410         2014-06-04  Richard Biener  <rguenther@suse.de>
6412         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
6413         TREE_PUBLIC and DECL_EXTERNAL decls.
6415 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
6417         * varasm.c (set_implicit_section): New function.
6418         (resolve_unique_section): Use it to set implicit section
6419         for aliases, too.
6420         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
6421         (default_function_section): Likewise.
6422         (decl_binds_to_current_def_p): Constify argument.
6423         * varasm.h (decl_binds_to_current_def_p): Update prototype.
6424         * asan.c (asan_protect_global): Use
6425         symtab_get_node (decl)->implicit_section.
6426         * symtab.c (dump_symtab_base): Dump implicit sections.
6427         (verify_symtab_base): Verify sanity of sectoins and comdats.
6428         (symtab_resolve_alias): Alias share the section of its target.
6429         (set_section_1): New function.
6430         (symtab_node::set_section): Move here, recurse to aliases.
6431         (verify_symtab): Check for duplicated symtab lists.
6432         * tree-core.h (implicit_section_name_p): Remove.
6433         * tree-vect-data-refs.c: Include varasm.h.
6434         (vect_can_force_dr_alignment_p): Fix conditional on when
6435         decl bints to current definition; use
6436         symtab_get_node (decl)->implicit_section.
6437         * cgraph.c (cgraph_make_node_local_1): Fix section set.
6438         * cgraph.h (struct symtab_node): Add implicit_section.
6439         (set_section): Rename to ...
6440         (set_section_for_node): ... this one.
6441         (set_section): Declare.
6442         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
6443         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
6444         input_overwrite_node, input_varpool_node): Stream implicit_section.
6445         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
6446         removal; it will fail in LTO.
6448 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6450         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
6451         Change second alternative type to f_mcr.
6452         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
6453         and 12th alternatives' types to f_mcr and f_mrc.
6454         (*movdi_aarch64): Same for 12th and 13th alternatives.
6455         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
6456         (aarch64_movtilow_tilow): Change type to fmov.
6458 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
6460         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
6461         (aarch64_save_or_restore_callee_save_registers): Fix layout.
6463 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6465         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
6466         New expander.
6467         (aarch64_sqrdmulh_lane<mode>): Likewise.
6468         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
6469         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
6470         (aarch64_sqdmulh_laneq<mode>): New expander.
6471         (aarch64_sqrdmulh_laneq<mode>): Likewise.
6472         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
6473         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
6474         (aarch64_sqdmulh_lane<mode>): New expander.
6475         (aarch64_sqrdmulh_lane<mode>): Likewise.
6476         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
6477         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
6478         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
6479         (aarch64_sqdmlal_laneq<mode>): Likewise.
6480         (aarch64_sqdmlsl_lane<mode>): Likewise.
6481         (aarch64_sqdmlsl_laneq<mode>): Likewise.
6482         (aarch64_sqdmlal2_lane<mode>): Likewise.
6483         (aarch64_sqdmlal2_laneq<mode>): Likewise.
6484         (aarch64_sqdmlsl2_lane<mode>): Likewise.
6485         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
6486         (aarch64_sqdmull_lane<mode>): Likewise.
6487         (aarch64_sqdmull_laneq<mode>): Likewise.
6488         (aarch64_sqdmull2_lane<mode>): Likewise.
6489         (aarch64_sqdmull2_laneq<mode>): Likewise.
6491 2014-06-10  Richard Biener  <rguenther@suse.de>
6493         PR tree-optimization/61438
6494         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
6495         (eliminate_dom_walker::before_dom_children): Only try to inhibit
6496         insertion of IVs if running PRE.
6497         (eliminate): Adjust.
6498         (pass_pre::execute): Likewise.
6499         (pass_fre::execute): Likewise.
6501 2014-06-10  Richard Biener  <rguenther@suse.de>
6503         PR middle-end/61456
6504         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
6505         Do not use the main variant for the type comparison.
6506         (ncr_compar): Likewise.
6507         (nonoverlapping_component_refs_p): Likewise.
6509 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6511         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
6512         REG_CFA_RESTORE mode.
6514 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
6516         * config/i386/i386.c (expand_vec_perm_pblendv): New.
6517         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
6518         expand_vec_perm_pblendv.
6520 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6522         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
6523         available.
6524         Simplify description of __crc32d and __crc32cd intrinsics.
6525         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
6526         availability.
6528 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
6530         PR lto/61334
6531         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
6532         * config.in: Regenerate.
6533         * configure: Likewise.
6535 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
6537         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
6538         and public vars.
6539         (intersect_static_var_sets): Remove.
6540         (propagate): Do not prune local statics.
6542 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
6544         PR fortran/60928
6545         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
6546         Set lastprivate_firstprivate even if omp_private_outer_ref
6547         langhook returns true.
6548         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
6549         langhook, call unshare_expr on new_var and call
6550         build_outer_var_ref to get the last argument.
6552 2014-06-10  Marek Polacek  <polacek@redhat.com>
6554         PR c/60988
6555         * doc/extend.texi: Add cindex for transparent_union.
6557 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6559         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
6560         init_symbolic_number ().
6562 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
6564         PR middle-end/61141
6565         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
6566         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
6567         (verify_rtl_sharing): Likewise.
6569 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
6571         PR c++/54442
6572         * tree.c (build_qualified_type): Use a canonical type for
6573         TYPE_CANONICAL.
6575 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6577         * config/arm/arm-modes.def: Remove XFmode.
6579 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
6581         PR target/61062
6582         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
6583         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
6584         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
6585         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
6586         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
6587         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
6588         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
6589         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
6590         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
6592 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
6594         * tree-core.h (tree_decl_with_vis): Remove section_name.
6596 2014-06-09  Kito Cheng  <kito@0xlab.org>
6598         * ira.c (ira): Don't call init_caller_save if LRA enabled
6599         since LRA use its own infrastructure to handle that.
6601 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
6603         * symtab.c (dump_symtab_base): Update dumping.
6604         (symtab_make_decl_local): Clear only DECL_COMDAT.
6605         * tree-vect-data-refs.c (Check that variable is static before
6606         tampering with sections.
6607         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
6608         (cgraph_create_virtual_clone): Likewise.
6609         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
6610         (decl_section_name, set_decl_section_name): New accessors.
6611         (find_decls_types_r): Do not walk section name
6612         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
6613         (decl_comdat_group, decl_comdat_group_id): Constify.
6614         (decl_section_name, set_decl_section_name): Update.
6615         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
6616         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
6617         (cgraph_make_node_local_1): Clear section and comdat group.
6618         * cgraph.h (set_comdat_group): Sanity check.
6619         (get_section, set_section): New.
6620         * ipa-comdats.c (ipa_comdats): Use get_section.
6621         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
6622         * lto-streamer-out.c: Do not follow section names.
6623         * c-family/c-common.c (handle_section_attribute): Update.
6624         * lto-cgraph.c (lto_output_node): Output section.
6625         (lto_output_varpool_node): Likewise.
6626         (read_comdat_group): Rename to ...
6627         (read_identifier): ... this one.
6628         (read_string_cst): New function.
6629         (input_node, input_varpool_node): Input section names.
6630         * tree-emutls.c (get_emutls_init_templ_addr): Update.
6631         (new_emutls_decl): Update.
6632         (secname_for_decl): Check section names only of static vars.
6633         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
6634         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
6635         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
6636         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
6637         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
6638         * config/mcore/mcore.c (mcore_unique_section): Likewise.
6639         * config/mips/mips.c (mips16_build_function_stub): Likewise.
6640         * config/v850/v850.c (v850_insert_attributes): Likewise.
6641         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
6642         Likewise.
6643         (h8300_handle_tiny_data_attribute): Likewise.
6644         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
6645         (bfin_handle_l2_attribute): Likewise.
6647 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
6649         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
6650         remove static initializer.
6652 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
6654         * varasm.c (use_blocks_for_decl_p): Check symbol table
6655         instead of alias attribute.
6656         (place_block_symbol): Recurse on aliases.
6658 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
6660         * ipa-visibility.c: Include varasm.h
6661         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
6663 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
6665         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
6666         outputting aliases.
6668 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
6670         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
6671         from test_insn into GGC space escape via SET_SRC.
6673 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
6675         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
6676         call statement, if any.
6677         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
6678         statements, if any.  Tidy up.
6680 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
6682         PR target/61431
6683         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
6684         iterators, VSX_D that handles 64-bit types, and VSX_LE that
6685         handles swapping the two 64-bit double words on little endian
6686         systems.  Include V1TImode and optionally TImode in VSX_LE so that
6687         these types are properly swapped.  Change all of the insns and
6688         splits that do the 64-bit swaps to use VSX_LE.
6689         (vsx_le_perm_load_<mode>): Likewise.
6690         (vsx_le_perm_store_<mode>): Likewise.
6691         (splitters for little endian memory operations): Likewise.
6692         (vsx_xxpermdi2_le_<mode>): Likewise.
6693         (vsx_lxvd2x2_le_<mode>): Likewise.
6694         (vsx_stxvd2x2_le_<mode>): Likewise.
6696 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
6698         PR target/61423
6699         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
6700         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
6701         and corresponding splitters.  Zero extend general register
6702         or memory input operand to XMM temporary.  Enable for
6703         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
6704         (floatunssi<mode>2): Update expander predicate.
6706 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
6708         PR rtl-optimization/61325
6709         * lra-constraints.c (process_address_1): Check scale equal to one
6710         to prevent transformation: base + scale * index => base + new_reg.
6712 2014-06-06  Richard Biener  <rguenther@suse.de>
6714         PR tree-optimization/59299
6715         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
6716         a def operand.
6717         (nearest_common_dominator_of_uses): Likewise.
6718         (statement_sink_location): Adjust.  Support sinking loads.
6720 2014-06-06  Martin Jambor  <mjambor@suse.cz>
6722         * ipa-prop.c (get_place_in_agg_contents_list): New function.
6723         (build_agg_jump_func_from_list): Likewise.
6724         (determine_known_aggregate_parts): Renamed to
6725         determine_locally_known_aggregate_parts.  Moved some functionality
6726         to the two functions above, removed bound checks.
6728 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
6730         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
6731         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
6732         (aarch64_progress_pointer): Likewise.
6733         (aarch64_copy_one_part_and_move_pointers): Likewise.
6734         (aarch64_expand_movmen): Likewise.
6735         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
6736         * config/aarch64/aarch64.md (movmem<mode>): New.
6738 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
6740         * targhooks.c (default_add_stmt_cost): Call target specific
6741         hook instead of default one.
6743 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6745         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
6746         endianness instead of host endianness.
6747         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
6748         comments.
6750 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
6752         PR debug/53927
6753         * function.c (instantiate_decls): Process the saved static chain.
6754         (expand_function_start): If not optimizing, save the static chain
6755         onto the stack.
6756         * tree-nested.c (convert_all_function_calls): Always create the static
6757         chain for nested functions if not optimizing.
6759 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
6761         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
6763 2014-06-06  Richard Biener  <rguenther@suse.de>
6765         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
6766         (construct_init_block): Likewise.
6767         (construct_exit_block): Likewise.
6768         (pass_expand::execute): Likewise.
6769         * graphite.c (graphite_transforms): Replace check for current_loops
6770         with a check for > 1 loops.
6771         (pass_graphite_transforms::execute): Adjust.
6772         * ipa-split.c (split_function): Remove check for current_loops.
6773         * omp-low.c (expand_parallel_call): Likewise.
6774         (expand_omp_for_init_counts): Likewise.
6775         (extract_omp_for_update_vars): Likewise.
6776         (expand_omp_for_generic): Likewise.
6777         (expand_omp_sections): Likewise.
6778         (expand_omp_target): Likewise.
6779         * tracer.c (tail_duplicate): Likewise.
6780         (pass_tracer::execute): Likewise.
6781         * trans-mem.c (expand_transaction): Likewise.
6782         * tree-complex.c (expand_complex_div_wide): Likewise.
6783         * tree-eh.c (lower_resx): Likewise.
6784         (cleanup_empty_eh_merge_phis): Likewise.
6785         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
6786         current_loops with a check for > 1 loops.
6787         (pass_predcom::execute): Adjust.
6788         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
6789         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
6790         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
6791         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
6792         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
6793         * tree-switch-conversion.c (process_switch): Likewise.
6794         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
6795         * tree-vrp.c (vrp_visit_phi_node): Likewise.
6796         (execute_vrp): Likewise.
6797         * ubsan.c (ubsan_expand_null_ifn): Likewise.
6799 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
6801         * rtl.h (insn_location): Declare.
6802         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
6803         with UNKNOWN_LOCATION.
6804         * emit-rtl.c (insn_location): New function.
6805         * final.c (notice_source_line): Check that the instruction has a
6806         location before retrieving it and use insn_location.
6807         * modulo-sched.c (loop_single_full_bb_p): Likewise.
6808         * print-rtl.c (print_rtx): Likewise.
6810 2014-06-06  Richard Biener  <rguenther@suse.de>
6812         * passes.def: Move 2nd VRP pass before phi-only-cprop.
6814 2014-06-06  Christian Bruel  <christian.bruel@st.com>
6816         PR tree-optimization/43934
6817         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
6818         cost.
6820 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
6822         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
6823         return NO_REGS for extra address and memory constraints.  Handle
6824         operands that match (or are equivalent to something that matches)
6825         extra constant constraints.  Ignore other non-register operands.
6827 2014-06-06  Alan Modra  <amodra@gmail.com>
6829         PR target/61300
6830         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
6831         * doc/tm.texi: Regenerate.
6832         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
6833         Use throughout in place of REG_PARM_STACK_SPACE.
6834         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
6835         "incoming" param.  Pass to rs6000_function_parms_need_stack.
6836         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
6837         prototype_p when incoming.  Use function decl when incoming
6838         to handle K&R style functions.
6839         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
6840         (INCOMING_REG_PARM_STACK_SPACE): Define.
6842 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6844         PR target/52472
6845         * cfgexpand.c (expand_debug_expr): Use address space of nested
6846         TREE_TYPE for ADDR_EXPR and MEM_REF.
6848 2014-06-05  Jeff Law  <law@redhat.com>
6850         PR tree-optimization/61289
6851         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
6852         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
6853         looking for those which match LHS.  All callers changed.
6854         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
6855         parameters and code which manipulated them.  All callers changed.
6856         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
6857         and DST_MAP parameters.  Simplify invalidation code by just calling
6858         invalidate_equivalences.  All callers changed.
6859         (thread_across_edge): Simplify now that we don't need to maintain
6860         the map of equivalences to invalidate.
6862 2014-06-05  Kai Tietz  <ktietz@redhat.com>
6863             Richard Henderson  <rth@redhat.com>
6865         PR target/46219
6866         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
6867         checking for !TARGET_X32.
6868         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
6869         (sibcall_intern): New define_insn, plus required peepholes.
6870         (sibcall_pop_intern): Likewise.
6871         (sibcall_value_intern): Likewise.
6872         (sibcall_value_pop_intern): Likewise.
6874 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
6876         * tree-inline.c (tree_function_versioning): Check DF info existence
6877         before accessing it.
6879 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6881         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
6882         frame_size.
6883         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
6884         aarch64_frame hard_fp_offset and frame_size.
6885         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
6886         frame_size; remove original_frame_size.
6887         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
6888         (aarch64_initial_elimination_offset): Remove frame_size and
6889         offset.  Use aarch64_frame frame_size.
6891 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6892             Jiong Wang  <jiong.wang@arm.com>
6893             Renlin  <renlin.li@arm.com>
6895         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
6896         initialization of R30 offset.  Update offset.  Iterate core
6897         regisers upto X30.  Remove X29, X30 specific code.
6899 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6900             Jiong Wang  <jiong.wang@arm.com>
6902         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
6903         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
6904         (aarch64_register_saved_on_entry): Adjust test.
6906 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6908         * config/aarch64/aarch64.h (machine_function): Move
6909         saved_varargs_size from here...
6910         (aarch64_frame): ... to here.
6912         * config/aarch64/aarch64.c (aarch64_expand_prologue)
6913         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
6914         (aarch64_initial_elimination_offset)
6915         (aarch64_setup_incoming_varargs): Adjust location of
6916         saved_varargs_size.
6918 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6920         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
6921         layout comment.
6923 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
6924             Prachi Godbole  <Prachi.Godbole@imgtec.com>
6926         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
6927         mips32r5 entry to use PROCESSOR_P5600.
6928         * config/mips/mips-tables.opt: Regenerate.
6929         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
6930         * config/mips/mips.c (mips_fmadd_bypass): New function.
6931         (mips_rtx_cost_data): Add costs for p5600.
6932         (mips_issue_rate): Add support for p5600.
6933         (mips_multipass_dfa_lookahead): Likewise.
6934         * config/mips/mips.h (TUNE_P5600): New define.
6935         (TUNE_MACC_CHAINS): Add TUNE_P5600.
6936         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
6937         * config/mips/mips.md: Include p5600.md.
6938         (processor): Add p5600.
6939         * config/mips/p5600.md: New file.
6941 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
6943         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
6944         * config/i386/predicates.md (palignr_operand): New.
6945         Indicates if permutation is suitable for palignr instruction.
6947 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
6949         PR tree-optimization/61319
6950         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
6951         stmt belongs to loop.
6953 2014-06-05  Richard Biener  <rguenther@suse.de>
6955         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
6956         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
6957         (lookup_tmp_var): Adjust.
6958         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
6960 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6962         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
6964 2014-06-05  Marek Polacek  <polacek@redhat.com>
6966         PR c/49706
6967         * doc/invoke.texi: Document -Wlogical-not-parentheses.
6969 2014-06-04  Tom de Vries  <tom@codesourcery.com>
6971         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
6972         CONST_INT.
6974 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
6976         PR tree-optimization/61385
6977         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
6979 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
6981         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
6982         changed to use fatal_error.
6983         (main): Ensure lto_wrapper_cleanup is run atexit.
6985 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
6987         * lra-constraints.c (valid_address_p): Move earlier in file.
6988         (address_eliminator): New structure.
6989         (satisfies_memory_constraint_p): New function.
6990         (satisfies_address_constraint_p): Likewise.
6991         (process_alt_operands, process_address, curr_insn_transform): Use them.
6993 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
6995         * lra-int.h (lra_static_insn_data): Make operand_alternative a
6996         const pointer.
6997         (target_lra_int, default_target_lra_int, this_target_lra_int)
6998         (op_alt_data): Delete.
6999         * lra.h (lra_init): Delete.
7000         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
7001         (init_insn_code_data_once): Remove op_alt_data handling.
7002         (finish_insn_code_data_once): Likewise.
7003         (init_op_alt_data): Delete.
7004         (get_static_insn_data): Initialize operand_alternative to null.
7005         (free_insn_recog_data): Cast operand_alternative before freeing it.
7006         (setup_operand_alternative): Take the operand_alternative as
7007         parameter and assume it isn't already cached in the static
7008         insn data.
7009         (lra_set_insn_recog_data): Update accordingly.
7010         (lra_init): Delete.
7011         * ira.c (ira_init): Don't call lra_init.
7012         * target-globals.h (this_target_lra_int): Declare.
7013         (target_globals): Remove lra_int.
7014         (restore_target_globals): Update accordingly.
7015         * target-globals.c: Don't include lra-int.h.
7016         (default_target_globals, save_target_globals): Remove lra_int.
7018 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
7020         * recog.h (operand_alternative): Convert reg_class, reject,
7021         matched and matches into bitfields.
7022         (preprocess_constraints): New overload.
7023         (preprocess_insn_constraints): New function.
7024         (preprocess_constraints): Take the insn as parameter.
7025         (recog_op_alt): Change into a pointer.
7026         (target_recog): Add x_op_alt.
7027         * recog.c (asm_op_alt): New variable.
7028         (recog_op_alt): Change into a pointer.
7029         (preprocess_constraints): New overload, replacing the old function
7030         definition with one that doesn't use global state.
7031         (preprocess_insn_constraints): New function.
7032         (preprocess_constraints): Use them.  Take the insn as parameter.
7033         Use asm_op_alt for asms.
7034         (recog_init): Free existing x_op_alt entries.
7035         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
7036         pointer const.
7037         (make_early_clobber_and_input_conflicts): Likewise.
7038         (process_bb_node_lives): Pass the insn to process_constraints.
7039         * reg-stack.c (check_asm_stack_operands): Likewise.
7040         (subst_asm_stack_regs): Likewise.
7041         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
7042         * regrename.c (build_def_use): Likewise.
7043         * sched-deps.c (sched_analyze_insn): Likewise.
7044         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
7045         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
7046         (note_invalid_constants): Likewise.
7047         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
7048         (ix86_legitimate_combined_insn): Make operand_alternative pointer
7049         const.
7051 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
7053         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
7054         * ira-lives.c (check_and_make_def_conflict): Check for disabled
7055         alternatives.
7056         (make_early_clobber_and_input_conflicts): Likewise.
7057         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
7059 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
7061         * recog.h (alternative_class): New function.
7062         (which_op_alt): Return a const recog_op_alt.
7063         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
7064         (subst_asm_stack_regs): Likewise.
7065         * config/arm/arm.c (note_invalid_constants): Likewise.
7066         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
7067         the operand_alternative; use alternative class instead.
7068         * sel-sched.c (get_reg_class): Likewise.
7069         * regrename.c (build_def_use): Likewise.
7070         (hide_operands, restore_operands, record_out_operands): Update type
7071         accordingly.
7073 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
7075         * recog.h (recog_op_alt): Convert to a flat array.
7076         (which_op_alt): New function.
7077         * recog.c (recog_op_alt): Convert to a flat array.
7078         (preprocess_constraints): Update accordingly, grouping all
7079         operands of the same alternative together, rather than the
7080         other way around.
7081         * ira-lives.c (check_and_make_def_conflict): Likewise.
7082         (make_early_clobber_and_input_conflicts): Likewise.
7083         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
7084         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
7085         (subst_asm_stack_regs): Likewise.
7086         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
7087         * regrename.c (hide_operands, record_out_operands): Likewise.
7088         (build_def_use): Likewise.
7089         * sel-sched.c (get_reg_class): Likewise.
7090         * config/arm/arm.c (note_invalid_constants): Likewise.
7092 2014-06-04  Jason Merrill  <jason@redhat.com>
7094         PR c++/51253
7095         PR c++/61382
7096         * gimplify.c (gimplify_arg): Non-static.
7097         * gimplify.h: Declare it.
7099 2014-06-04  Richard Biener  <rguenther@suse.de>
7101         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
7102         TREE_PUBLIC and DECL_EXTERNAL decls.
7104 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
7106         * regcprop.c (copyprop_hardreg_forward_1): Account for
7107         HARD_REGNO_CALL_PART_CLOBBERED.
7109 2014-06-04  Richard Biener  <rguenther@suse.de>
7111         * configure.ac: Check whether the underlying type of int64_t
7112         is long or long long.
7113         * configure: Regenerate.
7114         * config.in: Likewise.
7115         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
7116         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
7118 2014-06-04  Richard Biener  <rguenther@suse.de>
7120         PR tree-optimization/60098
7121         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
7122         we hit a kill.
7123         (dse_optimize_stmt): Simplify, now that we found a kill
7124         earlier.
7126 2014-06-04  Richard Biener  <rguenther@suse.de>
7128         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
7129         of accesses with non-invariant address.
7131 2014-06-04  Martin Liska  <mliska@suse.cz>
7133         * cgraph.h (cgraph_make_wrapper): New function introduced.
7134         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
7135         * ipa-inline.h (inline_analyze_function): The function is global.
7136         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
7138 2014-06-04  Martin Liska  <mliska@suse.cz>
7140         * tree.h (private_lookup_attribute_starting): New function.
7141         (lookup_attribute_starting): Likewise.
7142         * tree.c (private_lookup_attribute_starting): Likewise.
7144 2014-06-04  Martin Liska  <mliska@suse.cz>
7146         * cgraph.h (expand_thunk): New argument added.
7147         (address_taken_from_non_vtable_p): New global function.
7148         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
7149         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
7150         * cgraphunit.c (analyze_function): Likewise.
7151         (assemble_thunks_and_aliases): Argument added to call.
7152         (expand_thunk): New argument forces to produce GIMPLE thunk.
7154 2014-06-04  Martin Liska  <mliska@suse.cz>
7156         * coverage.h (coverage_compute_cfg_checksum): Argument added.
7157         * coverage.c (coverage_compute_cfg_checksum): Likewise.
7158         * profile.c (branch_prob): Likewise.
7160 2014-06-04  Martin Jambor  <mjambor@suse.cz>
7162         PR ipa/61340
7163         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
7164         handler for switch on an ipa_ref_use enum.
7165         * ipa-reference.c (analyze_function): Likewise.
7167 2014-06-04  Kai Tietz  <ktietz@redhat.com>
7169         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
7170         from old call-instruction.
7172 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
7174         * config/aarch64/aarch64.c (aarch64_classify_address)
7175         (aarch64_legitimize_reload_address): Support full addressing modes
7176         for vector modes.
7177         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
7178         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
7180 2014-06-03  Andrew Pinski  <apinski@cavium.com>
7182         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
7183         for OP0.
7185 2014-06-03  Andrew Pinski  <apinski@cavium.com>
7187         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
7188         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
7190 2014-06-03  Kai Tietz  <ktietz@redhat.com>
7192         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
7193         for 64-bit ms-abi.
7195 2014-06-03  Dehao Chen  <dehao@google.com>
7197         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
7198         the same loop.
7200 2014-06-03  Marek Polacek  <polacek@redhat.com>
7202         PR c/60439
7203         * doc/invoke.texi: Document -Wswitch-bool.
7204         * function.c (stack_protect_epilogue): Cast controlling expression of
7205         the switch to int.
7206         * gengtype.c (walk_type): Generate switch expression with its
7207         controlling expression cast to int.
7209 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
7211         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
7212         and attiny841.
7213         * config/avr/avr-tables.opt: Regenerate.
7214         * config/avr/t-multilib: Regenerate.
7215         * doc/avr-mmcu.texi: Regenerate.
7217 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
7218             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
7220         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
7221         (ata6617c, ata664251): Add new avr35 devices.
7222         (ata6612c): Add new avr4 device.
7223         (ata6613c, ata6614q): Add new avr5 devices.
7224         * config/avr/avr-tables.opt: Regenerate.
7225         * config/avr/t-multilib: Regenerate.
7226         * doc/avr-mmcu.texi: Regenerate.
7228 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
7230         * gcc/config/aarch64/aarch64-builtins.c
7231         (aarch64_types_binop_ssu_qualifiers): New static data.
7232         (TYPES_BINOP_SSU): Define.
7233         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
7234         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
7235         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
7236         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
7237         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
7238         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
7239         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
7240         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
7241         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
7242         suffix to builtin function name, remove cast.
7243         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
7244         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
7245         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
7247 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
7249         * gcc/config/aarch64/aarch64-builtins.c
7250         (aarch64_types_binop_uus_qualifiers,
7251         aarch64_types_shift_to_unsigned_qualifiers,
7252         aarch64_types_unsigned_shiftacc_qualifiers): Define.
7253         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
7254         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
7255         sqshlu_n, uqshl_n): Update qualifiers.
7256         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
7257         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
7258         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
7259         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
7260         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
7261         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
7262         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
7263         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
7264         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
7265         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
7266         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
7267         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
7268         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
7269         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
7270         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
7271         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
7272         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
7273         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
7274         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
7275         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
7276         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
7277         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
7278         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
7279         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
7280         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
7281         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
7282         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
7284 2014-06-03  Teresa Johnson  <tejohnson@google.com>
7286         * tree-sra.c (modify_function): Record caller nodes after rebuild.
7288 2014-06-02  Jason Merrill  <jason@redhat.com>
7290         PR c++/61020
7291         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
7293 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
7295         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
7296         location == 0.
7298 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
7300         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
7301         New pattern.
7302         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
7303         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
7304         * config/aarch64/iterators.md (REVERSE): New iterator.
7305         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
7306         (rev_op): New int_attribute.
7307         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
7308         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
7309         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
7310         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
7311         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
7312         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
7313         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
7314         Replace temporary __asm__ with __builtin_shuffle.
7316 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
7318         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
7319         mips64r5.
7320         * config/mips/mips-tables.opt: Regenerate.
7321         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
7322         to use mips_isa_rev rather than ISA_MIPS32R2.
7323         * config/mips/mips.h (ISA_MIPS32R3): New define.
7324         (ISA_MIPS32R5): New define.
7325         (ISA_MIPS64R3): New define.
7326         (ISA_MIPS64R5): New define.
7327         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
7328         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
7329         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
7330         and mips64r5.
7331         (MIPS_ISA_SYNCI_SPEC): Likewise.
7332         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
7333         (LINK_SPEC): Added mips32r3 and mips32r5.
7334         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
7335         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
7336         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
7337         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
7338         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
7339         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
7340         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
7342 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
7344         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
7345         options.
7346         * config/mips/mips.opt (mxpa): New option.
7347         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
7348         assembler.
7350 2014-06-03  Martin Jambor  <mjambor@suse.cz>
7352         PR ipa/61160
7353         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
7354         thunks.
7356 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7358         PR tree-optimization/61328
7359         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
7360         initialization from find_bswap_or_nop_1.
7361         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
7362         in source_expr2 before using the size value the function sets. Also
7363         make use of init_symbolic_number () in both the old place and
7364         find_bswap_or_nop_load () to avoid reading uninitialized memory when
7365         doing recursion in the GIMPLE_BINARY_RHS case.
7367 2014-06-03  Richard Biener  <rguenther@suse.de>
7369         PR tree-optimization/61383
7370         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
7371         stmts can't trap.
7373 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
7375         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
7376         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
7377         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
7378         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
7379         in this file.
7380         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
7381         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
7382         * system.h: ...here and make it unconditional.
7383         * target.def (conditional_register_usage): Mention
7384         define_register_constraint instead of old-style constraint macros.
7385         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
7386         * doc/tm.texi: Regenerate.
7387         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
7388         protected by !USE_MD_CONSTRAINTS.
7389         * config/frv/frv.md: Remove quote from old version of documentation.
7390         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
7391         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
7392         CONST_DOUBLE_OK_FOR_LETTER.
7393         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
7395 2014-06-02  Andrew Pinski  <apinski@cavium.com>
7397         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
7398         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
7399         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
7400         file whose name depends on -mabi= and -mbig-endian.
7401         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
7402         Handle LP64 better and handle ilp32 too.
7403         (MULTILIB_OPTIONS): Delete.
7404         (MULTILIB_DIRNAMES): Delete.
7406 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
7408         * expr.h: Remove prototypes of functions defined in builtins.c.
7409         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
7410         Remove prototypes of functions defined in builtins.c.
7411         * builtins.h: Update prototype list to include all exported functions.
7412         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
7413         no_c99_libc_has_function): Move to targhooks.c
7414         (build_string_literal, build_call_expr_loc_array,
7415         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
7416         to tree.c.
7417         (expand_builtin_object_size, fold_builtin_object_size): Make static.
7418         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
7419         no_c99_libc_has_function): Relocate from builtins.c.
7420         * tree.c: Include builtins.h.
7421         (build_call_expr_loc_array, build_call_expr_loc_vec,
7422         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
7423         from builtins.c.
7424         * fold-const.h (fold_fma): Move prototype to builtins.h.
7425         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
7426         * asan.c: Include builtins.h.
7427         * cfgexpand.c: Likewise.
7428         * convert.c: Likewise.
7429         * emit-rtl.c: Likewise.
7430         * except.c: Likewise.
7431         * expr.c: Likewise.
7432         * fold-const.c: Likewise.
7433         * gimple-fold.c: Likewise.
7434         * gimple-ssa-strength-reduction.c: Likewise.
7435         * gimplify.c: Likewise.
7436         * ipa-inline.c: Likewise.
7437         * ipa-prop.c: Likewise.
7438         * lto-streamer-out.c: Likewise.
7439         * stmt.c: Likewise.
7440         * tree-inline.c: Likewise.
7441         * tree-object-size.c: Likewise.
7442         * tree-sra.c: Likewise.
7443         * tree-ssa-ccp.c: Likewise.
7444         * tree-ssa-forwprop.c: Likewise.
7445         * tree-ssa-loop-ivcanon.c: Likewise.
7446         * tree-ssa-loop-ivopts.c: Likewise.
7447         * tree-ssa-math-opts.c: Likewise.
7448         * tree-ssa-reassoc.c: Likewise.
7449         * tree-ssa-threadedge.c: Likewise.
7450         * tree-streamer-in.c: Likewise.
7451         * tree-vect-data-refs.c: Likewise.
7452         * tree-vect-patterns.c: Likewise.
7453         * tree-vect-stmts.c: Likewise.
7454         * config/aarch64/aarch64.c: Likewise.
7455         * config/alpha/alpha.c: Likewise.
7456         * config/arc/arc.c: Likewise.
7457         * config/arm/arm.c: Likewise.
7458         * config/avr/avr.c: Likewise.
7459         * config/bfin/bfin.c: Likewise.
7460         * config/c6x/c6x.c: Likewise.
7461         * config/cr16/cr16.c: Likewise.
7462         * config/cris/cris.c: Likewise.
7463         * config/epiphany/epiphany.c: Likewise.
7464         * config/fr30/fr30.c: Likewise.
7465         * config/frv/frv.c: Likewise.
7466         * config/h8300/h8300.c: Likewise.
7467         * config/i386/i386.c: Likewise.
7468         * config/i386/winnt.c: Likewise.
7469         * config/ia64/ia64.c: Likewise.
7470         * config/iq2000/iq2000.c: Likewise.
7471         * config/lm32/lm32.c: Likewise.
7472         * config/m32c/m32c.c: Likewise.
7473         * config/m32r/m32r.c: Likewise.
7474         * config/m68k/m68k.c: Likewise.
7475         * config/mcore/mcore.c: Likewise.
7476         * config/mep/mep.c: Likewise.
7477         * config/microblaze/microblaze.c: Likewise.
7478         * config/mips/mips.c: Likewise.
7479         * config/mmix/mmix.c: Likewise.
7480         * config/mn10300/mn10300.c: Likewise.
7481         * config/moxie/moxie.c: Likewise.
7482         * config/msp430/msp430.c: Likewise.
7483         * config/nds32/nds32.c: Likewise.
7484         * config/pa/pa.c: Likewise.
7485         * config/pdp11/pdp11.c: Likewise.
7486         * config/picochip/picochip.c: Likewise.
7487         * config/rl78/rl78.c: Likewise.
7488         * config/rs6000/rs6000.c: Likewise.
7489         * config/rx/rx.c: Likewise.
7490         * config/s390/s390.c: Likewise.
7491         * config/score/score.c: Likewise.
7492         * config/sh/sh.c: Likewise.
7493         * config/sparc/sparc.c: Likewise.
7494         * config/spu/spu.c: Likewise.
7495         * config/stormy16/stormy16.c: Likewise.
7496         * config/tilegx/tilegx.c: Likewise.
7497         * config/tilepro/tilepro.c: Likewise.
7498         * config/v850/v850.c: Likewise.
7499         * config/vax/vax.c: Likewise.
7500         * config/xtensa/xtensa.c: Likewise.
7502 2014-06-02  Jeff Law  <law@redhat.com>
7504         PR rtl-optimization/61094
7505         * ree.c (combine_reaching_defs): Do not reextend an insn if it
7506         was marked as do_no_reextend.  If a copy is needed to eliminate
7507         an extension, then mark it as do_not_reextend.
7509 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7511         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
7513 2014-06-02  Richard Henderson  <rth@redhat.com>
7515         PR target/61336
7516         * config/alpha/alpha.c (print_operand_address): Allow symbolic
7517         addresses inside asms.  Use output_operand_lossage instead of
7518         gcc_unreachable.
7520 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
7522         PR target/61239
7523         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
7524         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
7526 2014-06-02  Tom de Vries  <tom@codesourcery.com>
7528         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
7529         case that x has VOIDmode.
7531 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
7533         * varasm.c (copy_constant): Delete function.
7534         (build_constant_desc): Don't call it.
7536 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7538         PR target/61154
7539         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
7540         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
7541         with immediate_operand.
7543 2014-06-02  Andreas Schwab  <schwab@suse.de>
7545         * config/ia64/ia64.c
7546         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
7547         pending_data_specs first.
7549 2014-06-02  Richard Biener  <rguenther@suse.de>
7551         PR tree-optimization/61378
7552         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
7553         valueized_anything.
7555 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
7557         * config/i386/constraints.md (Bw): Rename from 'w'.
7558         (Bz): Rename from 'z'.
7559         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
7561 2014-06-01  Kai Tietz  <ktietz@redhat.com>
7563         PR target/61377
7564         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
7565         * config/i386/i386.md (sibcall_insn_operand): Use Bs
7566         instead of m constraint.
7568 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
7570         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
7571         a separate alternative where the scratch operand 2 is marked as
7572         early clobber.
7574 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
7576         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
7577         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
7578         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
7579         and __builtins_arm_get_fpscr.
7580         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
7581         __builtins_arm_get_fpscr.
7582         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
7583         __builtins_arm_ldfpscr.
7584         (arm_atomic_assign_expand_fenv): New function.
7585         * config/arm/vfp.md (set_fpscr): New pattern.
7586         (get_fpscr) : Likewise.
7587         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
7588         VUNSPEC_SET_FPSCR.
7589         * doc/extend.texi (AARCH64 Built-in Functions) : Document
7590         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
7592 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
7594         * asan.c (report_error_func): Add SLOW_P argument, use
7595         BUILT_IN_ASAN_*_N if set.
7596         (build_check_stmt): Likewise.
7597         (instrument_derefs): If T has insufficient alignment,
7598         force same handling as for odd sizes.
7600         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
7601         BUILT_IN_ASAN_REPORT_STORE_N): New.
7602         * asan.c (struct asan_mem_ref): Change access_size type to
7603         HOST_WIDE_INT.
7604         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
7605         update_mem_ref_hash_table): Likewise.
7606         (asan_mem_ref_hasher::hash): Hash in a HWI.
7607         (report_error_func): Change size_in_bytes argument to HWI.
7608         Use *_N builtins if size_in_bytes is larger than 16 or not power of
7609         two.
7610         (build_shadow_mem_access): New function.
7611         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
7612         Handle size_in_bytes not power of two or larger than 16.
7613         (instrument_derefs): Don't give up if size_in_bytes is not
7614         power of two or is larger than 16.
7616 2014-05-30  Kai Tietz  <ktietz@redhat.com>
7618         PR target/60104
7619         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
7620         for sibling-tail-calls.
7621         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
7622         to its use.
7623         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
7624         (sibcall_insn_operand): Add check for sibcall_memory_operand.
7626 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
7628         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
7629         * config/avr/avr-tables.opt: Regenerate.
7630         * config/avr/t-multilib: Regenerate.
7631         * doc/avr-mmcu.texi: Regenerate.
7633 2014-05-30  Ian Lance Taylor  <iant@google.com>
7635         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
7636         target("sse").
7638 2014-05-30  Tom de Vries  <tom@codesourcery.com>
7640         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
7641         Redefine as true.
7643 2014-05-30  Tom de Vries  <tom@codesourcery.com>
7645         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
7646         * lra.c (initialize_lra_reg_info_element): Add init of
7647         actual_call_used_reg_set field.
7648         (lra): Call lra_create_live_ranges before lra_inheritance for
7649         -fuse-caller-save.
7650         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
7651         -fuse-caller-save.
7652         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
7653         instead of call_used_reg_set for -fuse-caller-save.
7654         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
7656 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7658         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
7659         to mov_imm.
7660         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
7662 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
7664         * ira.c (ira_get_dup_out_num): Check for output operands at
7665         the start of the loop.  Handle cases where an included alternative
7666         follows an excluded one.
7668 2014-05-29  Mike Stump  <mikestump@comcast.net>
7670         PR debug/61352
7671         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
7672         post ld passes when lto is used.
7674 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
7676         PR rtl-optimization/61325
7677         * lra-constraints.c (process_address): Rename to process_address_1.
7678         (process_address): New function.
7680 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
7682         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
7683         TYPES_BINOPV): New static data.
7684         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
7685         New builtin.
7686         * config/aarch64/aarch64-simd.md (aarch64_ext,
7687         aarch64_im_lane_boundsi): New patterns.
7688         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
7689         patterns for EXT.
7690         (aarch64_evpc_ext): New function.
7692         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
7694         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
7695         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
7696         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
7697         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
7698         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
7700 2014-05-29  Tom de Vries  <tom@codesourcery.com>
7702         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
7704 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
7705             Richard Sandiford  <rdsandiford@googlemail.com>
7707         * arm/iterators.md (shiftable_ops): New code iterator.
7708         (t2_binop0, arith_shift_insn): New code attributes.
7709         * arm/predicates.md (shift_nomul_operator): New predicate.
7710         * arm/arm.md (insn_enabled): Delete.
7711         (enabled): Remove insn_enabled test.
7712         (*arith_shiftsi): Delete.  Replace with ...
7713         (*<arith_shift_insn>_multsi): ... new pattern.
7714         (*<arith_shift_insn>_shiftsi): ... new pattern.
7715         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
7717 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
7718             Tom de Vries  <tom@codesourcery.com>
7720         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
7721         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
7722         clobber.
7723         (mips_split_call): Use POST_CALL_TMP_REG.
7724         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
7726 2014-05-29  Tom de Vries  <tom@codesourcery.com>
7728         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
7729         with #ifdef STACK_REGS.
7731 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
7733         * varasm.c (get_variable_section): Walk aliases.
7734         (place_block_symbol): Walk aliases.
7736 2014-05-28  Tom de Vries  <tom@codesourcery.com>
7738         Revert:
7739         2014-05-28  Tom de Vries  <tom@codesourcery.com>
7741         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
7742         * lra.c (initialize_lra_reg_info_element): Add init of
7743         actual_call_used_reg_set field.
7744         (lra): Call lra_create_live_ranges before lra_inheritance for
7745         -fuse-caller-save.
7746         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
7747         -fuse-caller-save.
7748         * lra-constraints.c (need_for_call_save_p): Use
7749         actual_call_used_reg_set instead of call_used_reg_set for
7750         -fuse-caller-save.
7751         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
7753 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7755         * doc/md.texi: Document that the % constraint character must
7756         be at the beginning of the string.
7757         * genoutput.c (validate_insn_alternatives): Check that '=',
7758         '+' and '%' only appear at the beginning of a constraint.
7759         * ira.c (commutative_constraint_p): Delete.
7760         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
7761         at the start of the string.
7762         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
7763         duplicate '='s.
7764         * config/arm/neon.md (bicdi3_neon): Likewise.
7765         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
7766         (slt_si, sltu_si): Likewise.
7767         * config/vax/vax.md (sbcdi3): Likewise.
7768         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
7769         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
7770         (mul64): Move '%' to beginning of constraint.
7771         * config/arm/arm.md (*xordi3_insn): Likewise.
7772         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
7773         (xorsi3): Likewise.
7775 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7777         * doc/md.texi: Document the restrictions on the "enabled" attribute.
7779 2014-05-28  Jason Merrill  <jason@redhat.com>
7781         PR c++/47202
7782         * cgraph.h (symtab_node::get_comdat_group_id): New.
7783         * cgraphunit.c (analyze_functions): Call it.
7784         * symtab.c (dump_symtab_node): Likewise.
7785         * tree.c (decl_comdat_group_id): New.
7786         * tree.h: Declare it.
7787         * lto-streamer-out.c (write_symbol): Use it.
7788         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
7790 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7792         PR bootstrap/PR61146
7793         * wide-int.cc: Do not include longlong.h when compiling with clang.
7795 2014-05-28  Richard Biener  <rguenther@suse.de>
7797         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
7798         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
7799         (vrp_visit_assignment_or_call): Print less vertical space.
7800         (vrp_visit_stmt): Likewise.
7801         (vrp_visit_phi_node): Likewise.  For a PHI argument with
7802         VR_VARYING range consider recording it as copy.
7804 2014-05-28  Richard Biener  <rguenther@suse.de>
7806         Revert
7807         2014-05-28  Richard Biener  <rguenther@suse.de>
7809         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
7811 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7813         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
7814         sufficiently aligned and an offset is used at the same time.
7815         (expand_expr_real_1): Likewise.
7817 2014-05-28  Richard Biener  <rguenther@suse.de>
7819         PR middle-end/61045
7820         * fold-const.c (fold_comparison): When folding
7821         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
7822         the sign of the remaining constant operand stays the same.
7824 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
7826         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
7827         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
7828         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
7829         to the assembler.
7830         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
7831         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
7832         (m32bit-doubles) Likewise.
7833         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
7834         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
7835         option for RL78.
7837 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7839         * configure.ac ($gcc_cv_ld_clearcap): New test.
7840         * configure: Regenerate.
7841         * config.in: Regenerate.
7842         * config/sol2.opt (mclear-hwcap): New option.
7843         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
7844         * config/sol2-clearcap.map: Moved here from
7845         testsuite/gcc.target/i386/clearcap.map.
7846         * config/sol2-clearcapv2.map: Move here from
7847         gcc.target/i386/clearcapv2.map.
7848         * config/t-sol2 (install): Depend on install-clearcap-map.
7849         (install-clearcap-map): New target.
7850         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
7851         -mclear-hwcap.
7853 2014-05-28  Richard Biener  <rguenther@suse.de>
7855         * hwint.h (*_HALF_WIDE_INT*): Move to ...
7856         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
7857         ... here and remove the rest.
7858         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
7860 2014-05-28  Richard Biener  <rguenther@suse.de>
7862         PR tree-optimization/61335
7863         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
7864         new range fails, drop to varying.
7866 2014-05-28  Olivier Hainque  <hainque@adacore.com>
7868         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
7869         (CPP_SPEC): Add entry for -mcpu=8548.
7870         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
7871         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
7873 2014-05-28  Tom de Vries  <tom@codesourcery.com>
7875         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
7876         * lra.c (initialize_lra_reg_info_element): Add init of
7877         actual_call_used_reg_set field.
7878         (lra): Call lra_create_live_ranges before lra_inheritance for
7879         -fuse-caller-save.
7880         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
7881         -fuse-caller-save.
7882         * lra-constraints.c (need_for_call_save_p): Use
7883         actual_call_used_reg_set instead of call_used_reg_set for
7884         -fuse-caller-save.
7885         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
7887 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
7888             Tom de Vries  <tom@codesourcery.com>
7890         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
7891         to gccoptlist.
7892         (@item -fuse-caller-save): New item.
7894 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
7895             Tom de Vries  <tom@codesourcery.com>
7897         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
7898         OPT_fuse_caller_save.
7900 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
7901             Tom de Vries  <tom@codesourcery.com>
7903         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
7904         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
7905         get_call_reg_set_usage.
7906         * resource.c (mark_set_resources, mark_target_live_regs): Use
7907         get_call_reg_set_usage.
7908         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
7909         field.
7910         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
7911         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
7912         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
7913         * ira-build.c (ira_create_allocno): Init
7914         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
7915         (create_cap_allocno, propagate_allocno_info)
7916         (propagate_some_info_from_allocno)
7917         (copy_info_to_removed_store_destinations): Handle
7918         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
7919         * ira-costs.c (ira_tune_allocno_costs): Use
7920         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
7922 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
7923             Tom de Vries  <tom@codesourcery.com>
7925         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
7926         and function_used_regs_valid fields.
7927         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
7928         find_all_hard_reg_sets.
7929         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
7930         (get_call_reg_set_usage): New function.
7931         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
7932         * regs.h (get_call_reg_set_usage): Declare.
7934 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
7936         PR libgcc/61152
7937         * config/dbx.h (License): Add Runtime Library Exception.
7938         * config/newlib-stdint.h (License): Same.
7939         * config/rtems.h (License): Same
7940         * config/initfini-array.h (License): Same
7941         * config/v850/v850.h (License): Same.
7942         * config/v850/v850-opts.h (License): Same
7943         * config/v850/rtems.h (License): Same.
7945 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
7947         PR target/61044
7948         * doc/extend.texi (Local Labels): Note that label differences are
7949         not supported for AVR.
7951 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7952             Olivier Hainque  <hainque@adacore.com>
7954         * rtl.h (set_for_reg_notes): Declare.
7955         * emit-rtl.c (set_for_reg_notes): New function.
7956         (set_unique_reg_note): Use it.
7957         * optabs.c (add_equal_note): Likewise
7959 2014-05-27  Andrew Pinski  <apinski@cavium.com>
7961         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
7962         Use <w> for the register in assembly template.
7963         (stack_protect_test): Use the mode of operands[0] for the result.
7964         (stack_protect_test_<mode>): Use <w> for the register
7965         in assembly template.
7967 2014-05-27  DJ Delorie  <dj@redhat.com>
7969         * config/rx/rx.c (add_vector_labels): New.
7970         (rx_output_function_prologue): Call it.
7971         (rx_handle_func_attribute): Don't require empty arguments.
7972         (rx_handle_vector_attribute): New.
7973         (rx_attribute_table): Add "vector" attribute.
7974         * doc/extend.texi (interrupt, vector): Document new/changed
7975         RX-specific attributes.
7977         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
7979 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
7981         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
7982         predicate to detect a negative quotient.
7984 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
7986         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
7987         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
7988         Add X - Y CMP 0 to X CMP Y transformation.
7989         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
7991 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
7993         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
7994         before printing.
7996 2014-05-27  Steve Ellcey  <sellcey@mips.com>
7998         * config/mips/mips.c: Add include of cgraph.h.
8000 2014-05-27  Richard Biener  <rguenther@suse.de>
8002         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
8004 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
8006         PR libgcc/61152
8007         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
8008         * config/arm/arm-cores.def (License): Same.
8009         * config/arm/arm-opts.h (License): Same.
8010         * config/arm/aout.h (License): Same.
8011         * config/arm/bpabi.h (License): Same.
8012         * config/arm/elf.h (License): Same.
8013         * config/arm/linux-elf.h (License): Same.
8014         * config/arm/linux-gas.h (License): Same.
8015         * config/arm/netbsd-elf.h (License): Same.
8016         * config/arm/uclinux-eabi.h (License): Same.
8017         * config/arm/uclinux-elf.h (License): Same.
8018         * config/arm/vxworks.h (License): Same.
8020 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8022         * config/arm/neon.md (neon_bswap<mode>): New pattern.
8023         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
8024         (arm_init_neon_builtins): Handle NEON_BSWAP.
8025         Define required type nodes.
8026         (arm_expand_neon_builtin): Handle NEON_BSWAP.
8027         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
8028         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
8029         * config/arm/iterators.md (VDQHSD): New mode iterator.
8031 2014-05-27  Richard Biener  <rguenther@suse.de>
8033         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
8034         Try using literal operands when comparing value-ranges failed.
8036 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
8038         * ira.c (commutative_operand): Adjust for change to recog_data.
8039         [Missing from previous commit.]
8041 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
8043         * system.h (TEST_BIT): New macro.
8044         * recog.h (alternative_mask): New type.
8045         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
8046         (recog_data_d): Replace alternative_enabled_p array with
8047         enabled_alternatives.
8048         (target_recog): New structure.
8049         (default_target_recog, this_target_recog): Declare.
8050         (get_enabled_alternatives, recog_init): Likewise.
8051         * recog.c (default_target_recog, this_target_recog): New variables.
8052         (get_enabled_alternatives): New function.
8053         (extract_insn): Use it.
8054         (recog_init): New function.
8055         (preprocess_constraints, constrain_operands): Adjust for change to
8056         recog_data.
8057         * postreload.c (reload_cse_simplify_operands): Likewise.
8058         * reload.c (find_reloads): Likewise.
8059         * ira-costs.c (record_reg_classes): Likewise.
8060         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
8061         all alternatives after a disabled one would be skipped.
8062         (ira_implicitly_set_insn_hard_regs): Likewise.
8063         * ira.c (ira_setup_alts): Adjust for change to recog_data.
8064         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
8065         with enabled_alternatives.
8066         * lra.c (free_insn_recog_data): Update accordingly.
8067         (lra_update_insn_recog_data): Likewise.
8068         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
8069         * lra-constraints.c (process_alt_operands): Likewise.  Handle
8070         only_alternative as part of the enabled mask.
8071         * target-globals.h (this_target_recog): Declare.
8072         (target_globals): Add a recog field.
8073         (restore_target_globals): Restore this_target_recog.
8074         * target-globals.c: Include recog.h.
8075         (default_target_globals): Initialize recog field.
8076         (save_target_globals): Likewise.
8077         * reginfo.c (reinit_regs): Call recog_init.
8078         * toplev.c (backend_init_target): Likewise.
8080 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
8082         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
8083         rather than any named insn's code.
8085 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
8087         PR libgcc/61152
8088         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
8089         * config/arm/arm-cores.def (License): Same.
8091 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
8093         * tree.h (decl_comdat_group): Declare.
8094         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
8095         * tree.c (decl_comdat_group): Here.
8097 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
8099         PR rtl-optimization/61222
8100         * combine.c (simplify_shift_const_1): When moving a PLUS outside
8101         the shift, truncate the PLUS operand to the result mode.
8103 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
8105         PR target/61271
8106         * config/i386/i386.c (ix86_rtx_costs)
8107         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
8108         Fix condition.
8110 2014-05-26  Martin Jambor  <mjambor@suse.cz>
8112         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
8113         subreg uses.
8115 2014-05-26  Richard Biener  <rguenther@suse.de>
8117         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
8118         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
8119         Provide specializations.
8120         (wi::int_traits <HOST_WIDE_INT>,
8121         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
8123 2014-05-26  Alan Modra  <amodra@gmail.com>
8125         PR target/61098
8126         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
8127         params and return a bool.  Remove dead code.  Update comment.
8128         Assert we have a const_int source.  Remove bogus code from
8129         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
8130         handling of constants > 2G and reg_equal note, from..
8131         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
8132         return value.  Update comment.  If we can, use a new pseudo
8133         for intermediate calculations.
8134         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
8135         prototype.
8136         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
8137         call to rs6000_emit_set_const in splitter.
8138         (movdi_internal64+2, +3): Likewise.
8140 2014-05-26  Richard Biener  <rguenther@suse.de>
8142         * system.h: Define __STDC_FORMAT_MACROS before
8143         including inttypes.h.
8144         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
8145         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
8146         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
8147         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
8148         HOST_WIDEST_INT_C): Remove.
8149         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
8150         if C99 inttypes.h is not available.
8151         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
8152         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
8153         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
8154         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
8155         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
8156         (struct output_info): Likewise.
8157         (print_statistics): Adjust.
8158         (dump_bitmap_statistics): Likewise.
8159         * bt-load.c (migrate_btr_defs): Print with PRId64.
8160         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
8161         (MAX_SAFE_MULTIPLIER): Adjust.
8162         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
8163         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
8164         dump_cgraph_node): Likewise.
8165         * final.c (dump_basic_block_info): Likewise.
8166         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
8167         * gcov.c (format_gcov): Likewise.
8168         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
8169         for calculation.
8170         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
8171         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
8172         (inline_small_functions, dump_overall_stats, dump_inline_stats):
8173         Use PRId64 for dumping.
8174         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
8175         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
8176         (add_allocno_hard_regs): Adjust.
8177         * loop-doloop.c (doloop_modify): Print using PRId64.
8178         * loop-iv.c (inverse): Compute in uint64_t.
8179         (determine_max_iter, iv_number_of_iterations): Likewise.
8180         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
8181         Print using PRId64.
8182         * lto-streamer-out.c (write_symbol): Use uint64_t.
8183         * mcf.c (CAP_INFINITY): Use int64_t maximum.
8184         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
8185         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
8186         * modulo-sched.c (const_iteration_count): Use int64_t.
8187         (sms_schedule): Dump using PRId64.
8188         * predict.c (dump_prediction): Likewise.
8189         * pretty-print.h (pp_widest_integer): Remove.
8190         * profile.c (get_working_sets, is_edge_inconsistent,
8191         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
8192         * tree-pretty-print.c (pp_double_int): Remove case handling
8193         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
8194         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
8195         and adjust users.
8196         (pass_optimize_bswap::execute): Remove restriction on hosts.
8197         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
8198         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
8199         * tree.c (widest_int_cst_value): Remove.
8200         * tree.h (widest_int_cst_value): Likewise.
8201         * value-prof.c (dump_histogram_value): Print using PRId64.
8202         * gengtype.c (main): Also inject int64_t.
8203         * ggc-page.c (struct max_alignment): Use int64_t.
8204         * alloc-pool.c (struct allocation_object_def): Likewise.
8205         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
8206         for computation.
8207         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
8208         * doc/tm.texi: Regenerated.
8209         * gengtype-lex.l (IWORD): Handle [u]int64_t.
8210         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
8211         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
8212         mmix_output_register_setting): Use [u]int64_t in prototypes.
8213         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
8214         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
8215         mmix_output_octa, mmix_output_shifted_value): Adjust.
8216         (mmix_intval): Adjust.  Remove unreachable case.
8217         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
8219 2014-05-26  Richard Biener  <rguenther@suse.de>
8221         * configure.ac: Drop __int64 type check.  Insist that we
8222         found uint64_t and int64_t.
8223         * hwint.h (HOST_BITS_PER___INT64): Remove.
8224         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
8225         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
8226         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
8227         (HOST_WIDEST_FAST_INT): Remove __int64 case.
8228         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
8229         for dst_q_src_df_rms_cdt.
8230         * configure: Regenerate.
8231         * config.in: Likewise.
8233 2014-05-26  Michael Tautschnig  <mt@debian.org>
8235         PR target/61249
8236         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
8237         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
8239 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
8241         PR rtl-optimization/61278
8242         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
8244 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
8246         PR rtl-optimization/61220
8247         Part of PR rtl-optimization/61225
8248         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
8249         insn; skip split_edge for a block with only one successor.
8251 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
8253         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
8254         for variables.
8256 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
8258         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
8259         (update_vtable_references): New function.
8260         (function_and_variable_visibility): Rewrite also vtable initializers.
8261         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
8263 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
8265         * ggc.h (ggc_grow): New function.
8266         * ggc-none.c (ggc_grow): New function.
8267         * ggc-page.c (ggc_grow): Likewise.
8269 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
8271         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
8272         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
8273         comdat_can_be_unshared_p, cgraph_externally_visible_p,
8274         varpool_externally_visible_p, can_replace_by_local_alias,
8275         update_visibility_by_resolution_info, function_and_variable_visibility,
8276         pass_data_ipa_function_and_variable_visibility,
8277         make_pass_ipa_function_and_variable_visibility,
8278         whole_program_function_and_variable_visibility,
8279         pass_data_ipa_whole_program_visibility,
8280         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
8281         * cgraph.h (cgraph_local_node_p): Declare.
8282         * ipa-visibility.c: New file.
8283         * Makefile.in (OBJS): Add ipa-visiblity.o
8285 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
8287         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
8288         that var decl is available.
8290 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
8292         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
8293         symtab_node pointer.
8294         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
8295         (find_decls_types_r): Do not walk COMDAT_GROUP.
8296         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
8297         * varasm.c (make_decl_one_only): Use set_comdat_group;
8298         create node if needed.
8299         * ipa-inline-transform.c (save_inline_function_body): Update
8300         way we decl->symtab mapping.
8301         * symtab.c (symtab_hash, hash_node, eq_node
8302         symtab_insert_node_to_hashtable): Remove.
8303         (symtab_register_node): Update.
8304         (symtab_unregister_node): Update.
8305         (symtab_get_node): Reimplement as inline function.
8306         (symtab_add_to_same_comdat_group): Update.
8307         (symtab_dissolve_same_comdat_group_list): Update.
8308         (dump_symtab_base): Update.
8309         (verify_symtab_base): Update.
8310         (symtab_make_decl_local): Update.
8311         (fixup_same_cpp_alias_visibility): Update.
8312         (symtab_nonoverwritable_alias): Update.
8313         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
8314         * ipa.c (update_visibility_by_resolution_info): UPdate.
8315         * bb-reorder.c: Include cgraph.h
8316         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
8317         with comdat groups.
8318         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
8319         * cgraph.c (cgraph_get_create_node): Update.
8320         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
8321         and comdat_group_.
8322         (symtab_get_node): Make inline.
8323         (symtab_insert_node_to_hashtable): Remove.
8324         (symtab_can_be_discarded): Update.
8325         (decl_comdat_group): New function.
8326         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
8327         Update.
8328         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
8329         comdat group name.
8330         (read_comdat_group): New function.
8331         (input_node, input_varpool_node): Use it.
8332         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
8333         comdat groups.
8334         * mips.c (mips_start_unique_function): Likewise.
8335         (ix86_code_end): Likewise.
8336         (rs6000_code_end): Likweise.
8337         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
8339 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
8341         * gengtype-state.c (fatal_reading_state): Bring offline.
8342         * optabs.c (widening_optab_handler): Bring offline.
8343         * optabs.h (widening_optab_handler): Likewise.
8344         * final.c (get_attr_length_1): Likewise.
8346 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
8348         * sched-int.h (sd_iterator_cond): Manually tail recurse.
8350 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
8352         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
8353         (ppc440-compare): Include shift with dot.
8354         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
8355         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
8356         without dot.
8357         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
8358         without dot.
8359         (e6500_sfx2): Include it.
8360         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
8361         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
8362         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
8363         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
8364         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
8365         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
8366         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
8367         *lshiftrt_internal1le, *lshiftrt_internal1be,
8368         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
8369         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
8370         *rotldi3_internal10le, *rotldi3_internal10be,
8371         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
8372         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
8373         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
8374         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
8375         define_insns): Use type "shift" in the appropriate alternatives.
8377 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
8379         * config/rs6000/rs6000.md (type): Add "logical".  Delete
8380         "fast_compare".
8381         (dot): Adjust comment.
8382         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
8383         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
8384         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
8385         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
8386         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
8387         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
8388         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
8389         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
8391         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
8392         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
8393         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
8394         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
8395         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
8396         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
8397         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
8398         * config/rs6000/8540.md (ppc8540_su): Adjust.
8399         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
8400         cell-cmp-microcoded): Adjust.
8401         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
8402         * config/rs6000/e500mc.md (e500mc_su): Adjust.
8403         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
8404         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
8405         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
8406         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
8407         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
8408         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
8409         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
8410         Adjust.
8411         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
8412         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
8413         Adjust.  Adjust comment.
8414         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
8415         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
8417 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
8419         * config/rs6000/rs6000.md (type): Add "add".
8420         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
8421         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
8422         define_insns): Use it.
8423         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
8425         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
8426         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
8427         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
8428         * config/rs6000/601.md (ppc601-integer): Adjust.
8429         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
8430         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
8431         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
8432         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
8433         * config/rs6000/8540.md (ppc8540_su): Adjust.
8434         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
8435         cell-cmp-microcoded): Adjust.
8436         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
8437         * config/rs6000/e500mc.md (e500mc_su): Adjust.
8438         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
8439         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
8440         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
8441         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
8442         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
8443         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
8444         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
8445         Adjust.
8446         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
8447         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
8448         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
8449         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
8451 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
8453         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
8454         "delayed_compare", "var_delayed_compare".
8455         (var_shift): New attribute.
8456         (cell_micro): Adjust.
8457         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
8458         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
8459         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
8460         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
8461         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
8462         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
8463         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
8464         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
8465         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
8466         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
8467         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
8468         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
8469         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
8470         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
8471         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
8472         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
8473         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
8474         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
8475         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
8476         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
8477         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
8478         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
8479         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
8480         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
8481         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
8483         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
8484         * config/rs6000/440.md (ppc440-integer): Adjust.
8485         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
8486         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
8487         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
8488         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
8489         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
8490         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
8491         * config/rs6000/8540.md (ppc8540_su): Adjust.
8492         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
8493         cell-cmp-microcoded): Adjust.
8494         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
8495         * config/rs6000/e500mc.md (e500mc_su): Adjust.
8496         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
8497         e500mc64_delayed): Adjust.
8498         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
8499         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
8500         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
8501         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
8502         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
8503         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
8504         power6-delayed-compare, power6-var-delayed-compare): Adjust.
8505         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
8506         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
8507         Adjust comment.
8508         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
8509         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
8511 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
8513         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
8514         (bits): New mode_attr.
8515         (idiv_ldiv): Delete mode_attr.
8516         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
8517         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
8518         rs6000_adjust_priority, is_nonpipeline_insn,
8519         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
8521         * config/rs6000/40x.md (ppc403-idiv): Adjust.
8522         * config/rs6000/440.md (ppc440-idiv): Adjust.
8523         * config/rs6000/476.md (ppc476-idiv): Adjust.
8524         * config/rs6000/601.md (ppc601-idiv): Adjust.
8525         * config/rs6000/603.md (ppc603-idiv): Adjust.
8526         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
8527         ppc620-ldiv): Adjust.
8528         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
8529         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
8530         * config/rs6000/8540.md (ppc8540_divide): Adjust.
8531         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
8532         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
8533         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
8534         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
8535         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
8536         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
8537         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
8538         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
8539         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
8540         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
8541         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
8542         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
8543         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
8544         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
8545         * config/rs6000/titan.md (titan_fxu_div): Adjust.
8547 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
8549         * config/rs6000/rs6000.md (type): Delete "insert_word",
8550         "insert_dword".  Add "insert".
8551         (size): Update comment.
8552         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
8553         insn_must_be_first_in_group): Adjust.
8554         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
8555         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
8556         *insvsi_internal6, insvdi_internal): Adjust.
8558         * config/rs6000/40x.md (ppc403-integer): Adjust.
8559         * config/rs6000/440.md (ppc440-integer): Adjust.
8560         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
8561         * config/rs6000/601.md (ppc601-integer): Adjust.
8562         * config/rs6000/603.md (ppc603-integer): Adjust.
8563         * config/rs6000/6xx.md (ppc604-integer): Adjust.
8564         * config/rs6000/7450.md (ppc7450-integer): Adjust.
8565         * config/rs6000/7xx.md (ppc750-integer): Adjust.
8566         * config/rs6000/8540.md (ppc8540_su): Adjust.
8567         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
8568         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
8569         * config/rs6000/e500mc.md (e500mc_su): Adjust.
8570         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
8571         * config/rs6000/e5500.md (e5500_sfx): Adjust.
8572         * config/rs6000/e6500.md (e6500_sfx): Adjust.
8573         * config/rs6000/mpc.md (mpccore-integer): Adjust.
8574         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
8575         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
8576         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
8577         * config/rs6000/power7.md (power7-integer): Adjust.
8578         * config/rs6000/power8.md (power8-1cyc): Adjust.
8579         * config/rs6000/rs64.md (rs64a-integer): Adjust.
8580         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
8582 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
8584         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
8585         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
8586         (size): New attribute.
8587         (dot): New attribute.
8588         (cell_micro): Adjust.
8589         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
8590         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
8591         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
8592         umuldi3_highpart): Adjust.
8593         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
8594         rs6000_adjust_priority, is_nonpipeline_insn,
8595         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
8597         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
8598         ppc405-imul3): Adjust.
8599         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
8600         * config/rs6000/476.md (ppc476-imul): Adjust.
8601         * config/rs6000/601.md (ppc601-imul): Adjust.
8602         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
8603         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
8604         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
8605         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
8606         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
8607         Adjust.
8608         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
8609         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
8610         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
8611         cell-imul): Adjust.
8612         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
8613         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
8614         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
8615         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
8616         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
8617         * config/rs6000/mpc.md (mpccore-imul): Adjust.
8618         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
8619         power4-lmul, power4-imul, power4-imul3): Adjust.
8620         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
8621         power5-lmul, power5-imul, power5-imul3): Adjust.
8622         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
8623         power6-lmul, power6-imul, power6-imul3): Adjust.
8624         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
8625         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
8627         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
8628         rs64a-lmul): Adjust.
8629         * config/rs6000/titan.md (titan_imul): Adjust.
8631 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
8633         * config/rs6000/rs6000.md (type): Add new value "halfmul".
8634         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
8635         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
8636         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
8637         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
8638         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
8639         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
8640         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
8641         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
8642         * config/rs6000/titan.md: Delete nonsensical comment.
8643         (titan_imul): Add type imul3.
8644         (titan_mulhw): Remove type imul3; add type halfmul.
8646 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
8648         * config/rs6000/rs6000.md (type): Reorder, reformat.
8650 2014-05-23  Martin Jambor  <mjambor@suse.cz>
8652         PR tree-optimization/53787
8653         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
8654         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
8655         analysis_done, update all uses.
8656         * ipa-prop.c: Include domwalk.h
8657         (param_analysis_info): Removed.
8658         (param_aa_status): New type.
8659         (ipa_bb_info): Likewise.
8660         (func_body_info): Likewise.
8661         (ipa_get_bb_info): New function.
8662         (aa_overwalked): Likewise.
8663         (find_dominating_aa_status): Likewise.
8664         (parm_bb_aa_status_for_bb): Likewise.
8665         (parm_preserved_before_stmt_p): Changed to use new param AA info.
8666         (load_from_unmodified_param): Accept func_body_info as a parameter
8667         instead of parms_ainfo.
8668         (parm_ref_data_preserved_p): Changed to use new param AA info.
8669         (parm_ref_data_pass_through_p): Likewise.
8670         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
8671         (compute_complex_assign_jump_func): Changed to use new param AA info.
8672         (compute_complex_ancestor_jump_func): Likewise.
8673         (ipa_compute_jump_functions_for_edge): Likewise.
8674         (ipa_compute_jump_functions): Removed.
8675         (ipa_compute_jump_functions_for_bb): New function.
8676         (ipa_analyze_indirect_call_uses): Likewise, moved variable
8677         declarations down.
8678         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
8679         and info, moved variable declarations down.
8680         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
8681         node and info.
8682         (ipa_analyze_stmt_uses): Likewise.
8683         (ipa_analyze_params_uses): Removed.
8684         (ipa_analyze_params_uses_in_bb): New function.
8685         (ipa_analyze_controlled_uses): Likewise.
8686         (free_ipa_bb_info): Likewise.
8687         (analysis_dom_walker): New class.
8688         (ipa_analyze_node): Handle node-specific forbidden analysis,
8689         initialize and free func_body_info, use dominator walker.
8690         (ipcp_modif_dom_walker): New class.
8691         (ipcp_transform_function): Create and free func_body_info, use
8692         ipcp_modif_dom_walker, moved a lot of functionality there.
8694 2014-05-23  Marek Polacek  <polacek@redhat.com>
8695             Jakub Jelinek  <jakub@redhat.com>
8697         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
8698         * gcc.c (sanitize_spec_function): Likewise.
8699         * convert.c (convert_to_integer): Include "ubsan.h".  Add
8700         floating-point to integer instrumentation.
8701         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
8702         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
8703         SANITIZE_NONDEFAULT.
8704         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
8705         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
8706         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
8707         * ubsan.c: Include "realmpfr.h" and "dfp.h".
8708         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
8709         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
8710         float/double/long double.
8711         (ubsan_instrument_float_cast): New function.
8712         * ubsan.h (ubsan_instrument_float_cast): Declare.
8714 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
8716         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
8717         predicate.
8718         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
8719         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
8720         Adjust for tailcalling through registers.
8721         * config/aarch64/aarch64.h (enum reg_class): New caller save
8722         register class.
8723         (REG_CLASS_NAMES): Likewise.
8724         (REG_CLASS_CONTENTS): Likewise.
8725         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
8726         Allow tailcalling without decls.
8728 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
8730         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
8731         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
8733         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
8734         gsi, and variables v_* to v*.
8736 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
8738         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
8740 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
8742         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
8743         * omp-low.c: Update accordingly.
8745         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
8746         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
8747         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
8748         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
8749         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
8750         GF_OMP_TARGET_KIND_UPDATE.
8752         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
8753         Explicitly enumerate the expected region types.
8755 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
8757         PR other/56955
8758         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
8759         documentation; the old documentation didn't clearly state the
8760         constraints on the contents of the pointed-to storage.
8762 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8764         Fix bootstrap error on ia64
8765         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
8766         Return default value.
8768 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8770         PR tree-optimization/54733
8771         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
8772         (CMPNOP): Define.
8773         (find_bswap_or_nop_load): New.
8774         (find_bswap_1): Renamed to ...
8775         (find_bswap_or_nop_1): This. Also add support for memory source.
8776         (find_bswap): Renamed to ...
8777         (find_bswap_or_nop): This. Also add support for memory source and
8778         detection of bitwise operations equivalent to load in target
8779         endianness.
8780         (execute_optimize_bswap): Likewise. Also move its leading comment back
8781         in place and split statement transformation into ...
8782         (bswap_replace): This.
8784 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
8786         PR rtl-optimization/61215
8787         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
8788         simplify_gen_subreg until final substitution.
8790 2014-05-23  Alan Modra  <amodra@gmail.com>
8792         PR target/61231
8793         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
8794         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
8795         Use "Y" constraint rather than "m".
8797 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
8799         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
8800         define.
8801         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
8802         New function declaration.
8803         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
8804         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
8805         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
8806         (aarch64_init_builtins) : Initialize builtins
8807         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
8808         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
8809         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
8810         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
8811         and __builtins_aarch64_set_fpsr.
8812         (aarch64_atomic_assign_expand_fenv): New function.
8813         * config/aarch64/aarch64.md (set_fpcr): New pattern.
8814         (get_fpcr) : Likewise.
8815         (set_fpsr) : Likewise.
8816         (get_fpsr) : Likewise.
8817         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
8818          and UNSPECV_SET_FPSR.
8819         * doc/extend.texi (AARCH64 Built-in Functions) : Document
8820         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
8821         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
8823 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
8825         PR rtl-optimization/60969
8826         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
8827         constraints.  Set up mem cost for NO_REGS case.
8829 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
8831         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
8833 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
8835         * config/darwin.c: Include "lto-section-names.h".
8836         (LTO_SEGMENT_NAME): Don't define.
8837         * config/i386/winnt.c: Include "lto-section-names.h".
8838         * lto-streamer.c: Include "lto-section-names.h".
8839         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
8840         * lto-wrapper.c: Include "lto-section-names.h".
8841         (LTO_SECTION_NAME_PREFIX): Don't define.
8842         * lto-section-names.h: New file.
8843         * cgraphunit.c: Include "lto-section-names.h".
8845 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
8847         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
8849 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
8851         PR target/61208
8852         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
8854 2014-05-22  Nick Clifton  <nickc@redhat.com>
8856         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
8858 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
8860         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
8861         -> (T)A transformation to integer types.
8863 2014-05-22  Teresa Johnson  <tejohnson@google.com>
8865         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
8866         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
8867         (gcov_rewrite): Use gcov_nonruntime_assert.
8868         (gcov_open): Ditto.
8869         (gcov_write_words): Ditto.
8870         (gcov_write_length): Ditto.
8871         (gcov_read_words): Use gcov_nonruntime_assert, and remove
8872         gcc_assert from IN_LIBGCOV code.
8873         (gcov_read_summary): Use gcov_error to flag profile corruption.
8874         (gcov_sync): Use gcov_nonruntime_assert.
8875         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
8876         (gcov_histo_index): Use gcov_nonruntime_assert.
8877         (static void gcov_histogram_merge): Ditto.
8878         (compute_working_sets): Ditto.
8879         * gcov-io.h (gcov_nonruntime_assert): Define.
8880         (gcov_error): Define for !IN_LIBGCOV
8882 2014-05-22  Richard Biener  <rguenther@suse.de>
8884         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
8885         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
8886         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
8887         and deallocation site.
8888         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8889         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
8890         passing through the incoming points-to set.
8891         (handle_lhs_call): Use flags argument instead of recomputing it.
8892         (find_func_aliases_for_call): Call handle_lhs_call with proper
8893         call return flags.
8895 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
8897         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
8898         all padding bits in REAL_VALUE_TYPE are cleared.
8900 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8902         Cleanup and improve multipass_dfa_lookahead_guard
8903         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
8904         (core2i7_first_cycle_multipass_begin,)
8905         (core2i7_first_cycle_multipass_issue,)
8906         (core2i7_first_cycle_multipass_backtrack): Update signature.
8907         * config/ia64/ia64.c
8908         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
8909         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
8910         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
8911         hook definition.
8912         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
8913         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
8914         values.
8915         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
8916         return values.
8917         * doc/tm.texi: Regenerate.
8918         * doc/tm.texi.in
8919         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
8920         * haifa-sched.c (ready_try): Make signed to allow negative values.
8921         (rebug_ready_list_1): Update.
8922         (choose_ready): Simplify.
8923         (sched_extend_ready_list): Update.
8925 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8927         Remove IA64 speculation tweaking flags
8928         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
8929         speculation tuning flags.
8930         (msched-prefer-non-data-spec-insns,)
8931         (msched-prefer-non-control-spec-insns): Obsolete options.
8932         * haifa-sched.c (choose_ready): Remove handling of
8933         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
8934         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
8935         and PREFER_NON_DATA_SPEC.
8936         * sel-sched.c (process_spec_exprs): Remove handling of
8937         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
8939 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8941         Improve scheduling debug output
8942         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
8943         (advance_one_cycle): Update.
8944         (schedule_insn, queue_to_ready): Add debug printouts.
8945         (debug_ready_list_1): New static function.
8946         (debug_ready_list): Update.
8947         (max_issue): Add debug printouts.
8948         (dump_insn_stream): New static function.
8949         (schedule_block): Use it.  Also better indent printouts.
8951 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8953         Fix sched_insn debug counter
8954         * haifa-sched.c (schedule_insn): Update.
8955         (struct haifa_saved_data): Add nonscheduled_insns_begin.
8956         (save_backtrack_point, restore_backtrack_point): Update.
8957         (first_nonscheduled_insn): New static function.
8958         (queue_to_ready, choose_ready): Use it.
8959         (schedule_block): Init nonscheduled_insns_begin.
8960         (sched_emit_insn): Update.
8963 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
8965         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
8966         to GENERAL_REGS.
8967         (aarch64_secondary_reload) : LikeWise.
8968         (aarch64_class_max_nregs) : Remove CORE_REGS.
8969         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
8970         (REG_CLASS_NAMES) : Likewise.
8971         (REG_CLASS_CONTENTS) : LikeWise.
8972         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
8974 2014-05-21  Guozhi Wei  <carrot@google.com>
8976         PR target/61202
8977         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
8978         constraint.
8979         (vqdmulhq_n_s16): Likewise.
8981 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
8983         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
8985 2014-05-21  Marek Polacek  <polacek@redhat.com>
8987         PR sanitizer/61272
8988         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
8990 2014-05-21  Martin Jambor  <mjambor@suse.cz>
8992         * doc/invoke.texi (Optimize Options): Document parameters
8993         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
8994         ipa-cp-array-index-hint-bonus.
8996 2014-05-21  Mark Wielaard  <mjw@redhat.com>
8998         PR debug/16063
8999         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
9000         version >= 3 or not strict DWARF.
9001         * langhooks.h (struct lang_hooks_for_types): Add
9002         enum_underlying_base_type.
9003         * langhooks.c (lhd_enum_underlying_base_type): New function.
9004         * gcc/langhooks.h (struct lang_hooks_for_types): Add
9005         enum_underlying_base_type.
9006         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
9007         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
9008         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
9010 2014-05-21  Richard Biener  <rguenther@suse.de>
9012         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
9014 2014-05-21  John Marino  <gnugcc@marino.st>
9016         * config.gcc (*-*-dragonfly*): New target.
9017         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
9018         * configure: Regenerate.
9019         * config/dragonfly-stdint.h: New.
9020         * config/dragonfly.h: New.
9021         * config/dragonfly.opt: New.
9022         * config/i386/dragonfly.h: New.
9023         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
9025 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
9027         * tree.def (VOID_CST): New.
9028         * tree-core.h (TI_VOID): New.
9029         * tree.h (void_node): New.
9030         * tree.c (tree_node_structure_for_code, tree_code_size)
9031         (iterative_hash_expr): Handle VOID_CST.
9032         (build_common_tree_nodes): Initialize void_node.
9034 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
9036         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
9037         functions.
9038         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
9040         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
9041         more places.
9043         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
9044         flag_reorder_blocks_and_partition.
9045         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
9047 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
9049         PR target/54236
9050         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
9051         constraints.
9052         (*addc_r_t): Add new insn_and_split.
9054 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
9056         PR middle-end/61252
9057         * omp-low.c (handle_simd_reference): New function.
9058         (lower_rec_input_clauses): Use it.  Defer adding reference
9059         initialization even for reduction without placeholder if in simd,
9060         handle it properly later on.
9062 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
9064         PR tree-optimization/60899
9065         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
9066         assume all static symbols will have definition wile parsing and
9067         check the do have definition later in compilation; check that
9068         variable referring symbol will be output before concluding that
9069         reference is safe; be conservative for referring local statics;
9070         be more precise about when comdat is output in other partition.
9072 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
9074         PR bootstrap/60984
9075         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
9076         parameter.
9077         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
9078         (ipa_inline): Loop inline_to_all_callers until no more aliases
9079         are removed.
9081 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
9083         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
9084         set writeonly flag only for vars actually written to.
9086 2014-05-20  Dehao Chen  <dehao@google.com>
9088         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
9089         and callee count to get clone count.
9090         * tree-inline.c (expand_call_inline): Use callee count instead of bb
9091         count in copy_body.
9093 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
9095         PR rtl-optimization/61243
9096         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
9098 2014-05-20  Xinliang David Li  <davidxl@google.com>
9100         * cgraphunit.c (walk_polymorphic_call_targets): Add
9101         dbgcnt and fopt-info support.
9102         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
9103         * ipa-devirt.c (ipa_devirt): Ditto.
9104         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
9105         * ipa.c (walk_polymorphic_call_targets): Ditto.
9106         * gimple-fold.c (fold_gimple_assign): Ditto.
9107         (gimple_fold_call): Ditto.
9108         * dbgcnt.def: New counter.
9110 2014-05-20  DJ Delorie  <dj@redhat.com>
9112         * config/msp430/msp430.md (split): Don't allow subregs when
9113         splitting SImode adds.
9114         (andneghi): Fix subtraction logic.
9115         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
9117 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
9119         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
9120         symbols.
9121         * except.c (switch_to_exception_section, resolve_unique_section,
9122         get_named_text_section, default_function_rodata_section,
9123         align_variable, get_block_for_decl, default_section_type_flags):
9124         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
9125         * symtab.c (symtab_add_to_same_comdat_group,
9126         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
9127         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
9128         Likewise.
9129         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
9130         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
9131         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
9132         (c6x_function_in_section_p): Likewise.
9133         * config/darwin.c (machopic_select_section): Likewise.
9134         * config/arm/arm.c (arm_function_in_section_p): Likewise.
9135         * config/mips/mips.c (mips_function_rodata_section): Likewise.
9136         * config/mep/mep.c (mep_select_section): LIkewise.
9137         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
9139 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
9141         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
9142         EH region of calls to pure functions that can throw an exception.
9143         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
9144         (copy_reference_ops_from_call): Also copy the EH region of the call if
9145         it can throw an exception.
9147 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9149         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
9150         nested VEC_SELECTs that are inverses of each other.
9152 2014-05-20  Richard Biener  <rguenther@suse.de>
9154         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
9155         (extract_and_process_scc_for_name): not here.
9156         (cond_dom_walker::before_dom_children): Only process
9157         stmts that end the BB in interesting ways.
9158         (run_scc_vn): Mark param uses as visited.
9160 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9162         * config/arm/arm.md (arith_shiftsi): Do not predicate for
9163         arm_restrict_it.
9165 2014-05-20  Nick Clifton  <nickc@redhat.com>
9167         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
9168         (msp430_gimplify_va_arg_expr): New function.
9169         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
9171         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
9172         operand 0 in order to prevent confusion about the number of
9173         registers involved.
9175 2014-05-20  Richard Biener  <rguenther@suse.de>
9177         PR tree-optimization/61221
9178         * tree-ssa-pre.c (el_to_update): Remove.
9179         (eliminate_dom_walker::before_dom_children): Handle released
9180         VDEFs by value-numbering them to the associated VUSE.  Update
9181         stmt immediately for substituted call address.
9182         (eliminate): Remove delayed stmt updating code.
9183         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
9184         possibly late re-numbered vuses.
9185         (vn_reference_lookup_2): Adjust.
9186         (vn_reference_lookup_pieces): Likewise.
9187         (vn_reference_lookup): Likewise.
9189 2014-05-20  Richard Biener  <rguenther@suse.de>
9191         * config.gcc: Remove need_64bit_hwint.
9192         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
9193         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
9194         it to be true.
9195         * config.in: Regenerate.
9196         * configure: Likewise.
9198 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
9200         * doc/extend.texi: Create Label Attributes section,
9201         move all label attributes into it and reference it.
9203 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
9205         * arm.c (thumb1_reorg): When scanning backwards skip anything
9206         that's not a proper insn.
9208 2014-05-19  Richard Biener  <rguenther@suse.de>
9210         PR tree-optimization/61221
9211         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9212         Do nothing for unreachable blocks.
9213         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
9214         Improve unreachability detection.
9216 2014-05-19  Richard Biener  <rguenther@suse.de>
9218         PR tree-optimization/61209
9219         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
9221 2014-05-19  Nick Clifton  <nickc@redhat.com>
9223         * except.c (init_eh): Fix computation of builtin setjmp buffer
9224         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
9226 2014-05-19  Richard Biener  <rguenther@suse.de>
9228         PR tree-optimization/61184
9229         * tree-vrp.c (is_negative_overflow_infinity): Use
9230         TREE_OVERFLOW_P and do that check first.
9231         (is_positive_overflow_infinity): Likewise.
9232         (is_overflow_infinity): Likewise.
9233         (vrp_operand_equal_p): Properly treat operands with
9234         differing overflow as not equal.
9236 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
9238         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
9239         shift simplification where it was intended.
9241 2014-05-19  Christian Bruel  <christian.bruel@st.com>
9243         PR target/61195
9244         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
9246 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
9248         PR target/61084
9249         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
9250         than wide_int.
9252 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
9254         * reg-notes.def (CROSSING_JUMP): Likewise.
9255         * rtl.h (rtx_def): Update comment for jump flag.
9256         (CROSSING_JUMP_P): Define.
9257         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
9258         of a REG_CROSSING_JUMP note.
9259         * cfghooks.c (tidy_fallthru_edges): Likewise.
9260         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
9261         * emit-rtl.c (try_split): Likewise.
9262         * haifa-sched.c (sched_create_recovery_edges): Likewise.
9263         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
9264         * jump.c (redirect_jump_2): Likewise.
9265         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
9266         (relax_delay_slots): Likewise.
9267         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
9268         (bbit_di): Likewise.
9269         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
9270         * config/sh/sh.md (jump_compact): Likewise.
9271         * bb-reorder.c (rotate_loop): Likewise.
9272         (pass_duplicate_computed_gotos::execute): Likewise.
9273         (add_reg_crossing_jump_notes): Rename to...
9274         (update_crossing_jump_flags): ...this.
9275         (pass_partition_blocks::execute): Update accordingly.
9277 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
9279         * tree.h: Remove extraneous template <>.
9281 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
9283         * ipa.c (symtab_remove_unreachable_nodes): Remove
9284         symbol from comdat group if its body was eliminated.
9285         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
9286         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
9287         (symtab_unregister_node): ... this one.
9288         (verify_symtab_base): More strict checking of comdats.
9289         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
9291 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
9293         * tree-pass.h (make_pass_ipa_comdats): New pass.
9294         * timevar.def (TV_IPA_COMDATS): New timevar.
9295         * passes.def (pass_ipa_comdats): Add.
9296         * Makefile.in (OBJS): Add ipa-comdats.o
9297         * ipa-comdats.c: New file.
9299 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
9301         * ipa.c (update_visibility_by_resolution_info): New function.
9302         (function_and_variable_visibility): Use it.
9304 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
9306         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
9307         New functions.
9308         (FOR_EACH_DEFINED_SYMBOL): New macro.
9309         (varpool_first_static_initializer, varpool_next_static_initializer,
9310         varpool_first_defined_variable, varpool_next_defined_variable):
9311         Fix comments.
9312         (symtab_in_same_comdat_p): Correctly deal with inline functions.
9314 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
9316         * ggc-page.c (ggc_handle_finalizers): Add comment.
9318 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
9320         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
9321         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
9322         (ggc_internal_cleared_alloc): Likewise.
9323         * ggc-page.c (finalizer): New class.
9324         (vec_finalizer): Likewise.
9325         (globals::finalizers): New member.
9326         (globals::vec_finalizers): Likewise.
9327         (ggc_internal_alloc): Record the finalizer if any for the block being
9328         allocated.
9329         (ggc_handle_finalizers): New function.
9330         (ggc_collect): Call ggc_handle_finalizers.
9331         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
9332         finalizer.
9333         (ggc_internal_cleared_alloc): Likewise.
9334         (finalize): New function.
9335         (need_finalization_p): Likewise.
9336         (ggc_alloc): Install the type's destructor as the finalizer if it
9337         might do something.
9338         (ggc_cleared_alloc): Likewise.
9339         (ggc_vec_alloc): Likewise.
9340         (ggc_cleared_vec_alloc): Likewise.
9342 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
9344         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
9346 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
9348         * alias.c (record_alias_subset): Adjust.
9349         * bitmap.c (bitmap_element_allocate): Likewise.
9350         (bitmap_gc_alloc_stat): Likewise.
9351         * cfg.c (init_flow): Likewise.
9352         (alloc_block): Likewise.
9353         (unchecked_make_edge): Likewise.
9354         * cfgloop.c (alloc_loop): Likewise.
9355         (flow_loops_find): Likewise.
9356         (rescan_loop_exit): Likewise.
9357         * cfgrtl.c (init_rtl_bb_info): Likewise.
9358         * cgraph.c (insert_new_cgraph_node_version): Likewise.
9359         (cgraph_allocate_node): Likewise.
9360         (cgraph_create_edge_1): Likewise.
9361         (cgraph_allocate_init_indirect_info): Likewise.
9362         * cgraphclones.c (cgraph_clone_edge): Likewise.
9363         * cgraphunit.c (add_asm_node): Likewise.
9364         (init_lowered_empty_function): Likewise.
9365         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
9366         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
9367         (alpha_use_linkage): Likewise.
9368         * config/arc/arc.c (arc_init_machine_status): Likewise.
9369         * config/arm/arm.c (arm_init_machine_status): Likewise.
9370         * config/avr/avr.c (avr_init_machine_status): Likewise.
9371         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
9372         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
9373         * config/cris/cris.c (cris_init_machine_status): Likewise.
9374         * config/darwin.c (machopic_indirection_name): Likewise.
9375         (darwin_build_constant_cfstring): Likewise.
9376         (darwin_enter_string_into_cfstring_table): Likewise.
9377         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
9378         * config/frv/frv.c (frv_init_machine_status): Likewise.
9379         * config/i386/i386.c (get_dllimport_decl): Likewise.
9380         (ix86_init_machine_status): Likewise.
9381         (assign_386_stack_local): Likewise.
9382         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
9383         (i386_pe_maybe_record_exported_symbol): Likewise.
9384         (i386_pe_record_stub): Likewise.
9385         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
9386         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
9387         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
9388         (m32c_note_pragma_address): Likewise.
9389         * config/mep/mep.c (mep_init_machine_status): Likewise.
9390         (mep_note_pragma_flag): Likewise.
9391         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
9392         (mips16_local_alias): Likewise.
9393         (mips_init_machine_status): Likewise.
9394         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
9395         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
9396         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
9397         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
9398         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
9399         * config/pa/pa.c (pa_init_machine_status): Likewise.
9400         (pa_get_deferred_plabel): Likewise.
9401         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
9402         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
9403         (rs6000_init_machine_status): Likewise.
9404         (output_toc): Likewise.
9405         * config/s390/s390.c (s390_init_machine_status): Likewise.
9406         * config/score/score.c (score_output_external): Likewise.
9407         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
9408         * config/spu/spu.c (spu_init_machine_status): Likewise.
9409         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
9410         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
9411         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
9412         * coverage.c (coverage_end_function): Likewise.
9413         * dbxout.c (dbxout_init): Likewise.
9414         * doc/gty.texi: Don't mention variable_size attribute.
9415         * dwarf2cfi.c (new_cfi): Adjust.
9416         (new_cfi_row): Likewise.
9417         (copy_cfi_row): Likewise.
9418         (create_cie_data): Likewise.
9419         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
9420         (new_loc_descr): Likewise.
9421         (find_AT_string_in_table): Likewise.
9422         (add_addr_table_entry): Likewise.
9423         (new_die): Likewise.
9424         (add_var_loc_to_decl): Likewise.
9425         (clone_die): Likewise.
9426         (clone_as_declaration): Likewise.
9427         (break_out_comdat_types): Likewise.
9428         (new_loc_list): Likewise.
9429         (add_loc_descr_to_each): Likewise.
9430         (add_location_or_const_value_attribute): Likewise.
9431         (add_linkage_name): Likewise.
9432         (lookup_filename): Likewise.
9433         (dwarf2out_var_location): Likewise.
9434         (new_line_info_table): Likewise.
9435         (dwarf2out_init): Likewise.
9436         (mem_loc_descriptor): Likewise.
9437         (loc_descriptor): Likewise.
9438         (add_const_value_attribute): Likewise.
9439         (tree_add_const_value_attribute): Likewise.
9440         (comp_dir_string): Likewise.
9441         (dwarf2out_vms_debug_main_pointer): Likewise.
9442         (string_cst_pool_decl): Likewise.
9443         * emit-rtl.c (set_mem_attrs): Likewise.
9444         (get_reg_attrs): Likewise.
9445         (start_sequence): Likewise.
9446         (init_emit): Likewise.
9447         (init_emit_regs): Likewise.
9448         * except.c (init_eh_for_function): Likewise.
9449         (gen_eh_region): Likewise.
9450         (gen_eh_region_catch): Likewise.
9451         (gen_eh_landing_pad): Likewise.
9452         (add_call_site): Likewise.
9453         * function.c (add_frame_space): Likewise.
9454         (insert_temp_slot_address): Likewise.
9455         (assign_stack_temp_for_type): Likewise.
9456         (get_hard_reg_initial_val): Likewise.
9457         (allocate_struct_function): Likewise.
9458         (prepare_function_start): Likewise.
9459         (types_used_by_var_decl_insert): Likewise.
9460         * gengtype.c (variable_size_p): Remove function.
9461         (enum alloc_quantity): Remove enum.
9462         (write_typed_alloc_def): Remove function.
9463         (write_typed_struct_alloc_def): Likewise.
9464         (write_typed_typedef_alloc_def): Likewise.
9465         (write_typed_alloc_defns): Likewise.
9466         (main): Adjust.
9467         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
9468         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
9469         * ggc.h (ggc_alloc): new function.
9470         (ggc_cleared_alloc): Likewise.
9471         (ggc_vec_alloc): Template on type of vector element, and remove
9472         element size argument.
9473         (ggc_cleared_vec_alloc): Likewise.
9474         * gimple.c (gimple_build_omp_for): Adjust.
9475         (gimple_copy): Likewise.
9476         * ipa-cp.c (get_replacement_map): Likewise.
9477         (find_aggregate_values_for_callers_subset): Likewise.
9478         (known_aggs_to_agg_replacement_list): Likewise.
9479         * ipa-devirt.c (get_odr_type): Likewise.
9480         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
9481         (read_agg_replacement_chain): Likewise.
9482         * loop-iv.c (get_simple_loop_desc): Likewise.
9483         * lto-cgraph.c (input_node_opt_summary): Likewise.
9484         * lto-section-in.c (lto_new_in_decl_state): Likewise.
9485         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
9486         (input_eh_region): Likewise.
9487         (input_eh_lp): Likewise.
9488         (input_cfg): Likewise.
9489         * optabs.c (set_optab_libfunc): Likewise.
9490         (init_tree_optimization_optabs): Likewise.
9491         (set_conv_libfunc): Likewise.
9492         * passes.c (do_per_function_toporder): Likewise.
9493         * rtl.h: Don't use variable_size gty attribute.
9494         * sese.c (if_region_set_false_region): Adjust.
9495         * stringpool.c (gt_pch_save_stringpool): Likewise.
9496         * target-globals.c (save_target_globals): Likewise.
9497         * toplev.c (general_init): Likewise.
9498         * trans-mem.c (record_tm_replacement): Likewise.
9499         (split_bb_make_tm_edge): Likewise.
9500         * tree-cfg.c (move_sese_region_to_fn): Likewise.
9501         * tree-data-ref.h (lambda_vector_new): Likewise.
9502         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
9503         * tree-iterator.c (tsi_link_before): Likewise.
9504         (tsi_link_after): Likewise.
9505         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
9506         * tree-ssa-loop-niter.c (record_estimate): Likewise.
9507         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
9508         * tree-ssa-operands.h: Don't use variable_size gty attribute.
9509         * tree-ssa.c (init_tree_ssa): Adjust.
9510         * tree-ssanames.c (set_range_info): Likewise.
9511         (get_ptr_info): Likewise.
9512         (duplicate_ssa_name_ptr_info): Likewise.
9513         (duplicate_ssa_name_range_info): Likewise.
9514         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
9515         (unpack_ts_fixed_cst_value_fields): Likewise.
9516         * tree.c (build_fixed): Likewise.
9517         (build_real): Likewise.
9518         (build_string): Likewise.
9519         (decl_priority_info): Likewise.
9520         (decl_debug_expr_insert): Likewise.
9521         (decl_value_expr_insert): Likewise.
9522         (decl_debug_args_insert): Likewise.
9523         (type_hash_add): Likewise.
9524         (build_omp_clause): Likewise.
9525         * ubsan.c (decl_for_type_insert): Likewise.
9526         * varasm.c (get_unnamed_section): Likewise.
9527         (get_noswitch_section): Likewise.
9528         (get_section): Likewise.
9529         (get_block_for_section): Likewise.
9530         (create_block_symbol): Likewise.
9531         (build_constant_desc): Likewise.
9532         (create_constant_pool): Likewise.
9533         (force_const_mem): Likewise.
9534         (record_tm_clone_pair): Likewise.
9535         * varpool.c (varpool_create_empty_node): Likewise.
9537 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
9539         * dwarf2out.c (tree_add_const_value_attribute): Call
9540         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
9541         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
9542         instead of ggc_internal_<x>alloc_stat.
9543         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
9544         (ggc_realloc): Likewise.
9545         * ggc-none.c (ggc_internal_alloc): Likewise.
9546         (ggc_internal_cleared_alloc): Likewise.
9547         * ggc-page.c: Likewise.
9548         * ggc.h (ggc_internal_alloc_stat): Likewise.
9549         (ggc_internal_alloc): Remove macro.
9550         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
9551         (ggc_internal_cleared_alloc): Remove macro.
9552         (GGC_RESIZEVEC): Adjust.
9553         (ggc_resizevar): Remove macro.
9554         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
9555         (ggc_internal_cleared_vec_alloc_stat): Likewise.
9556         (ggc_internal_vec_cleared_alloc): Remove macro.
9557         (ggc_alloc_atomic_stat): Drop _stat suffix.
9558         (ggc_alloc_atomic): Remove macro.
9559         (ggc_alloc_cleared_atomic): Remove macro.
9560         (ggc_alloc_string_stat): Drop _stat suffix.
9561         (ggc_alloc_string): Remove macro.
9562         (ggc_alloc_rtx_def_stat): Adjust.
9563         (ggc_alloc_tree_node_stat): Likewise.
9564         (ggc_alloc_cleared_tree_node_stat): Likewise.
9565         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
9566         (ggc_alloc_cleared_simd_clone_stat): Likewise.
9567         * gimple.c (gimple_build_omp_for): Likewise.
9568         (gimple_copy): Likewise.
9569         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
9570         * toplev.c (realloc_for_line_map): Adjust.
9571         * tree-data-ref.h (lambda_vector_new): Likewise.
9572         * tree-phinodes.c (allocate_phi_node): Likewise.
9573         * tree.c (grow_tree_vec_stat): Likewise.
9574         * vec.h (va_gc::reserve): Adjust.
9576 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
9578         * config/microblaze/microblaze.c (break_handler): New Declaration.
9579         (microblaze_break_function_p,microblaze_is_break_handler): New.
9580         (compute_frame_size): Use microblaze_break_function_p.
9581         Add the test of break_handler.
9582         (microblaze_function_prologue) : Add the test of variable
9583         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
9584         (microblaze_function_epilogue) : Add the test of break_handler.
9585         (microblaze_globalize_label) : Add the test of break_handler.
9586         Check the name by BREAK_HANDLER_NAME.
9588         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
9590         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
9591         microblaze_is_break_handler test.
9592         (call_internal1,call_value_intern): Use microblaze_break_function_p.
9593         Use SYMBOL_REF_DECL.
9595         * config/microblaze/microblaze-protos.h
9596         (microblaze_break_function_p,microblaze_is_break_handler):
9597         New Declaration.
9599         * doc/extend.texi (MicroBlaze break_handler Functions): Document
9600         new MicroBlaze break_handler functions.
9602 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
9604         * doc/extend.texi (Size of an asm): Move node text according
9605         to its @menu entry position.
9607 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
9609         PR tree-optimization/61140
9610         PR tree-optimization/61150
9611         PR tree-optimization/61197
9612         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
9614 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
9616         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
9618 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
9620         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
9621         __SIZEOF_INT128__ is defined.
9623 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
9625         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
9626         (rs6000_delegitimize_address): Use it.
9628 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
9630         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
9631         inplace argument.  Store the new address in the original MEM when true.
9632         * emit-rtl.c (change_address_1): Likewise.
9633         (adjust_address_1, adjust_automodify_address_1, offset_address):
9634         Update accordingly.
9635         * rtl.h (plus_constant): Add an inplace argument.
9636         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
9637         when true.  Avoid generating (plus X (const_int 0)).
9638         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
9639         in-place.  Pass true to plus_constant.
9640         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
9642 2014-05-16  Dehao Chen  <dehao@google.com>
9644         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
9646 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
9648         PR target/54089
9649         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
9650         patterns.
9651         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
9653 2014-05-16  Dehao Chen  <dehao@google.com>
9655         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
9656         optimize_function_for_size_p.
9657         * regs.h (REG_FREQ_FROM_BB): Likewise.
9659 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
9661         PR target/51244
9662         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
9663         negt_reg_operand cases.
9664         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
9665         predicate.
9666         * config/sh/predicates.md (cbranch_treg_value): Simplify.
9668 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
9670         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
9671         target variants.
9673 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
9675         Revert:
9676         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
9678         * tree-cfg.c (dump_function_to_file): Dump the return type of
9679         functions, in a line to itself before the function body, mimicking
9680         the layout of a C function.
9682 2014-05-16  Dehao Chen  <dehao@google.com>
9684         * cfghooks.c (make_forwarder_block): Use direct computation to
9685         get fall-through edge's count and frequency.
9687 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
9689         * config/arc/arc.c (arc_init): Fix typo in error message.
9690         * config/i386/i386.c (ix86_expand_builtin): Likewise.
9691         (split_stack_prologue_scratch_regno): Likewise.
9692         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
9693         word from error message.
9695 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
9697         * ira-costs.c: Fix typo in comment.
9699 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
9701         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
9703 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
9705         * varpool.c (dump_varpool_node): Dump write-only flag.
9706         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
9707         write-only flag.
9708         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
9709         write-only variables.
9710         * ipa.c (process_references): New function.
9711         (set_readonly_bit): New function.
9712         (set_writeonly_bit): New function.
9713         (clear_addressable_bit): New function.
9714         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
9715         fix handling of aliases.
9716         * cgraph.h (struct varpool_node): Add writeonly flag.
9718 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
9720         PR rtl-optimization/60969
9721         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
9722         Calculate costs for this case.
9724 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
9726         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
9727         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
9729 2014-05-16  Richard Biener  <rguenther@suse.de>
9731         PR tree-optimization/61194
9732         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
9733         bool patterns ending in a COND_EXPR.
9735 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9737         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
9739 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9741         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
9742         where we were unable to cost an RTX.
9744 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9746         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
9747         HIGH, LO_SUM.
9749 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9750             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9752         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
9754 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9755             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9757         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
9758         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
9760 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9761             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9763         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
9764         operators.
9766 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9767             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9769         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
9770         DIV/MOD.
9772 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9773             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9775         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
9776         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
9778 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9779             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9781         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
9782         rotates and shifts.
9784 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9785             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9787         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
9788         ZERO_EXTEND and SIGN_EXTEND better.
9790 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9791             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9793         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
9794         logical operations.
9796 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9797             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9799         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
9800         costs when costing loads and stores to memory.
9802 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9803             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
9805         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
9806         for SET RTX.
9808 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9810         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
9812 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9813             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9815         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
9816         to...
9817         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
9818         well formed.
9819         (aarch64_rtx_mult_cost): New.
9820         (aarch64_rtx_costs): Use it, refactor as appropriate.
9822 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9823             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9825         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
9826         emit instructions, return number of instructions which would
9827         be emitted.
9828         (aarch64_add_constant): Update call to aarch64_build_constant.
9829         (aarch64_output_mi_thunk): Likewise.
9830         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
9831         a CONST_DOUBLE.
9833 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9835         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
9836         (TARGET_RTX_COSTS): Call it.
9838 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9840         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
9841         (cortexa57_vector_cost): Likewise.
9842         (cortexa57_tunings): Use them.
9844 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
9846         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
9847         (cpu_addrcost_table): Use it.
9848         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
9849         (aarch64_address_cost): Rewrite using aarch64_classify_address,
9850         move it.
9852 2014-05-16  Richard Biener  <rguenther@suse.de>
9854         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
9855         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
9856         (visit_phi): Ignore edges marked as not executable.
9857         (class cond_dom_walker): New.
9858         (cond_dom_walker::before_dom_children): Value-number
9859         control statements and mark successor edges as not
9860         executable if possible.
9861         (run_scc_vn): First walk all control statements in
9862         dominator order, marking edges as not executable.
9863         * tree-inline.c (copy_edges_for_bb): Be not confused
9864         about random edge flags.
9866 2014-05-16  Richard Biener  <rguenther@suse.de>
9868         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
9870 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
9872         PR target/61193
9873         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
9874         (__TM_simple_begin): Use it.
9875         (__TM_begin): Likewise.
9877 2014-05-15  Martin Jambor  <mjambor@suse.cz>
9879         PR ipa/61085
9880         * ipa-prop.c (update_indirect_edges_after_inlining): Check
9881         type_preserved flag when the indirect edge is polymorphic.
9883 2014-05-15  Martin Jambor  <mjambor@suse.cz>
9885         PR tree-optimization/61090
9886         * tree-sra.c (sra_modify_expr): Pass the current gsi to
9887         build_ref_for_model.
9889 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9891         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
9892         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
9894 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
9896         PR tree-optimization/61158
9897         * fold-const.c (fold_binary_loc): If X is zero-extended and
9898         shiftc >= prec, make sure zerobits is all ones instead of
9899         invoking undefined behavior.
9901 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
9903         * regcprop.h: New file.
9904         * regcprop.c (skip_debug_insn_p): New decl.
9905         (replace_oldest_value_reg): Check skip_debug_insn_p.
9906         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
9907         * shrink-wrap.c: Include regcprop.h.
9908         (prepare_shrink_wrap): Call
9909         copyprop_hardreg_forward_bb_without_debug_insn.
9911 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
9913         * shrink-wrap.h: Update comment.
9914         * shrink-wrap.c: Update comment.
9915         (next_block_for_reg): Rename to live_edge_for_reg.
9916         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
9917         (move_insn_for_shrink_wrap): Split live_edge.
9918         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
9920 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
9922         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
9923         Delete.
9924         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
9925         * config/sparc/sparc.md (fptype_ut699): New attribute.
9926         (in_branch_delay): Return false if -mfix-ut699 is specified and
9927         fptype_ut699 is set to single.
9928         (truncdfsf2): Add fptype_ut699 attribute.
9929         (fix_truncdfsi2): Likewise.
9930         (floatsisf2): Change fptype attribute.
9931         (fix_truncsfsi2): Likewise.
9932         (negtf2_notv9): Delete.
9933         (negtf2_v9): Likewise.
9934         (negtf2_hq): New instruction.
9935         (negtf2): New instruction and splitter.
9936         (negdf2_notv9): Rewrite.
9937         (abstf2_notv9): Delete.
9938         (abstf2_hq_v9): Likewise.
9939         (abstf2_v9): Likewise.
9940         (abstf2_hq): New instruction.
9941         (abstf2): New instruction and splitter.
9942         (absdf2_notv9): Rewrite.
9944 2014-05-14  Cary Coutant  <ccoutant@google.com>
9946         PR debug/61013
9947         * opts.c (common_handle_option): Don't special-case "-g".
9948         (set_debug_level): Default to at least level 2 with "-g".
9950 2014-05-14  DJ Delorie  <dj@redhat.com>
9952         * config/msp430/msp430.c (msp430_builtin): Add
9953         MSP430_BUILTIN_DELAY_CYCLES.
9954         (msp430_init_builtins): Register void __delay_cycles(long long).
9955         (msp430_builtin_decl): Add it.
9956         (cg_magic_constant): New.
9957         (msp430_expand_delay_cycles): New.
9958         (msp430_expand_builtin): Call it.
9959         (msp430_print_operand_raw): Change integer printing from "int" to
9960         HOST_WIDE_INT.
9961         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
9962         (delay_cycles_start): New.
9963         (delay_cycles_end): New.
9964         (delay_cycles_32): New.
9965         (delay_cycles_32x): New.
9966         (delay_cycles_16): New.
9967         (delay_cycles_16x): New.
9968         (delay_cycles_2): New.
9969         (delay_cycles_1): New.
9970         * doc/extend.texi: Document __delay_cycles().
9972 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
9974         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
9975         length attribute computation.
9977 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
9979         PR debug/61188
9980         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
9982 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
9984         PR target/61084
9985         * config/sparc/sparc.md: Fix types of low and high in DI constant
9986         splitter.  Use gen_int_mode in some other splitters.
9988 2014-05-14  Martin Jambor  <mjambor@suse.cz>
9990         PR ipa/60897
9991         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
9993 2014-05-14  James Norris  <jnorris@codesourcery.com>
9995         * omp-low.c (expand_parallel_call): Remove shadow variable.
9996         (expand_omp_taskreg): Likewise.
9998 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
10000         * common/config/i386/i386-common.c
10001         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
10002         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
10003         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
10004         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
10005         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
10006         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
10007         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
10008         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
10009         xsavecintrin.h, xsavesintrin.h.
10010         (x86_64-*-*): Ditto.
10011         * config/i386/clflushoptintrin.h: New.
10012         * config/i386/xsavecintrin.h: Ditto.
10013         * config/i386/xsavesintrin.h: Ditto.
10014         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
10015         (bit_XSAVES): Ditto.
10016         (bit_XSAVES): Ditto.
10017         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
10018         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
10019         -mno-clflushopt.
10020         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
10021         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
10022         OPTION_MASK_ISA_XSAVES.
10023         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
10024         -mxsavec, -mxsaves.
10025         (PTA_CLFLUSHOPT) Define.
10026         (PTA_XSAVEC): Ditto.
10027         (PTA_XSAVES): Ditto.
10028         (ix86_option_override_internal): Handle new options.
10029         (ix86_valid_target_attribute_inner_p): Ditto.
10030         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
10031         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
10032         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
10033         (bdesc_special_args): Add __builtin_ia32_xsaves,
10034         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
10035         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
10036         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
10037         (ix86_expand_builtin): Handle new builtins.
10038         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
10039         (TARGET_CLFLUSHOPT_P): Ditto.
10040         (TARGET_XSAVEC): Ditto.
10041         (TARGET_XSAVEC_P): Ditto.
10042         (TARGET_XSAVES): Ditto.
10043         (TARGET_XSAVES_P): Ditto.
10044         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
10045         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
10046         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
10047         (ANY_XRSTOR): New.
10048         (ANY_XRSTOR64): Ditto.
10049         (xrstor): Ditto.
10050         (xrstor): Change into <xrstor>.
10051         (xrstor_rex64): Change into <xrstor>_rex64.
10052         (xrstor64): Change into <xrstor>64
10053         (clflushopt): New.
10054         * config/i386/i386.opt (mclflushopt): New.
10055         (mxsavec): Ditto.
10056         (mxsaves): Ditto.
10057         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
10058         xsavecintrin.h.
10059         * doc/invoke.texi: Document new options.
10061 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
10063         PR rtl-optimization/60866
10064         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
10065         Default it to -1.  Pass it down to init_simplejump_data.
10066         (init_simplejump_data): New parameter old_seqno.  Pass it down
10067         to get_seqno_for_a_jump.
10068         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
10069         initializing new jump seqno as a last resort.  Add comment.
10070         (sel_redirect_edge_and_branch): Save old seqno of the conditional
10071         jump and pass it down to sel_init_new_insn.
10072         (sel_redirect_edge_and_branch_force): Likewise.
10074 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
10076         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
10077         shifted values to avoid build warning.
10079 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
10081         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
10082         * cfgrtl.c (rtl_merge_blocks): Fix comment.
10083         (cfg_layout_merge_blocks): Likewise.
10084         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
10086 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
10088         PR rtl-optimization/60901
10089         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
10090         bb predecessor belongs to the same scheduling region.  Adjust comment.
10092 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
10094         * doc/sourcebuild.texi: (dfp_hw): Document.
10095         (p8vector_hw): Likewise.
10096         (powerpc_eabi_ok): Likewise.
10097         (powerpc_elfv2): Likewise.
10098         (powerpc_htm_ok): Likewise.
10099         (ppc_recip_hw): Likewise.
10100         (vsx_hw): Likewise.
10102 2014-05-13  Cary Coutant  <ccoutant@google.com>
10104         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
10106 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
10108         * gengtype-parse.c (require3): Eliminate in favor of...
10109         (require4): New.
10110         (require_template_declaration): Update to support optional single *
10111         on a type.
10113         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
10114         (create_user_defined_type): Handle a single level of explicit
10115         pointerness within template arguments.
10116         (struct write_types_data): Add field "kind".
10117         (filter_type_name): Handle "*" character.
10118         (write_user_func_for_structure_ptr): Require a write_types_data
10119         rather than just a prefix string, so that we can look up the kind
10120         of the wtd and use it as an index into wrote_user_func_for_ptr,
10121         ensuring that such functions are written at most once.  Support
10122         subclasses by invoking the marking function of the ultimate base class.
10123         (write_user_func_for_structure_body): Require a write_types_data
10124         rather than just a prefix string, so that we can pass this to
10125         write_user_func_for_structure_ptr.
10126         (write_func_for_structure): Likewise.
10127         (ggc_wtd): Add initializer of new "kind" field.
10128         (pch_wtd): Likewise.
10130         * gengtype.h (enum write_types_kinds): New.
10131         (struct type): Add field wrote_user_func_for_ptr to the "s"
10132         union member.
10134 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
10136         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
10137         instead of const_binop.
10138         (fold_binary_loc): Likewise.
10140 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
10142         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
10143         calculation to match get_ref_base_and_extent.
10145 2014-05-13  Catherine Moore  <clm@codesourcery.com>
10146             Sandra Loosemore  <sandra@codesourcery.com>
10148         * configure.ac: Fix assembly for explicit JALR relocation check.
10149         * configure: Regenerate.
10151 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10153         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
10154         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
10155         Remove associated type declarations and initialisations.
10156         (arm_expand_neon_builtin): Likewise.
10157         (neon_emit_pair_result_insn): Delete.
10158         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
10159         * config/arm/neon.md (neon_vtrn<mode>): Delete.
10160         (neon_vzip<mode>): Likewise.
10161         (neon_vuzp<mode>): Likewise.
10163 2014-05-13  Richard Biener  <rguenther@suse.de>
10165         PR ipa/60973
10166         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
10167         it needs revisiting whether the call still may be tail-called.
10169 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
10171         * rtl.def (SYMBOL_REF): Remove middle "0" field.
10172         * rtl.h (block_symbol): Reduce number of fields to 2.
10173         (rtx_def): Add u2.symbol_ref_flags.
10174         (SYMBOL_REF_FLAGS): Use it.
10175         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
10176         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
10177         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
10178         Lower index of SYMBOL_REF_DATA.
10179         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
10180         Print SYMBOL_REF_FLAGS at the same time.
10181         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
10183 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
10185         * rtl.def (VAR_LOCATION): Remove "i" field.
10186         * rtl.h (rtx_def): Add u2.var_location_status.
10187         (PAT_VAR_LOCATION_STATUS): Use it.
10188         (gen_rtx_VAR_LOCATION): Declare.
10189         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
10190         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
10191         * var-tracking.c (emit_note_insn_var_location): Remove casts.
10193 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
10195         * rtl.def (scratch): Fix outdated comment and remove "0" field.
10196         * gengtype.c (adjust_field_rtx_def): Update accordingly.
10198 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
10200         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
10201         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
10202         * rtl.h (rtx_def): Add insn_uid to u2 field.
10203         (RTX_FLAG_CHECK8): Delete in favor of...
10204         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
10205         (INSN_DELETED_P): Update accordingly.
10206         (INSN_UID): Use u2.insn_uid.
10207         (INSN_CHAIN_CODE_P): Define.
10208         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
10209         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
10210         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
10211         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
10212         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
10213         indices accordingly.
10214         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
10215         Update indices for insn-chain rtxes.
10216         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
10217         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
10218         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
10219         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
10220         * combine.c (try_combine): Likewise.
10221         * ira.c (setup_prohibited_mode_move_regs): Likewise.
10223 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
10225         * rtl.def (REG): Remove middle field.
10226         * rtl.h (rtx_def): Add orignal_regno to u2.
10227         (ORIGINAL_REGNO): Use it instead of field 1.
10228         (REG_ATTRS): Lower field index accordingly.
10229         * gengtype.c (adjust_field_rtx_def): Remove handling of
10230         ORIGINAL_REGNO.  Move REG_ATTRS index down.
10231         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
10232         code that prints the REGNO.
10234 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
10236         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
10237         GENERATOR_FILE.
10239 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
10241         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
10243 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
10245         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
10246         (alloc_iv): Lower base expressions containing ADDR_EXPR.
10248 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
10250         * config/aarch64/aarch64-protos.h
10251         (aarch64_hard_regno_caller_save_mode): New prototype.
10252         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
10253         New function.
10254         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
10256 2014-05-13  Christian Bruel  <christian.bruel@st.com>
10258         * target.def (mode_switching): New hook vector.
10259         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
10260         (mode_exit, modepriority_to_mode): Likewise.
10261         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
10262         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
10263         * target.h: Include tm.h and hard-reg-set.h.
10264         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
10265         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
10266         * doc/tm.texi Regenerate.
10267         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
10268         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
10269         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
10270         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
10271         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
10272         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
10273         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
10274         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
10275         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
10276         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
10277         (ix86_emit_mode_set): Hookify.
10278         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
10279         Delete.
10280         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
10281         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
10282         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
10283         (epiphany_mode_priority_to_mode): Remove declaration.
10284         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
10285         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
10286         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
10287         Likewise.
10288         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
10289         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
10290         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
10292 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
10294         PR target/61060
10295         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
10296         is const0_rtx, return immediately.  Don't test count == 0 when
10297         it is always true.
10299 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
10301         * Makefile.in: add shrink-wrap.o.
10302         * config/i386/i386.c: include "shrink-wrap.h"
10303         * function.c: Likewise.
10304         (requires_stack_frame_p, next_block_for_reg,
10305         move_insn_for_shrink_wrap, prepare_shrink_wrap,
10306         dup_block_and_redirect): Move to shrink-wrap.c
10307         (thread_prologue_and_epilogue_insns): Extract three code segments
10308         as functions in shrink-wrap.c
10309         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
10310         shrink-wrap.h
10311         * shrink-wrap.c: New file.
10312         * shrink-wrap.h: New file.
10314 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
10316         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
10317         reference to Solaris.
10319 2014-05-12  Mike Stump  <mikestump@comcast.net>
10321         PR other/31778
10322         * genattrtab.c (filename): Add.
10323         (convert_set_attr_alternative): Improve error message.
10324         (check_defs): Restore read_md_filename for error messages.
10325         (gen_insn): Save filename.
10327 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
10329         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
10330         -fno-local-ivars and -fivar-visibility.
10331         * c-family/c.opt: Make -Wshadow also implicitly enable
10332         -Wshadow-ivar.
10334 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
10336         * doc/tm.texi: Remove reference to deleted macro.
10337         * doc/tm.texi.in: Likewise.
10339 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
10341         PR target/60991
10342         * config/avr/avr.c (avr_out_store_psi): Use correct constant
10343         to restore Y.
10345 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
10347         PR libgcc/61152
10348         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
10349         * config/arm/aout.h (License): Same.
10350         * config/arm/bpabi.h (License): Same.
10351         * config/arm/elf.h (License): Same.
10352         * config/arm/linux-elf.h (License): Same.
10353         * config/arm/linux-gas.h (License): Same.
10354         * config/arm/netbsd-elf.h (License): Same.
10355         * config/arm/uclinux-eabi.h (License): Same.
10356         * config/arm/uclinux-elf.h (License): Same.
10357         * config/arm/vxworks.h (License): Same.
10359 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
10361         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
10362         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
10363         number of operands to 3.
10364         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
10365         * tree-nested.c (convert_nonlocal_omp_clauses,
10366         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
10367         * gimplify.c (gimplify_scan_omp_clauses): Handle
10368         OMP_CLAUSE_LINEAR_STMT.
10369         * omp-low.c (lower_rec_input_clauses): Fix typo.
10370         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
10371         cast between Fortran boolean_type_node and C _Bool if
10372         needed.
10374 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
10376         PR tree-optimization/61136
10377         * wide-int.h (multiple_of_p): Define a version that doesn't return
10378         the quotient.
10379         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
10380         integer_zerop/const_binop pair.
10381         (multiple_of_p): Likewise, converting both operands to widest_int
10382         precision.
10384 2014-05-09  Teresa Johnson  <tejohnson@google.com>
10386         * cgraphunit.c (analyze_functions): Use correct dump file.
10388 2014-05-09  Florian Weimer  <fweimer@redhat.com>
10390         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
10391         expand_used_vars.
10392         (stack_protect_return_slot_p): New function.
10393         (expand_used_vars): Call stack_protect_decl_p and
10394         stack_protect_return_slot_p for -fstack-protector-strong.
10396 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
10397         Andrew Haley <aph@redhat.com>
10398         Richard Sandiford <rdsandiford@googlemail.com>
10400         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
10401         pages.
10403 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
10405         PR middle-end/61111
10406         * fold-const.c (fold_binary_loc): Changed width of mask.
10408 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
10410         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
10411         unsigned int initializers for regno_in, regno_out.
10413 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
10415         PR target/61055
10416         * config/avr/avr.md (cc): Add new attribute set_vzn.
10417         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
10418         Set cc insn attribute to set_vzn instead of set_zn for alternatives
10419         with INC, DEC or NEG.
10420         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
10421         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
10422         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
10424 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10426         Revert:
10427         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10429         * wide-int.cc (UTItype): Define.
10430         (UDWtype): Define for appropriate W_TYPE_SIZE.
10432 2014-05-09  Richard Biener  <rguenther@suse.de>
10434         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
10435         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
10436         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
10437         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
10438         ssa_propagate): Adjust.
10440 2014-05-08  Jeff Law  <law@redhat.com>
10442         PR tree-optimization/61009
10443         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
10444         tri-state rather than a boolean.  When a block is too big to
10445         thread through, inform caller via negative return value.
10446         (thread_across_edge): If a block was too big for normal threading,
10447         then it's too big for a joiner too, so remove temporary equivalences
10448         and return immediately.
10450 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10451             Matthias Klose  <doko@ubuntu.com>
10453         PR driver/61106
10454         * optc-gen.awk: Fix option handling for -Wunused-parameter.
10456 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
10458         PR target/59952
10459         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
10461 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
10463         PR target/61092
10464         * config/alpha/alpha.c: Include gimple-iterator.h.
10465         (alpha_gimple_fold_builtin): New function.  Move
10466         ALPHA_BUILTIN_UMULH folding from ...
10467         (alpha_fold_builtin): ... here.
10468         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
10470 2014-05-08  Wei Mi  <wmi@google.com>
10472         PR target/58066
10473         * config/i386/i386.c (ix86_compute_frame_layout): Update
10474         preferred_stack_boundary for call, expanded from tls descriptor.
10475         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
10476         to depend on SP register.
10477         (*tls_local_dynamic_base_32_gnu): Ditto.
10478         (*tls_local_dynamic_32_once): Ditto.
10479         (tls_global_dynamic_64_<mode>): Set
10480         ix86_tls_descriptor_calls_expanded_in_cfun.
10481         (tls_local_dynamic_base_64_<mode>): Ditto.
10482         (tls_global_dynamic_32): Set
10483         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
10484         to depend on SP register.
10485         (tls_local_dynamic_base_32): Ditto.
10487 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10489         * config/arm/arm_neon.h: Update comment.
10490         * config/arm/neon-docgen.ml: Delete.
10491         * config/arm/neon-gen.ml: Delete.
10492         * doc/arm-neon-intrinsics.texi: Update comment.
10494 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10496         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
10497         and v4sf versions.
10498         (vand, vorr, veor, vorn, vbic): Remove.
10499         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
10500         iterator.
10501         (neon_vsub_unspec): Likewise.
10502         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
10504 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10506         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
10507         (vadd_s16): Likewise.
10508         (vadd_s32): Likewise.
10509         (vadd_f32): Likewise.
10510         (vadd_u8): Likewise.
10511         (vadd_u16): Likewise.
10512         (vadd_u32): Likewise.
10513         (vadd_s64): Likewise.
10514         (vadd_u64): Likewise.
10515         (vaddq_s8): Likewise.
10516         (vaddq_s16): Likewise.
10517         (vaddq_s32): Likewise.
10518         (vaddq_s64): Likewise.
10519         (vaddq_f32): Likewise.
10520         (vaddq_u8): Likewise.
10521         (vaddq_u16): Likewise.
10522         (vaddq_u32): Likewise.
10523         (vaddq_u64): Likewise.
10524         (vmul_s8): Likewise.
10525         (vmul_s16): Likewise.
10526         (vmul_s32): Likewise.
10527         (vmul_f32): Likewise.
10528         (vmul_u8): Likewise.
10529         (vmul_u16): Likewise.
10530         (vmul_u32): Likewise.
10531         (vmul_p8): Likewise.
10532         (vmulq_s8): Likewise.
10533         (vmulq_s16): Likewise.
10534         (vmulq_s32): Likewise.
10535         (vmulq_f32): Likewise.
10536         (vmulq_u8): Likewise.
10537         (vmulq_u16): Likewise.
10538         (vmulq_u32): Likewise.
10539         (vsub_s8): Likewise.
10540         (vsub_s16): Likewise.
10541         (vsub_s32): Likewise.
10542         (vsub_f32): Likewise.
10543         (vsub_u8): Likewise.
10544         (vsub_u16): Likewise.
10545         (vsub_u32): Likewise.
10546         (vsub_s64): Likewise.
10547         (vsub_u64): Likewise.
10548         (vsubq_s8): Likewise.
10549         (vsubq_s16): Likewise.
10550         (vsubq_s32): Likewise.
10551         (vsubq_s64): Likewise.
10552         (vsubq_f32): Likewise.
10553         (vsubq_u8): Likewise.
10554         (vsubq_u16): Likewise.
10555         (vsubq_u32): Likewise.
10556         (vsubq_u64): Likewise.
10557         (vand_s8): Likewise.
10558         (vand_s16): Likewise.
10559         (vand_s32): Likewise.
10560         (vand_u8): Likewise.
10561         (vand_u16): Likewise.
10562         (vand_u32): Likewise.
10563         (vand_s64): Likewise.
10564         (vand_u64): Likewise.
10565         (vandq_s8): Likewise.
10566         (vandq_s16): Likewise.
10567         (vandq_s32): Likewise.
10568         (vandq_s64): Likewise.
10569         (vandq_u8): Likewise.
10570         (vandq_u16): Likewise.
10571         (vandq_u32): Likewise.
10572         (vandq_u64): Likewise.
10573         (vorr_s8): Likewise.
10574         (vorr_s16): Likewise.
10575         (vorr_s32): Likewise.
10576         (vorr_u8): Likewise.
10577         (vorr_u16): Likewise.
10578         (vorr_u32): Likewise.
10579         (vorr_s64): Likewise.
10580         (vorr_u64): Likewise.
10581         (vorrq_s8): Likewise.
10582         (vorrq_s16): Likewise.
10583         (vorrq_s32): Likewise.
10584         (vorrq_s64): Likewise.
10585         (vorrq_u8): Likewise.
10586         (vorrq_u16): Likewise.
10587         (vorrq_u32): Likewise.
10588         (vorrq_u64): Likewise.
10589         (veor_s8): Likewise.
10590         (veor_s16): Likewise.
10591         (veor_s32): Likewise.
10592         (veor_u8): Likewise.
10593         (veor_u16): Likewise.
10594         (veor_u32): Likewise.
10595         (veor_s64): Likewise.
10596         (veor_u64): Likewise.
10597         (veorq_s8): Likewise.
10598         (veorq_s16): Likewise.
10599         (veorq_s32): Likewise.
10600         (veorq_s64): Likewise.
10601         (veorq_u8): Likewise.
10602         (veorq_u16): Likewise.
10603         (veorq_u32): Likewise.
10604         (veorq_u64): Likewise.
10605         (vbic_s8): Likewise.
10606         (vbic_s16): Likewise.
10607         (vbic_s32): Likewise.
10608         (vbic_u8): Likewise.
10609         (vbic_u16): Likewise.
10610         (vbic_u32): Likewise.
10611         (vbic_s64): Likewise.
10612         (vbic_u64): Likewise.
10613         (vbicq_s8): Likewise.
10614         (vbicq_s16): Likewise.
10615         (vbicq_s32): Likewise.
10616         (vbicq_s64): Likewise.
10617         (vbicq_u8): Likewise.
10618         (vbicq_u16): Likewise.
10619         (vbicq_u32): Likewise.
10620         (vbicq_u64): Likewise.
10621         (vorn_s8): Likewise.
10622         (vorn_s16): Likewise.
10623         (vorn_s32): Likewise.
10624         (vorn_u8): Likewise.
10625         (vorn_u16): Likewise.
10626         (vorn_u32): Likewise.
10627         (vorn_s64): Likewise.
10628         (vorn_u64): Likewise.
10629         (vornq_s8): Likewise.
10630         (vornq_s16): Likewise.
10631         (vornq_s32): Likewise.
10632         (vornq_s64): Likewise.
10633         (vornq_u8): Likewise.
10634         (vornq_u16): Likewise.
10635         (vornq_u32): Likewise.
10636         (vornq_u64): Likewise.
10638 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10640         * wide-int.cc (UTItype): Define.
10641         (UDWtype): Define for appropriate W_TYPE_SIZE.
10643 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
10645         PR tree-optimization/59100
10646         * tree-ssa-phiopt.c: Include tree-inline.h.
10647         (neutral_element_p, absorbing_element_p): New functions.
10648         (value_replacement): Handle conditional binary operations with a
10649         neutral or absorbing element.
10651 2014-05-08  Richard Biener  <rguenther@suse.de>
10653         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
10654         folding the expression.
10655         (valueize_expr): Remove.
10656         (visit_reference_op_load): Do not valueize the result of
10657         vn_get_expr_for.
10658         (simplify_binary_expression): Likewise.
10659         (simplify_unary_expression): Likewise.
10661 2014-05-08  Richard Biener  <rguenther@suse.de>
10663         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
10664         looking at TYPE_ARG_TYPES.
10666 2014-05-08  Richard Biener  <rguenther@suse.de>
10668         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
10669         pointer propagation special-case.
10671 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
10673         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
10674         core part of address expressions.
10676 2014-05-08  Alan Modra  <amodra@gmail.com>
10678         PR target/60737
10679         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
10680         loads and stores when -mno-strict-align at any alignment.
10681         (expand_block_clear): Similarly.  Also correct calculation of
10682         instruction count.
10684 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10686         PR middle-end/39246
10687         * tree-complex.c (expand_complex_move): Keep line info when expanding
10688         complex move.
10689         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
10690         of complex expression. Use new argument to display correct location
10691         for values coming from phi statement.
10692         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
10693         (warn_uninitialized_phi): Pass location of phi argument to
10694         warn_uninit.
10695         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
10696         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
10698 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
10700         * config/rs6000/predicates.md (indexed_address_mem): New.
10701         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
10702         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
10703         fpstore_ux, fpstore_u.
10704         (sign_extend, indexed, update): New.
10705         (cell_micro): Adjust.
10706         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
10707         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
10708         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
10709         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
10710         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
10711         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
10712         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
10713         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
10714         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
10715         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
10716         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
10717         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
10718         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
10719         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
10720         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
10722         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
10723         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
10724         *vsx_extract_<mode>_store): Adjust.
10725         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
10726         is_cracked_insn, insn_must_be_first_in_group,
10727         insn_must_be_last_in_group): Adjust.
10729         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
10730         Adjust.
10731         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
10732         ppc440-fpstore): Adjust.
10733         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
10734         ppc476-fpstore): Adjust.
10735         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
10736         ppc601-fpstore): Adjust.
10737         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
10738         Adjust.
10739         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
10740         Adjust.
10741         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
10742         ppc7450-fpstore): Adjust.
10743         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
10744         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
10745         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
10746         Adjust.
10747         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
10748         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
10749         cell-fpstore, cell-fpstore-update): Adjust.
10750         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
10751         ppce300c3_store, ppce300c3_fpstore): Adjust.
10752         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
10753         e500mc_fpstore): Adjust.
10754         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
10755         e500mc64_store, e500mc64_fpstore): Adjust.
10756         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
10757         e5500_fpstore): Adjust.
10758         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
10759         e6500_fpstore): Adjust.
10760         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
10761         Adjust.
10762         * config/rs6000/power4.md (power4-load, power4-load-ext,
10763         power4-load-ext-update, power4-load-ext-update-indexed,
10764         power4-load-update-indexed, power4-load-update, power4-fpload,
10765         power4-fpload-update, power4-store, power4-store-update,
10766         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
10767         Adjust.
10768         * config/rs6000/power5.md (power5-load, power5-load-ext,
10769         power5-load-ext-update, power5-load-ext-update-indexed,
10770         power5-load-update-indexed, power5-load-update, power5-fpload,
10771         power5-fpload-update, power5-store, power5-store-update,
10772         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
10773         Adjust.
10774         * config/rs6000/power6.md (power6-load, power6-load-ext,
10775         power6-load-update, power6-load-update-indexed,
10776         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
10777         power6-fpload-update, power6-store, power6-store-update,
10778         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
10779         Adjust.
10780         * config/rs6000/power7.md (power7-load, power7-load-ext,
10781         power7-load-update, power7-load-update-indexed,
10782         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
10783         power7-fpload-update, power7-store, power7-store-update,
10784         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
10785         Adjust.
10786         * config/rs6000/power8.md (power8-load, power8-load-update,
10787         power8-load-ext, power8-load-ext-update, power8-fpload,
10788         power8-fpload-update, power8-store, power8-store-update-indexed,
10789         power8-fpstore, power8-fpstore-update): Adjust.
10790         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
10791         Adjust.
10792         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
10793         titan_lsu_store, titan_lsu_fpstore): Adjust.
10794         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
10796 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
10798         PR target/60884
10799         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
10800         unrolled byte insns.  Emit address increments after move insns.
10802 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
10804         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
10805         const_gimple, rather than a gimple.
10806         (gimple_call_builtin_p): Likewise, for the three variants.
10808         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
10809         (gimple_call_builtin_p): Likewise, for the three variants.
10811 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
10813         PR tree-optimization/61095
10814         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
10816 2014-05-07  Richard Biener  <rguenther@suse.de>
10818         PR tree-optimization/61034
10819         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
10820         (maybe_skip_until): Use translate to take into account
10821         lattices when trying to do disambiguations.
10822         (get_continuation_for_phi_1): Likewise.
10823         (get_continuation_for_phi): Adjust for added translate arguments.
10824         (walk_non_aliased_vuses): Likewise.
10825         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
10826         (walk_non_aliased_vuses): Likewise.
10827         (call_may_clobber_ref_p_1): Declare.
10828         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
10829         calls.  Stop early if we are only supposed to disambiguate.
10830         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
10832 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
10834         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
10835         Emit an error when the function has arguments.
10837 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
10839         * cfgloop.h (unswitch_loops): Remove.
10840         * doc/passes.texi: Remove references to loop-unswitch.c
10841         * timevar.def (TV_LOOP_UNSWITCH): Remove.
10843 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
10845         * tree-vect-data-refs.c (vect_grouped_load_supported): New
10846         check for loads group of length 3.
10847         (vect_permute_load_chain): New permutations for loads group of
10848         length 3.
10849         * tree-vect-stmts.c (vect_model_load_cost): Change cost
10850         of vec_perm_shuffle for the new permutations.
10852 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
10854         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
10855         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
10856         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
10857         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
10858         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
10859         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
10860         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
10861         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
10863 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
10865         * loop-unswitch.c: Delete.
10867 2014-05-07  Richard Biener  <rguenther@suse.de>
10869         * config.gcc: Always set need_64bit_hwint to yes.
10871 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
10873         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
10874         of using optimize_size.
10876 2014-05-06  Mike Stump  <mikestump@comcast.net>
10878         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
10880 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
10882         * config/i386/sse.md (*mov<mode>_internal)
10883         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
10884         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
10885         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
10886         (*<code><mode>3, *andnot<mode>3<mask_name>)
10887         (<mask_codefor><code><mode>3<mask_name>): Only consider
10888         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
10890 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
10892         Revert:
10893         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
10895         * lra-constraints.c (valid_address_p): Move earlier in file.
10896         Add a constraint argument to the address_info version.
10897         (satisfies_memory_constraint_p): New function.
10898         (satisfies_address_constraint_p): Likewise.
10899         (process_alt_operands, curr_insn_transform): Use them.
10900         (process_address): Pass the constraint to valid_address_p when
10901         checking address operands.
10903 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
10905         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
10906         to their respective blocks.  Fix inadvertent use of "node".
10908 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
10910         * emit-rtl.c (init_derived_machine_modes): New functionm, split
10911         out from...
10912         (init_emit_once): ...here.
10913         * rtl.h (init_derived_machine_modes): Declare.
10914         * toplev.c (do_compile): Call it even if no_backend.
10916 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
10917             Mike Stump  <mikestump@comcast.net>
10918             Richard Sandiford  <rdsandiford@googlemail.com>
10919             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10921         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
10922         (rtx_equal_for_memref_p): Update comment.
10923         (adjust_offset_for_component_ref): Use wide-int interfaces.
10924         * builtins.c (get_object_alignment_2): Likewise.
10925         (c_readstr): Likewise.
10926         (target_char_cast): Add comment.
10927         (determine_block_size): Use wide-int interfaces.
10928         (expand_builtin_signbit): Likewise.
10929         (fold_builtin_int_roundingfn): Likewise.
10930         (fold_builtin_bitop): Likewise.
10931         (fold_builtin_bswap): Likewise.
10932         (fold_builtin_logarithm): Use signop.
10933         (fold_builtin_pow): Likewise.
10934         (fold_builtin_memory_op): Use wide-int interfaces.
10935         (fold_builtin_object_size): Likewise.
10936         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
10937         nb_iterations_estimate.
10938         (record_niter_bound): Use wide-int interfaces.
10939         (get_estimated_loop_iterations_int): Likewise.
10940         (get_estimated_loop_iterations): Likewise.
10941         (get_max_loop_iterations): Likewise.
10942         * cfgloop.h: Include wide-int.h.
10943         (struct nb_iter_bound): Change bound to widest_int.
10944         (struct loop): Change nb_iterations_upper_bound and
10945         nb_iterations_estimate to widest_int.
10946         (record_niter_bound): Switch to use widest_int.
10947         (get_estimated_loop_iterations): Likewise.
10948         (get_max_loop_iterations): Likewise.
10949         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
10950         update for wide-int.
10951         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
10952         * combine.c (try_combine): Likewise.
10953         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
10954         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
10955         interfaces.
10956         (aarch64_float_const_representable_p): Likewise.
10957         * config/arc/arc.c: Include wide-int.h.
10958         (arc_can_use_doloop_p): Use wide-int interfaces.
10959         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
10960         (vfp3_const_double_index): Likewise.
10961         * config/avr/avr.c (avr_out_round): Likewise.
10962         (avr_fold_builtin): Likewise.
10963         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
10964         (bfin_can_use_doloop_p): Likewise.
10965         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
10966         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
10967         * config/i386/i386.c: Include wide-int.h.
10968         (ix86_data_alignment): Use wide-int interfaces.
10969         (ix86_local_alignment): Likewise.
10970         (ix86_emit_swsqrtsf): Update real_from_integer.
10971         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
10972         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
10973         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
10974         (zero_constant): Likewise.
10975         (input_operand): Likewise.
10976         (splat_input_operand): Likewise.
10977         (non_logical_cint_operand): Change const_double to const_wide_int.
10978         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
10979         (easy_altivec_constant): Remove comment.
10980         (paired_expand_vector_init): Use CONSTANT_P.
10981         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
10982         (rs6000_emit_move): Update checks.
10983         (rs6000_aggregate_candidate): Use wide-int interfaces.
10984         (rs6000_expand_ternop_builtin): Likewise.
10985         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
10986         (rs6000_assemble_integer): Likewise.
10987         (rs6000_hash_constant): Likewise.
10988         (output_toc): Likewise.
10989         (rs6000_rtx_costs): Likewise.
10990         (rs6000_emit_swrsqrt); Update call to real_from_integer.
10991         * config/rs6000/rs6000-c.c: Include wide-int.h.
10992         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
10993         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
10994         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
10995         Handle CONST_WIDE_INT.
10996         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
10997         Use tree_fits_uhwi_p.
10998         * config/sparc/sparc.c: Include wide-int.h.
10999         (sparc_fold_builtin): Use wide-int interfaces.
11000         * config/vax/vax.c: Include wide-int.h.
11001         (vax_float_literal): Use real_from_integer.
11002         * coretypes.h (struct hwivec_def): New.
11003         (hwivec): New.
11004         (const_hwivec): New.
11005         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
11006         (equiv_constant): Handle CONST_WIDE_INT.
11007         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
11008         (cselib_hash_rtx): Handle CONST_WIDE_INT.
11009         * dbxout.c (stabstr_U): Use wide-int interfaces.
11010         (dbxout_type): Update to use cst_fits_shwi_p.
11011         * defaults.h (LOG2_BITS_PER_UNIT): Define.
11012         (TARGET_SUPPORTS_WIDE_INT): Add default.
11013         * dfp.c: Include wide-int.h.
11014         (decimal_real_to_integer2): Use wide-int interfaces and rename to
11015         decimal_real_to_integer.
11016         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
11017         decimal_real_to_integer.
11018         * doc/generic.texi (Constant expressions): Update for wide_int.
11019         * doc/rtl.texi (const_double): Likewise.
11020         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
11021         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
11022         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
11023         (REAL_VALUE_FROM_INT): Remove.
11024         (TARGET_SUPPORTS_WIDE_INT): New.
11025         * doc/tm.texi: Regenerate.
11026         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
11027         * double-int.h: Include wide-int.h.
11028         (struct wi::int_traits): New.
11029         * dwarf2out.c (get_full_len): New.
11030         (dw_val_equal_p): Add case dw_val_class_wide_int.
11031         (size_of_loc_descr): Likewise.
11032         (output_loc_operands): Likewise.
11033         (insert_double): Remove.
11034         (insert_wide_int): New.
11035         (add_AT_wide): New.
11036         (print_die): Add case dw_val_class_wide_int.
11037         (attr_checksum): Likewise.
11038         (attr_checksum_ordered): Likewise.
11039         (same_dw_val_p): Likewise.
11040         (size_of_die): Likewise.
11041         (value_format): Likewise.
11042         (output_die): Likewise.
11043         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
11044         Use wide-int.
11045         (clz_loc_descriptor): Use wide-int interfaces.
11046         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
11047         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
11048         (round_up_to_align): Use wide-int interfaces.
11049         (field_byte_offset): Likewise.
11050         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
11051         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
11052         CONST_DOUBLE handling.  Use wide-int interfaces.
11053         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
11054         (gen_enumeration_type_die): Use add_AT_wide.
11055         (hash_loc_operands): Add case dw_val_class_wide_int.
11056         (compare_loc_operands): Likewise.
11057         * dwarf2out.h: Include wide-int.h.
11058         (wide_int_ptr): New.
11059         (enum dw_val_class): Add dw_val_class_wide_int.
11060         (struct dw_val_struct): Add val_wide.
11061         * emit-rtl.c (const_wide_int_htab): New.
11062         (const_wide_int_htab_hash): New.
11063         (const_wide_int_htab_eq): New.
11064         (lookup_const_wide_int): New.
11065         (const_double_htab_hash): Use wide-int interfaces.
11066         (const_double_htab_eq): Likewise.
11067         (rtx_to_double_int): Conditionally compile for wide-int.
11068         (immed_double_int_const): Rename to immed_wide_int_const and
11069         update for wide-int.
11070         (immed_double_const): Conditionally compile for wide-int.
11071         (init_emit_once): Use wide-int interfaces.
11072         * explow.c (plus_constant): Likewise.
11073         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
11074         (lshift_value): Use wide-int interfaces.
11075         (expand_mult): Likewise.
11076         (choose_multiplier): Likewise.
11077         (expand_smod_pow2): Likewise.
11078         (make_tree): Likewise.
11079         * expr.c (convert_modes): Consolidate handling of constants.
11080         Use wide-int interfaces.
11081         (emit_group_load_1): Add note.
11082         (store_expr): Update comment.
11083         (get_inner_reference): Use wide-int interfaces.
11084         (expand_constructor): Update comment.
11085         (expand_expr_real_2): Use wide-int interfaces.
11086         (expand_expr_real_1): Likewise.
11087         (reduce_to_bit_field_precision): Likewise.
11088         (const_vector_from_tree): Likewise.
11089         * final.c: Include wide-int-print.h.
11090         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
11091         * fixed-value.c: Include wide-int.h.
11092         (fixed_from_string): Use wide-int interfaces.
11093         (fixed_to_decimal): Likewise.
11094         (fixed_convert_from_real): Likewise.
11095         (real_convert_from_fixed): Likewise.
11096         * fold-const.h (mem_ref_offset): Return an offset_int.
11097         (div_if_zero_remainder): Remove code parameter.
11098         * fold-const.c (div_if_zero_remainder): Remove code parameter.
11099         Use wide-int interfaces.
11100         (may_negate_without_overflow_p): Use wide-int interfaces.
11101         (negate_expr_p): Likewise.
11102         (fold_negate_expr): Likewise.
11103         (int_const_binop_1): Likewise.
11104         (const_binop): Likewise.
11105         (fold_convert_const_int_from_int): Likewise.
11106         (fold_convert_const_int_from_real): Likewise.
11107         (fold_convert_const_int_from_fixed): Likewise.
11108         (fold_convert_const_fixed_from_int): Likewise.
11109         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
11110         (sign_bit_p): Use wide-int interfaces.
11111         (make_range_step): Likewise.
11112         (build_range_check): Likewise.  Pass an integer of the correct type
11113         instead of using integer_one_node.
11114         (range_predecessor): Pass an integer of the correct type instead
11115         of using integer_one_node.
11116         (range_successor): Likewise.
11117         (merge_ranges): Likewise.
11118         (unextend): Use wide-int interfaces.
11119         (extract_muldiv_1): Likewise.
11120         (fold_div_compare): Likewise.
11121         (fold_single_bit_test): Likewise.
11122         (fold_sign_changed_comparison): Likewise.
11123         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
11124         (fold_plusminus_mult_expr): Use wide-int interfaces.
11125         (native_encode_int): Likewise.
11126         (native_interpret_int): Likewise.
11127         (fold_unary_loc): Likewise.
11128         (pointer_may_wrap_p): Likewise.
11129         (size_low_cst): Likewise.
11130         (mask_with_tz): Likewise.
11131         (fold_binary_loc): Likewise.
11132         (fold_ternary_loc): Likewise.
11133         (multiple_of_p): Likewise.
11134         (tree_call_nonnegative_warnv_p): Update calls to
11135         tree_int_cst_min_precision and real_from_integer.
11136         (fold_negate_const): Use wide-int interfaces.
11137         (fold_abs_const): Likewise.
11138         (fold_relational_const): Use tree_int_cst_lt.
11139         (round_up_loc): Use wide-int interfaces.
11140         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
11141         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
11142         * gengtype.c: Remove include of double-int.h.
11143         (do_typedef): Use wide-int interfaces.
11144         (open_base_files): Add wide-int.h.
11145         (main): Add offset_int and widest_int typedefs.
11146         * gengtype-lex.l: Handle "^".
11147         (CXX_KEYWORD): Add "static".
11148         * gengtype-parse.c (require3): New.
11149         (require_template_declaration): Handle constant template arguments
11150         and nested templates.
11151         * gengtype-state.c: Don't include "double-int.h".
11152         * genpreds.c (write_one_predicate_function): Update comment.
11153         (write_tm_constrs_h): Add check for hval and lval use in
11154         CONST_WIDE_INT.
11155         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
11156         (add_to_sequence): Likewise.
11157         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
11158         and const_double_operand.
11159         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
11160         interfaces.
11161         * gimple-fold.c (get_base_constructor): Likewise.
11162         (fold_array_ctor_reference): Likewise.
11163         (fold_nonarray_ctor_reference): Likewise.
11164         (fold_const_aggregate_ref_1): Likewise.
11165         (gimple_val_nonnegative_real_p): Likewise.
11166         (gimple_fold_indirect_ref): Likewise.
11167         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
11168         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
11169         (struct slsr_cand_d): Change index to be widest_int.
11170         (struct incr_info_d): Change incr to be widest_int.
11171         (alloc_cand_and_find_basis): Use wide-int interfaces.
11172         (slsr_process_phi): Likewise.
11173         (backtrace_base_for_ref): Likewise.  Return a widest_int.
11174         (restructure_reference): Take a widest_int instead of a double_int.
11175         (slsr_process_ref): Use wide-int interfaces.
11176         (create_mul_ssa_cand): Likewise.
11177         (create_mul_imm_cand): Likewise.
11178         (create_add_ssa_cand): Likewise.
11179         (create_add_imm_cand): Take a widest_int instead of a double_int.
11180         (slsr_process_add): Use wide-int interfaces.
11181         (slsr_process_cast): Likewise.
11182         (slsr_process_copy): Likewise.
11183         (dump_candidate): Likewise.
11184         (dump_incr_vec): Likewise.
11185         (replace_ref): Likewise.
11186         (cand_increment): Likewise.  Return a widest_int.
11187         (cand_abs_increment): Likewise.
11188         (replace_mult_candidate): Take a widest_int instead of a double_int.
11189         (replace_unconditional_candidate): Use wide-int interfaces.
11190         (incr_vec_index): Take a widest_int instead of a double_int.
11191         (create_add_on_incoming_edge): Likewise.
11192         (create_phi_basis): Use wide-int interfaces.
11193         (replace_conditional_candidate): Likewise.
11194         (record_increment): Take a widest_int instead of a double_int.
11195         (record_phi_increments): Use wide-int interfaces.
11196         (phi_incr_cost): Take a widest_int instead of a double_int.
11197         (lowest_cost_path): Likewise.
11198         (total_savings): Likewise.
11199         (analyze_increments): Use wide-int interfaces.
11200         (ncd_with_phi): Take a widest_int instead of a double_int.
11201         (ncd_of_cand_and_phis): Likewise.
11202         (nearest_common_dominator_for_cands): Likewise.
11203         (insert_initializers): Use wide-int interfaces.
11204         (all_phi_incrs_profitable): Likewise.
11205         (replace_one_candidate): Likewise.
11206         (replace_profitable_candidates): Likewise.
11207         * godump.c: Include wide-int-print.h.
11208         (go_output_typedef): Use wide-int interfaces.
11209         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
11210         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
11211         (build_loop_iteration_domains): Likewise.
11212         * hooks.h: Include wide-int.h rather than double-int.h.
11213         (hook_bool_dint_dint_uint_bool_true): Delete.
11214         (hook_bool_wint_wint_uint_bool_true): Declare.
11215         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
11216         (hook_bool_wint_wint_uint_bool_true): New.
11217         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
11218         interfaces.
11219         (ubsan_expand_si_overflow_mul_check): Likewise.
11220         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
11221         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
11222         (get_ancestor_addr_info): Likewise.
11223         (ipa_modify_call_arguments): Likewise.
11224         * loop-doloop.c (doloop_modify): Likewise.
11225         (doloop_optimize): Likewise.
11226         * loop-iv.c (iv_number_of_iterations): Likewise.
11227         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
11228         (unroll_loop_constant_iterations): Likewise.
11229         (decide_unroll_runtime_iterations): Likewise.
11230         (unroll_loop_runtime_iterations): Likewise.
11231         (decide_peel_simple): Likewise.
11232         (decide_unroll_stupid): Likewise.
11233         * lto-streamer-in.c (streamer_read_wi): Add.
11234         (input_cfg): Use wide-int interfaces.
11235         (lto_input_tree_1): Likewise.
11236         * lto-streamer-out.c (streamer_write_wi): Add.
11237         (hash_tree): Use wide-int interfaces.
11238         (output_cfg): Likewise.
11239         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
11240         (GTFILES): Add wide-int.h and signop.h.
11241         (TAGS): Look for .cc files too.
11242         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
11243         * optabs.c (expand_subword_shift): Likewise.
11244         (expand_doubleword_shift): Likewise.
11245         (expand_absneg_bit): Likewise.
11246         (expand_copysign_absneg): Likewise.
11247         (expand_copysign_bit): Likewise.
11248         * postreload.c (reload_cse_simplify_set): Likewise.
11249         * predict.c (predict_iv_comparison): Likewise.
11250         * pretty-print.h: Include wide-int-print.h.
11251         (pp_wide_int) New.
11252         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
11253         * print-tree.c: Include wide-int-print.h.
11254         (print_node_brief): Use wide-int interfaces.
11255         (print_node): Likewise.
11256         * read-rtl.c (validate_const_wide_int): New.
11257         (read_rtx_code): Add CONST_WIDE_INT case.
11258         * real.c: Include wide-int.h.
11259         (real_to_integer2): Delete.
11260         (real_to_integer): New function, returning a wide_int.
11261         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
11262         (ten_to_ptwo): Update call to real_from_integer.
11263         (real_digit): Likewise.
11264         * real.h: Include signop.h, wide-int.h and insn-modes.h.
11265         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
11266         (REAL_VALUE_TO_INT): Delete.
11267         (real_to_integer): Declare a wide-int form.
11268         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
11269         * recog.c (const_int_operand): Improve comment.
11270         (const_scalar_int_operand): New.
11271         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
11272         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
11273         (split_double): Likewise.
11274         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
11275         (rtx_size): Likewise.
11276         (rtx_alloc_stat_v): New.
11277         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
11278         (cwi_output_hex): New.
11279         (iterative_hash_rtx): Handle CONST_WIDE_INT.
11280         (cwi_check_failed_bounds): New.
11281         * rtl.def (CONST_WIDE_INT): New.
11282         * rtl.h: Include <utility> and wide-int.h.
11283         (struct hwivec_def): New.
11284         (CWI_GET_NUM_ELEM): New.
11285         (CWI_PUT_NUM_ELEM): New.
11286         (struct rtx_def): Add num_elem and hwiv.
11287         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
11288         (CASE_CONST_UNIQUE): Likewise.
11289         (CASE_CONST_ANY): Likewise.
11290         (CONST_SCALAR_INT_P): Likewise.
11291         (CONST_WIDE_INT_P): New.
11292         (CWI_ELT): New.
11293         (HWIVEC_CHECK): New.
11294         (cwi_check_failed_bounds): New.
11295         (CWI_ELT): New.
11296         (HWIVEC_CHECK): New.
11297         (CONST_WIDE_INT_VEC) New.
11298         (CONST_WIDE_INT_NUNITS) New.
11299         (CONST_WIDE_INT_ELT) New.
11300         (rtx_mode_t): New type.
11301         (wi::int_traits <rtx_mode_t>): New.
11302         (wi::shwi): New.
11303         (wi::min_value): New.
11304         (wi::max_value): New.
11305         (rtx_alloc_v) New.
11306         (const_wide_int_alloc): New.
11307         (immed_wide_int_const): New.
11308         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
11309         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
11310         * signop.h: New file.
11311         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
11312         (simplify_const_unary_operation): Use wide-int interfaces.
11313         (simplify_binary_operation_1): Likewise.
11314         (simplify_const_binary_operation): Likewise.
11315         (simplify_const_relational_operation): Likewise.
11316         (simplify_immed_subreg): Likewise.
11317         * stmt.c (expand_case): Likewise.
11318         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
11319         signop rather than a bool.
11320         * stor-layout.c (layout_type): Use wide-int interfaces.
11321         (initialize_sizetypes): Update calls to
11322         set_min_and_max_values_for_integral_type.
11323         (set_min_and_max_values_for_integral_type): Take a signop rather
11324         than a bool.  Use wide-int interfaces.
11325         (fixup_signed_type): Update accordingly.  Remove
11326         HOST_BITS_PER_DOUBLE_INT limit.
11327         (fixup_unsigned_type): Likewise.
11328         * system.h (STATIC_CONSTANT_P): New.
11329         (STATIC_ASSERT): New.
11330         * target.def (can_use_doloop_p): Take widest_ints rather than
11331         double_ints.
11332         * target.h: Include wide-int.h rather than double-int.h.
11333         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
11334         than double_ints.
11335         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
11336         rather than INT_CST_LT_UNSIGNED.
11337         (can_use_doloop_if_innermost): Take widest_ints rather than
11338         double_ints.
11339         * tree-affine.c: Include wide-int-print.h.
11340         (double_int_ext_for_comb): Delete.
11341         (wide_int_ext_for_comb): New.
11342         (aff_combination_zero): Use wide-int interfaces.
11343         (aff_combination_const): Take a widest_int instead of a double_int.
11344         (aff_combination_elt): Use wide-int interfaces.
11345         (aff_combination_scale): Take a widest_int instead of a double_int.
11346         (aff_combination_add_elt): Likewise.
11347         (aff_combination_add_cst): Likewise.
11348         (aff_combination_add): Use wide-int interfaces.
11349         (aff_combination_convert): Likewise.
11350         (tree_to_aff_combination): Likewise.
11351         (add_elt_to_tree): Take a widest_int instead of a double_int.
11352         (aff_combination_to_tree): Use wide-int interfaces.
11353         (aff_combination_remove_elt): Likewise.
11354         (aff_combination_add_product): Take a widest_int instead of
11355         a double_int.
11356         (aff_combination_mult): Use wide-int interfaces.
11357         (aff_combination_expand): Likewise.
11358         (double_int_constant_multiple_p): Delete.
11359         (wide_int_constant_multiple_p): New.
11360         (aff_combination_constant_multiple_p): Take a widest_int pointer
11361         instead of a double_int pointer.
11362         (print_aff): Use wide-int interfaces.
11363         (get_inner_reference_aff): Take a widest_int pointer
11364         instead of a double_int pointer.
11365         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
11366         * tree-affine.h: Include wide-int.h.
11367         (struct aff_comb_elt): Change type of coef to widest_int.
11368         (struct affine_tree_combination): Change type of offset to widest_int.
11369         (double_int_ext_for_comb): Delete.
11370         (wide_int_ext_for_comb): New.
11371         (aff_combination_const): Use widest_int instead of double_int.
11372         (aff_combination_scale): Likewise.
11373         (aff_combination_add_elt): Likewise.
11374         (aff_combination_constant_multiple_p): Likewise.
11375         (get_inner_reference_aff): Likewise.
11376         (aff_comb_cannot_overlap_p): Likewise.
11377         (aff_combination_zero_p): Use wide-int interfaces.
11378         * tree.c: Include tree.h.
11379         (init_ttree): Use make_int_cst.
11380         (tree_code_size): Removed code for INTEGER_CST case.
11381         (tree_size): Add INTEGER_CST case.
11382         (make_node_stat): Update comment.
11383         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
11384         (build_int_cst_type): Use wide-int interfaces.
11385         (double_int_to_tree): Likewise.
11386         (double_int_fits_to_tree_p): Delete.
11387         (force_fit_type_double): Delete.
11388         (force_fit_type): New.
11389         (int_cst_hash_hash): Use wide-int interfaces.
11390         (int_cst_hash_eq): Likewise.
11391         (build_int_cst_wide): Delete.
11392         (wide_int_to_tree): New.
11393         (cache_integer_cst): Use wide-int interfaces.
11394         (build_low_bits_mask): Likewise.
11395         (cst_and_fits_in_hwi): Likewise.
11396         (real_value_from_int_cst): Likewise.
11397         (make_int_cst_stat): New.
11398         (integer_zerop): Use wide_int interfaces.
11399         (integer_onep): Likewise.
11400         (integer_all_onesp): Likewise.
11401         (integer_pow2p): Likewise.
11402         (integer_nonzerop): Likewise.
11403         (tree_log2): Likewise.
11404         (tree_floor_log2): Likewise.
11405         (tree_ctz): Likewise.
11406         (int_size_in_bytes): Likewise.
11407         (mem_ref_offset): Return an offset_int rather than a double_int.
11408         (build_type_attribute_qual_variant): Use wide_int interfaces.
11409         (type_hash_eq): Likewise
11410         (tree_int_cst_equal): Likewise.
11411         (tree_int_cst_lt): Delete.
11412         (tree_int_cst_compare): Likewise.
11413         (tree_fits_shwi_p): Use wide_int interfaces.
11414         (tree_fits_uhwi_p): Likewise.
11415         (tree_int_cst_sign_bit): Likewise.
11416         (tree_int_cst_sgn): Likewise.
11417         (tree_int_cst_min_precision): Take a signop rather than a bool.
11418         (simple_cst_equal): Use wide_int interfaces.
11419         (compare_tree_int): Likewise.
11420         (iterative_hash_expr): Likewise.
11421         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
11422         INT_CST_LT.
11423         (get_type_static_bounds): Use wide_int interfaces.
11424         (tree_int_cst_elt_check_failed): New.
11425         (build_common_tree_nodes): Reordered to set prec before filling in
11426         value.
11427         (int_cst_value): Check cst_and_fits_in_hwi.
11428         (widest_int_cst_value): Use wide_int interfaces.
11429         (upper_bound_in_type): Likewise.
11430         (lower_bound_in_type): Likewise.
11431         (num_ending_zeros): Likewise.
11432         (drop_tree_overflow): Likewise.
11433         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
11434         (gen_conditions_for_pow_cst_base): Likewise.
11435         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
11436         (group_case_labels_stmt): Use wide-int interfaces.
11437         (verify_gimple_assign_binary): Likewise.
11438         (print_loop): Likewise.
11439         * tree-chrec.c (tree_fold_binomial): Likewise.
11440         * tree-core.h (struct tree_base): Add int_length.
11441         (struct tree_int_cst): Change rep of value.
11442         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
11443         (dr_may_alias_p): Likewise.
11444         (max_stmt_executions_tree): Likewise.
11445         * tree.def (INTEGER_CST): Update comment.
11446         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
11447         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
11448         * tree-dump.c: Include wide-int.h and wide-int-print.h.
11449         (dequeue_and_dump): Use wide-int interfaces.
11450         * tree.h: Include wide-int.h.
11451         (NULL_TREE): Moved to earlier loc in file.
11452         (TREE_INT_CST_ELT_CHECK): New.
11453         (tree_int_cst_elt_check_failed): New.
11454         (TYPE_SIGN): New.
11455         (TREE_INT_CST): Delete.
11456         (TREE_INT_CST_LOW): Use wide-int interfaces.
11457         (TREE_INT_CST_HIGH): Delete.
11458         (TREE_INT_CST_NUNITS): New.
11459         (TREE_INT_CST_EXT_NUNITS): Likewise.
11460         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
11461         (TREE_INT_CST_ELT): Likewise.
11462         (INT_CST_LT): Delete.
11463         (tree_int_cst_elt_check): New (two forms).
11464         (type_code_size): Update comment.
11465         (make_int_cst_stat, make_int_cst): New.
11466         (tree_to_double_int): Delete.
11467         (double_int_fits_to_tree_p): Delete.
11468         (force_fit_type_double): Delete.
11469         (build_int_cstu): Replace with out-of-line function.
11470         (build_int_cst_wide): Delete.
11471         (tree_int_cst_lt): Define inline.
11472         (tree_int_cst_le): New.
11473         (tree_int_cst_compare): Define inline.
11474         (tree_int_cst_min_precision): Take a signop rather than a bool.
11475         (wi::int_traits <const_tree>): New.
11476         (wi::int_traits <tree>): New.
11477         (wi::extended_tree): New.
11478         (wi::int_traits <wi::extended_tree>): New.
11479         (wi::to_widest): New.
11480         (wi::to_offset): New.
11481         (wi::fits_to_tree_p): New.
11482         (wi::min_value): New.
11483         (wi::max_value): New.
11484         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
11485         (copy_tree_body_r): Likewise.
11486         * tree-object-size.c (compute_object_offset): Likewise.
11487         (addr_object_size): Likewise.
11488         * tree-predcom.c: Include wide-int-print.h.
11489         (struct dref_d): Change type of offset to widest_int.
11490         (dump_dref): Call wide-int printer.
11491         (aff_combination_dr_offset): Use wide-int interfaces.
11492         (determine_offset): Take a widest_int pointer rather than a
11493         double_int pointer.
11494         (split_data_refs_to_components): Use wide-int interfaces.
11495         (suitable_component_p): Likewise.
11496         (order_drefs): Likewise.
11497         (add_ref_to_chain): Likewise.
11498         (valid_initializer_p): Likewise.
11499         (determine_roots_comp): Likewise.
11500         * tree-pretty-print.c: Include wide-int-print.h.
11501         (dump_generic_node): Use wide-int interfaces.
11502         * tree-sra.c (sra_ipa_modify_expr): Likewise.
11503         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
11504         (move_fixed_address_to_symbol): Likewise.
11505         (move_hint_to_base): Likewise.
11506         (move_pointer_to_base): Likewise.
11507         (move_variant_to_index): Likewise.
11508         (most_expensive_mult_to_index): Likewise.
11509         (addr_to_parts): Likewise.
11510         (copy_ref_info): Likewise.
11511         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
11512         (indirect_refs_may_alias_p): Likewise.
11513         (stmt_kills_ref_p_1): Likewise.
11514         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
11515         * tree-ssa-ccp.c: Update comment at top of file.  Include
11516         wide-int-print.h.
11517         (struct prop_value_d): Change type of mask to widest_int.
11518         (extend_mask): New function.
11519         (dump_lattice_value): Use wide-int interfaces.
11520         (get_default_value): Likewise.
11521         (set_constant_value): Likewise.
11522         (set_value_varying): Likewise.
11523         (valid_lattice_transition): Likewise.
11524         (set_lattice_value): Likewise.
11525         (value_to_double_int): Delete.
11526         (value_to_wide_int): New.
11527         (get_value_from_alignment): Use wide-int interfaces.
11528         (get_value_for_expr): Likewise.
11529         (do_dbg_cnt): Likewise.
11530         (ccp_finalize): Likewise.
11531         (ccp_lattice_meet): Likewise.
11532         (bit_value_unop_1): Use widest_ints rather than double_ints.
11533         (bit_value_binop_1): Likewise.
11534         (bit_value_unop): Use wide-int interfaces.
11535         (bit_value_binop): Likewise.
11536         (bit_value_assume_aligned): Likewise.
11537         (evaluate_stmt): Likewise.
11538         (ccp_fold_stmt): Likewise.
11539         (visit_cond_stmt): Likewise.
11540         (ccp_visit_stmt): Likewise.
11541         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
11542         (constant_pointer_difference): Likewise.
11543         (associate_pointerplus): Likewise.
11544         (combine_conversions): Likewise.
11545         * tree-ssa-loop.h: Include wide-int.h.
11546         (struct tree_niter_desc): Change type of max to widest_int.
11547         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
11548         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
11549         (remove_redundant_iv_tests): Likewise.
11550         (canonicalize_loop_induction_variables): Likewise.
11551         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
11552         (constant_multiple_of): Take a widest_int pointer instead of
11553         a double_int pointer.
11554         (get_computation_aff): Use wide-int interfaces.
11555         (ptr_difference_cost): Likewise.
11556         (difference_cost): Likewise.
11557         (get_loop_invariant_expr_id): Likewise.
11558         (get_computation_cost_at): Likewise.
11559         (iv_elimination_compare_lt): Likewise.
11560         (may_eliminate_iv): Likewise.
11561         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
11562         instead of double_int.
11563         (max_loop_iterations): Likewise.
11564         (max_stmt_executions): Likewise.
11565         (estimated_stmt_executions): Likewise.
11566         * tree-ssa-loop-niter.c: Include wide-int-print.h.
11567         (split_to_var_and_offset): Use wide-int interfaces.
11568         (determine_value_range): Likewise.
11569         (bound_difference_of_offsetted_base): Likewise.
11570         (bounds_add): Take a widest_int instead of a double_int.
11571         (number_of_iterations_ne_max): Use wide-int interfaces.
11572         (number_of_iterations_ne): Likewise.
11573         (number_of_iterations_lt_to_ne): Likewise.
11574         (assert_loop_rolls_lt): Likewise.
11575         (number_of_iterations_lt): Likewise.
11576         (number_of_iterations_le): Likewise.
11577         (number_of_iterations_cond): Likewise.
11578         (number_of_iterations_exit): Likewise.
11579         (finite_loop_p): Likewise.
11580         (derive_constant_upper_bound_assign): Likewise.
11581         (derive_constant_upper_bound): Return a widest_int.
11582         (derive_constant_upper_bound_ops): Likewise.
11583         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
11584         (record_estimate): Take a widest_int rather than a double_int.
11585         (record_nonwrapping_iv): Use wide-int interfaces.
11586         (double_int_cmp): Delete.
11587         (wide_int_cmp): New.
11588         (bound_index): Take a widest_int rather than a double_int.
11589         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
11590         (maybe_lower_iteration_bound): Likewise.
11591         (estimate_numbers_of_iterations_loop): Likewise.
11592         (estimated_loop_iterations): Take a widest_int pointer than than
11593         a double_int pointer.
11594         (estimated_loop_iterations_int): Use wide-int interfaces.
11595         (max_loop_iterations): Take a widest_int pointer than than
11596         a double_int pointer.
11597         (max_loop_iterations_int): Use wide-int interfaces.
11598         (max_stmt_executions): Take a widest_int pointer than than
11599         a double_int pointer.
11600         (estimated_stmt_executions): Likewise.
11601         (n_of_executions_at_most): Use wide-int interfaces.
11602         (scev_probably_wraps_p): Likewise.
11603         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
11604         to real_to_integer.
11605         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
11606         interfaces.
11607         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
11608         double_ints.  Adjust for trailing_wide_ints <3> representation.
11609         (set_nonzero_bits): Likewise.
11610         (get_range_info): Return wide_ints rather than double_ints.
11611         Adjust for trailing_wide_ints <3> representation.
11612         (get_nonzero_bits): Likewise.
11613         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
11614         representation.
11615         * tree-ssanames.h (struct range_info_def): Replace min, max and
11616         nonzero_bits with a trailing_wide_ints <3>.
11617         (set_range_info): Use wide_int_refs rather than double_ints.
11618         (set_nonzero_bits): Likewise.
11619         (get_range_info): Return wide_ints rather than double_ints.
11620         (get_nonzero_bits): Likewise.
11621         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
11622         * tree-ssa-pre.c (phi_translate_1): Likewise.
11623         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
11624         (acceptable_pow_call): Likewise.
11625         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
11626         interfaces.
11627         (vn_reference_fold_indirect): Likewise.
11628         (vn_reference_maybe_forwprop_address): Likewise.
11629         (valueize_refs_1): Likewise.
11630         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
11631         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
11632         tree_int_cst_lt and tree_int_cst_le.
11633         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
11634         interfaces.
11635         (streamer_alloc_tree): Likewise.
11636         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
11637         (streamer_write_tree_header): Likewise.
11638         (streamer_write_integer_cst): Likewise.
11639         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
11640         (build_constructors): Likewise.
11641         (array_value_type): Likewise.
11642         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
11643         (vect_check_gather): Likewise.
11644         * tree-vect-generic.c (build_replicated_const): Likewise.
11645         (expand_vector_divmod): Likewise.
11646         * tree-vect-loop.c (vect_transform_loop): Likewise.
11647         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
11648         (vect_do_peeling_for_alignment): Likewise.
11649         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
11650         * tree-vrp.c: Include wide-int.h.
11651         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
11652         (extract_range_from_assert): Use wide-int interfaces.
11653         (vrp_int_const_binop): Likewise.
11654         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
11655         double_int pointers.
11656         (ranges_from_anti_range): Use wide-int interfaces.
11657         (quad_int_cmp): Delete.
11658         (quad_int_pair_sort): Likewise.
11659         (extract_range_from_binary_expr_1): Use wide-int interfaces.
11660         (extract_range_from_unary_expr_1): Likewise.
11661         (adjust_range_with_scev): Likewise.
11662         (masked_increment): Take and return wide_ints rather than double_ints.
11663         (register_edge_assert_for_2): Use wide-int interfaces.
11664         (check_array_ref): Likewise.
11665         (search_for_addr_array): Likewise.
11666         (maybe_set_nonzero_bits): Likewise.
11667         (union_ranges): Pass an integer of the correct type instead of
11668         using integer_one_node.
11669         (intersect_ranges): Likewise.
11670         (simplify_truth_ops_using_ranges): Likewise.
11671         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
11672         (range_fits_type_p): Likewise.
11673         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
11674         a bool.
11675         (simplify_conversion_using_ranges): Use wide-int interfaces.
11676         (simplify_float_conversion_using_ranges): Likewise.
11677         (vrp_finalize): Likewise.
11678         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
11679         (gimple_stringops_transform): Likewise.
11680         * varasm.c (decode_addr_const): Likewise.
11681         (const_hash_1): Likewise.
11682         (const_rtx_hash_1): Likewise
11683         (output_constant): Likewise.
11684         (array_size_for_constructor): Likewise.
11685         (output_constructor_regular_field): Likewise.
11686         (output_constructor_bitfield): Likewise.
11687         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
11688         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
11689         GENERATOR_FILEs.
11690         * gencheck.c: Define BITS_PER_UNIT.
11691         * wide-int.cc: New.
11692         * wide-int.h: New.
11693         * wide-int-print.cc: New.
11694         * wide-int-print.h: New.
11696 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11698         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
11700 2014-05-06  Richard Biener  <rguenther@suse.de>
11702         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
11703         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
11704         (TODO_verify_all): Adjust.
11705         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
11706         TODO_verify_stmts and TODO_verify_rtl_sharing.
11707         * bb-reorder.c: Likewise.
11708         * cfgexpand.c: Likewise.
11709         * cprop.c: Likewise.
11710         * cse.c: Likewise.
11711         * function.c: Likewise.
11712         * fwprop.c: Likewise.
11713         * gcse.c: Likewise.
11714         * gimple-ssa-isolate-paths.c: Likewise.
11715         * gimple-ssa-strength-reduction.c: Likewise.
11716         * ipa-split.c: Likewise.
11717         * loop-init.c: Likewise.
11718         * loop-unroll.c: Likewise.
11719         * lower-subreg.c: Likewise.
11720         * modulo-sched.c: Likewise.
11721         * postreload-gcse.c: Likewise.
11722         * predict.c: Likewise.
11723         * recog.c: Likewise.
11724         * sched-rgn.c: Likewise.
11725         * store-motion.c: Likewise.
11726         * tracer.c: Likewise.
11727         * trans-mem.c: Likewise.
11728         * tree-call-cdce.c: Likewise.
11729         * tree-cfg.c: Likewise.
11730         * tree-cfgcleanup.c: Likewise.
11731         * tree-complex.c: Likewise.
11732         * tree-eh.c: Likewise.
11733         * tree-emutls.c: Likewise.
11734         * tree-if-conv.c: Likewise.
11735         * tree-into-ssa.c: Likewise.
11736         * tree-loop-distribution.c: Likewise.
11737         * tree-object-size.c: Likewise.
11738         * tree-parloops.c: Likewise.
11739         * tree-pass.h: Likewise.
11740         * tree-sra.c: Likewise.
11741         * tree-ssa-ccp.c: Likewise.
11742         * tree-ssa-copy.c: Likewise.
11743         * tree-ssa-copyrename.c: Likewise.
11744         * tree-ssa-dce.c: Likewise.
11745         * tree-ssa-dom.c: Likewise.
11746         * tree-ssa-dse.c: Likewise.
11747         * tree-ssa-forwprop.c: Likewise.
11748         * tree-ssa-ifcombine.c: Likewise.
11749         * tree-ssa-loop-ch.c: Likewise.
11750         * tree-ssa-loop-ivcanon.c: Likewise.
11751         * tree-ssa-loop.c: Likewise.
11752         * tree-ssa-math-opts.c: Likewise.
11753         * tree-ssa-phiopt.c: Likewise.
11754         * tree-ssa-phiprop.c: Likewise.
11755         * tree-ssa-pre.c: Likewise.
11756         * tree-ssa-reassoc.c: Likewise.
11757         * tree-ssa-sink.c: Likewise.
11758         * tree-ssa-strlen.c: Likewise.
11759         * tree-ssa-tail-merge.c: Likewise.
11760         * tree-ssa-uncprop.c: Likewise.
11761         * tree-switch-conversion.c: Likewise.
11762         * tree-tailcall.c: Likewise.
11763         * tree-vect-generic.c: Likewise.
11764         * tree-vectorizer.c: Likewise.
11765         * tree-vrp.c: Likewise.
11766         * tsan.c: Likewise.
11767         * var-tracking.c: Likewise.
11768         * bt-load.c: Likewise.
11769         * cfgcleanup.c: Likewise.
11770         * combine-stack-adj.c: Likewise.
11771         * combine.c: Likewise.
11772         * compare-elim.c: Likewise.
11773         * config/epiphany/resolve-sw-modes.c: Likewise.
11774         * config/i386/i386.c: Likewise.
11775         * config/mips/mips.c: Likewise.
11776         * config/s390/s390.c: Likewise.
11777         * config/sh/sh_treg_combine.cc: Likewise.
11778         * config/sparc/sparc.c: Likewise.
11779         * dce.c: Likewise.
11780         * dse.c: Likewise.
11781         * final.c: Likewise.
11782         * ifcvt.c: Likewise.
11783         * mode-switching.c: Likewise.
11784         * passes.c: Likewise.
11785         * postreload.c: Likewise.
11786         * ree.c: Likewise.
11787         * reg-stack.c: Likewise.
11788         * regcprop.c: Likewise.
11789         * regrename.c: Likewise.
11790         * web.c: Likewise.
11792 2014-05-06  Richard Biener  <rguenther@suse.de>
11794         PR middle-end/61070
11795         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
11796         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
11798 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
11800         PR ipa/60965
11801         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
11803 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
11804             Tom de Vries  <tom@codesourcery.com>
11806         * target.def (call_fusage_contains_non_callee_clobbers): New
11807         DEFHOOKPOD.
11808         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
11809         Hooks to @menu.
11810         (@node Miscellaneous Register Hooks): New node.
11811         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
11812         * doc/tm.texi: Regenerate.
11814 2014-05-05  Marek Polacek  <polacek@redhat.com>
11816         PR driver/61065
11817         * opts.c (common_handle_option): Call error_at instead of warning_at.
11819 2014-05-05  Richard Biener  <rguenther@suse.de>
11821         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
11822         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
11823         under the TODO_verify_il umbrella.
11825 2014-05-05  Richard Biener  <rguenther@suse.de>
11827         * passes.c (execute_function_todo): Move TODO_verify_flow under
11828         the TODO_verify_ul umbrella.
11830 2014-05-05  Richard Biener  <rguenther@suse.de>
11832         PR middle-end/61010
11833         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
11834         X & CST away from a CST that is the mask of a mode.
11836 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11838         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
11839         int argument to enum machine_mode.
11840         (picochip_class_max_nregs): Ditto.
11841         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
11842         (picochip_class_max_nregs): Ditto.
11844 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11846         * target.def: Add new target hook.
11847         * doc/tm.texi: Regenerate.
11848         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
11849         * targhooks.c (default_keep_leaf_when_profiled): New function.
11851         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
11852         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
11854 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
11856         PR tree-optimization/60363
11857         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
11858         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
11859         (update_destination_phis): New parameter.
11860         (create_edge_and_update_destination_phis): Ditto.
11861         (ssa_fix_duplicate_block_edges): Pass new arguments.
11862         (thread_single_edge): Ditto.
11864 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
11866         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
11867         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
11868         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
11869         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
11870         Use RS6000_BTM_HARD_FLOAT.
11871         (BU_MISC_2): Likewise.
11872         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
11873         RS6000_BTM_HARD_FLOAT.
11874         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
11875         is explicitly used.
11876         (rs6000_invalid_builtin): Add hard floating builtin support.
11877         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
11878         hard float builtins.
11879         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
11881 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
11883         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
11884         Add missing function* argument.
11886 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
11888         * lra-constraints.c (valid_address_p): Move earlier in file.
11889         Add a constraint argument to the address_info version.
11890         (satisfies_memory_constraint_p): New function.
11891         (satisfies_address_constraint_p): Likewise.
11892         (process_alt_operands, curr_insn_transform): Use them.
11893         (process_address): Pass the constraint to valid_address_p when
11894         checking address operands.
11896 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
11898         * config/mips/mips.c (mips_isa_rev): New variable.
11899         (mips_set_architecture): Set it.
11900         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
11901         from mips_isa_rev.
11902         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
11903         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
11904         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
11905         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
11906         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
11907         conditions in terms of mips_isa_rev.
11908         (mips_isa_rev): Declare.
11910 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
11912         * config/sh/sh-mem.cc: Use tabs instead of spaces.
11913         (prob_unlikely, prob_likely): Make variables const.
11915 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
11917         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
11919 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
11921         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
11923 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
11925         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
11926         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
11927         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
11928         functions.
11929         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
11930         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
11931         sh_pass_in_reg_p.
11932         Replace usage of ROUND_REG with sh_round_reg.
11933         Use CEIL instead of ROUND_ADVANCE.
11935 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
11937         PR target/61026
11938         * config/sh/sh.c: Include stdlib headers before everything else.
11940 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
11942         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
11943         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
11944         (gimplify_adjust_omp_clauses): Simd region is never
11945         directly nested in combined parallel.  Instead, for linear
11946         with copyin/copyout, if in combined for simd loop, make decl
11947         firstprivate/lastprivate on OMP_FOR.
11948         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
11949         expand_omp_for_static_chunk): When setting endvar, also set
11950         fd->loop.v to the same value.
11952 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
11954         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
11956 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
11958         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
11959         expression.
11961 2014-05-02  Marek Polacek  <polacek@redhat.com>
11963         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
11965 2014-05-02  Kito Cheng  <kito@0xlab.org>
11967         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
11968         to a C expression marco.
11969         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
11970         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
11971         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
11972         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
11973         HONOR_REG_ALLOC_ORDER.
11974         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
11976 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11978         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
11980 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11982         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
11984 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
11986         * tree-if-conv.c (is_cond_scalar_reduction): New function.
11987         (convert_scalar_cond_reduction): Likewise.
11988         (predicate_scalar_phi): Add recognition and transformation
11989         of simple conditioanl reduction to be vectorizable.
11991 2014-05-01  Marek Polacek  <polacek@redhat.com>
11993         PR c/43245
11994         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
11996 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
11998         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
11999         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
12000         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
12001         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
12002         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
12003         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
12004         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
12005         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
12007 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
12009         * config/arc/arc.opt (mlra): Move comment above option name
12010         to avoid mis-parsing as language options.
12012 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12014         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
12015         * config/sol2.h: ... here.
12016         * config/sol2-10.h: Remove.
12018         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
12019         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
12020         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
12021         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
12022         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
12023         * config/sol2.h: ... here.
12024         (SECTION_NAME_FORMAT): Don't redefine.
12025         (STARTFILE_ARCH32_SPEC): Rename to ...
12026         (STARTFILE_ARCH_SPEC): ... this.
12027         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
12028         * config/sparc/sol2.h: ... here.
12029         (SECTION_NAME_FORMAT): Don't undef.
12030         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
12031         (SUBTARGET_EXTRA_SPECS): Remove.
12032         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
12034         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
12035         (MD_STARTFILE_PREFIX): Remove.
12036         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
12037         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
12038         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
12039         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
12040         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
12041         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
12042         * config/i386/sol2.h: ... here.
12043         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
12044         * config/i386/sol2-bi.h: Remove.
12045         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
12046         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
12048         * config/i386/t-sol2-64: Rename to ...
12049         * config/i386/t-sol2: ... this.
12050         * config/sparc/t-sol2-64: Rename to ...
12051         * config/sparc/t-sol2: ... this.
12053         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
12054         sol2_tm_file_head, sol2_tm_file_tail.
12055         Include ${cpu_type}/sol2.h before sol2.h.
12056         Remove sol2-10.h.
12057         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
12058         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
12059         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
12060         Reflect i386/t-sol2-64 renaming.
12061         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
12062         Reflect sparc/t-sol2-64 renaming.
12064 2014-04-30  Richard Biener  <rguenther@suse.de>
12066         * passes.c (execute_function_todo): Move TODO_verify_stmts
12067         and TODO_verify_ssa under the TODO_verify_il umbrella.
12068         * tree-ssa.h (verify_ssa): Adjust prototype.
12069         * tree-ssa.c (verify_ssa): Add parameter to tell whether
12070         we should verify SSA operands.
12071         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
12072         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
12073         whether we should verify whether not throwing stmts have EH info.
12074         * graphite-scop-detection.c (create_sese_edges): Adjust.
12075         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
12076         * tree-eh.c (lower_try_finally_switch): Do not add the
12077         default case label twice.
12079 2014-04-30  Marek Polacek  <polacek@redhat.com>
12081         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
12082         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
12083         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
12084         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
12086 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
12088         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
12089         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
12090         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
12091         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
12092         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
12093         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
12094         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
12095         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
12097 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
12099         * tree-cfg.c (dump_function_to_file): Dump the return type of
12100         functions, in a line to itself before the function body, mimicking
12101         the layout of a C function.
12103 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
12105         PR tree-optimization/60971
12106         * tree-tailcall.c (process_assignment): Reject conversions which
12107         reduce precision.
12109 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
12111         * calls.c (initialize_argument_information): Always treat
12112         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
12113         (expand_call): Likewise.
12114         (emit_library_call_calue_1): Likewise.
12115         * expr.c (PUSH_ARGS_REVERSED): Do not define.
12116         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
12117         code accordingly.
12119 2014-04-29  Nick Clifton  <nickc@redhat.com>
12121         * config/msp430/msp430.md (umulsidi): Fix typo.
12122         (mulhisi3): Enable even inside interrupt handlers.
12123         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
12124         bigger return address pushed in large mode.
12126 2014-04-29  Nick Clifton  <nickc@redhat.com>
12128         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
12129         (arc_init_reg_tables): Use a machine_mode enum to iterate over
12130         available modes.
12131         * config/m32r/m32r.c (init_reg_tables): Likewise.
12132         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
12133         enum to hold the modes.
12135 2014-04-29  Richard Biener  <rguenther@suse.de>
12137         * dominance.c (free_dominance_info): Add overload with
12138         function parameter.
12139         (dom_info_state): Likewise.
12140         (dom_info_available_p): Likewise.
12141         * basic-block.h (free_dominance_info, dom_info_state,
12142         dom_info_available_p): Declare overloads.
12143         * passes.c (execute_function_todo): Verify that verifiers
12144         don't change dominator info state.  Drop dominator info
12145         for IPA pass invocations.
12146         * cgraph.c (release_function_body): Restore asserts that
12147         dominator information is released.
12149 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
12151         * doc/invoke.texi: Fix typo.
12152         * tree-vrp.c: Fix typos.
12153         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
12155 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
12157         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
12159 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
12161         * config/aarch64/aarch64-builtins.c
12162         (aarch64_types_storestruct_lane_qualifiers): New.
12163         (TYPES_STORESTRUCT_LANE): Likewise.
12164         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
12165         (st3_lane): Likewise.
12166         (st4_lane): Likewise.
12167         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
12168         (vec_store_lanesci_lane<mode>): Likewise.
12169         (vec_store_lanesxi_lane<mode>): Likewise.
12170         (aarch64_st2_lane<VQ:mode>): Likewise.
12171         (aarch64_st3_lane<VQ:mode>): Likewise.
12172         (aarch64_st4_lane<VQ:mode>): Likewise.
12173         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
12174         * config/aarch64/arm_neon.h
12175         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
12176         use new macro arguments.
12177         (__ST3_LANE_FUNC): Likewise.
12178         (__ST4_LANE_FUNC): Likewise.
12179         * config/aarch64/iterators.md (V_TWO_ELEM): New.
12180         (V_THREE_ELEM): Likewise.
12181         (V_FOUR_ELEM): Likewise.
12183 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
12185         * doc/gimple.texi: Replace the description of the now-defunct
12186         union gimple_statement_d with a diagram showing the
12187         gimple_statement_base class hierarchy and its relationships to
12188         the GSS_ and GIMPLE_ enums.
12190 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
12192         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
12193         * config/aarch64/aarch64.c
12194         (aarch64_cannot_change_mode_class): Weaken conditions.
12195         (aarch64_modes_tieable_p): New.
12196         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
12198 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
12200         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
12201         (loadsync_<mode>): Change mode.
12202         (load_quadpti, store_quadpti): New.
12203         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
12204         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
12206 2014-04-28  Martin Jambor  <mjambor@suse.cz>
12208         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
12209         same alias type as the original statement.
12210         (subreplacement_assignment_data): New type.
12211         (handle_unscalarized_data_in_subtree): New type of parameter,
12212         generate new memory accesses with same alias type as the original
12213         statement.
12214         (load_assign_lhs_subreplacements): Likewise.
12215         (sra_modify_constructor_assign): Generate new memory accesses with
12216         same alias type as the original statement.
12218 2014-04-28  Richard Biener  <rguenther@suse.de>
12220         * tree-pass.h (TODO_verify_il): Define.
12221         (TODO_verify_all): Complete properly.
12222         * passes.c (execute_function_todo): Move existing loop-closed
12223         SSA verification under TODO_verify_il.
12224         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
12225         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
12226         Fix tree sharing issue.
12228 2014-04-28  Richard Biener  <rguenther@suse.de>
12230         PR middle-end/60092
12231         * builtins.def (DEF_C11_BUILTIN): Add.
12232         (BUILT_IN_ALIGNED_ALLOC): Likewise.
12233         * coretypes.h (enum function_class): Add function_c11_misc.
12234         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
12235         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
12236         (call_may_clobber_ref_p_1): Likewise.
12237         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12238         (mark_all_reaching_defs_necessary_1): Likewise.
12239         (propagate_necessity): Likewise.
12240         (eliminate_unnecessary_stmts): Likewise.
12241         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
12243 2014-04-28  Richard Biener  <rguenther@suse.de>
12245         * tree-vrp.c (vrp_var_may_overflow): Remove.
12246         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
12247         with overflow immediately bump to one before that value and
12248         let iteration figure out overflow status.
12250 2014-04-28  Richard Biener  <rguenther@suse.de>
12252         * configure.ac: Do valgrind header checks unconditionally.
12253         Add --enable-valgrind-annotations.
12254         * system.h: Guard valgrind header inclusion with
12255         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
12256         * alloc-pool.c (pool_alloc, pool_free): Use
12257         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
12258         to guard possibly dead code.
12259         * config.in: Regenerated.
12260         * configure: Likewise.
12262 2014-04-28  Jeff Law  <law@redhat.com>
12264         PR tree-optimization/60902
12265         * tree-ssa-threadedge.c
12266         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
12267         over real defs when invalidating outputs from statements that do not
12268         produce useful outputs for threading.
12270 2014-04-28  Richard Biener  <rguenther@suse.de>
12272         PR tree-optimization/60979
12273         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
12274         SCOPs that end in a block with a successor with abnormal
12275         predecessors.
12277 2014-04-28  Richard Biener  <rguenther@suse.de>
12279         * tree-pass.h (execute_pass_list): Adjust prototype.
12280         * passes.c (pass_manager::execute_early_local_passes): Adjust.
12281         (do_per_function): Change callback signature, push all actual
12282         work to the callbals.
12283         (do_per_function_toporder): Likewise.
12284         (execute_function_dump): Adjust.
12285         (execute_function_todo): Likewise.
12286         (clear_last_verified): Likewise.
12287         (verify_curr_properties): Likewise.
12288         (update_properties_after_pass): Likewise.
12289         (execute_pass_list_1): Split out from ...
12290         (execute_pass_list): ... here.  Adjust.
12291         (execute_ipa_pass_list): Likewise.
12292         * cgraphunit.c (cgraph_add_new_function): Adjust.
12293         (analyze_function): Likewise.
12294         (expand_function): Likewise.
12295         * cgraph.c (release_function_body): Free dominance info
12296         here instead of asserting it was magically freed elsewhere.
12298 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
12300         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
12301         * configure: Regenerate.
12302         * config/sparc/sparc.opt (muser-mode): New option.
12303         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
12304         for LEON3.
12305         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
12306         * doc/invoke.texi (SPARC options): Document -muser-mode.
12308 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
12310         * cselib.c (find_slot_memmode): Delete.
12311         (cselib_hasher): Change compare_type to a struct.
12312         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
12313         constants.
12314         (preserve_constants_and_equivs): Adjust for new compare_type.
12315         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
12316         (wrap_constant): Delete.
12317         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
12319 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
12321         * doc/install.texi (Building with profile feedback): Remove
12322         outdated sentence.
12324 2014-04-26  Tom de Vries  <tom@codesourcery.com>
12326         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
12327         array accesses.
12329 2014-04-25  Cary Coutant  <ccoutant@google.com>
12331         PR debug/60929
12332         * dwarf2out.c (should_move_die_to_comdat): A type definition
12333         can contain a subprogram definition, but don't move it to a
12334         comdat unit.
12335         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
12336         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
12337         from original DIE.
12338         (clone_tree_hash): Rename to...
12339         (clone_tree_partial): ...this; change callers.  Copy
12340         DW_TAG_subprogram DIEs as declarations.
12341         (copy_decls_walk): Don't copy children of a declaration into a
12342         type unit.
12344 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
12346         PR target/60969
12347         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
12348         alternative 12.
12350 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
12352         * config/arm/predicates.md (call_insn_operand): Add long_call check.
12353         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
12354         reg for long_call.
12355         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
12356         restriction.
12358 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12360         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
12362 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12364         PR tree-optimization/60930
12365         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
12366         creating a multiply candidate by folding two constant
12367         multiplicands when the result overflows.
12369 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
12371         PR tree-optimization/60960
12372         * tree-vect-generic.c (expand_vector_operation): Only call
12373         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
12375 2014-04-25  Tom de Vries  <tom@codesourcery.com>
12377         * expr.c (clobber_reg_mode): New function.
12378         * expr.h (clobber_reg): New function.
12380 2014-04-25  Tom de Vries  <tom@codesourcery.com>
12382         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
12383         clobbers.
12385 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
12386             Tom de Vries  <tom@codesourcery.com>
12388         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
12389         handle.
12390         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
12391         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
12392         new argument to find_all_hard_reg_sets call.
12394 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12396         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
12397         Use HOST_WIDE_INT_C for mask literal.
12398         (aarch_rev16_shleft_mask_imm_p): Likewise.
12400 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
12402         PR target/60941
12403         * config/sparc/sparc.md (ashlsi3_extend): Delete.
12405 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
12407         PR preprocessor/56540
12408         * config/i386/i386-c.c (ix86_target_macros): Define
12409         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
12411 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12413         * configure.ac (tga_func): Remove.
12414         (LIB_TLS_SPEC): Remove.
12415         * configure: Regenerate.
12416         * config.in: Regenerate.
12417         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
12419 2014-04-25  Richard Biener  <rguenther@suse.de>
12421         PR ipa/60912
12422         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
12423         call stmt use/clobber sets during stmt walk instead of
12424         walking the possibly incomplete set of caller edges.
12426 2014-04-25  Richard Biener  <rguenther@suse.de>
12428         PR ipa/60911
12429         * passes.c (apply_ipa_transforms): Inline into only caller ...
12430         (execute_one_pass): ... here.  Properly bring in function
12431         bodies for nodes we want to apply IPA transforms to.
12433 2014-04-24  Cong Hou  <congh@google.com>
12435         PR tree-optimization/60896
12436         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
12437         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
12438         (vect_mark_pattern_stmts): Set the def type of all statements in
12439         PATTERN_DEF_SEQ as vect_internal_def.
12441 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12443         * doc/extend.texi (PowerPC Built-in Functions): Document new
12444         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
12445         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
12447         * config/rs6000/predicates.md (const_0_to_3_operand): New
12448         predicate to match 0..3 integer constants.
12450         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
12451         to support adding miscellaneous builtin functions.
12452         (BU_DFP_MISC_2): Likewise.
12453         (BU_P7_MISC_1): Likewise.
12454         (BU_P7_MISC_2): Likewise.
12455         (BU_P8V_MISC_3): Likewise.
12456         (BU_MISC_1): Likewise.
12457         (BU_MISC_2): Likewise.
12458         (DIVWE): Add extended divide builtin functions.
12459         (DIVWEO): Likewise.
12460         (DIVWEU): Likewise.
12461         (DIVWEUO): Likewise.
12462         (DIVDE): Likewise.
12463         (DIVDEO): Likewise.
12464         (DIVDEU): Likewise.
12465         (DIVDEUO): Likewise.
12466         (DXEX): Add decimal floating-point builtin functions.
12467         (DXEXQ): Likewise.
12468         (DDEDPD): Likewise.
12469         (DDEDPDQ): Likewise.
12470         (DENBCD): Likewise.
12471         (DENBCDQ): Likewise.
12472         (DIEX): Likewise.
12473         (DIEXQ): Likewise.
12474         (DSCLI): Likewise.
12475         (DSCLIQ): Likewise.
12476         (DSCRI): Likewise.
12477         (DSCRIQ): Likewise.
12478         (CDTBCD): Add new BCD builtin functions.
12479         (CBCDTD): Likewise.
12480         (ADDG6S): Likewise.
12481         (BCDADD): Likewise.
12482         (BCDADD_LT): Likewise.
12483         (BCDADD_EQ): Likewise.
12484         (BCDADD_GT): Likewise.
12485         (BCDADD_OV): Likewise.
12486         (BCDSUB): Likewise.
12487         (BCDSUB_LT): Likewise.
12488         (BCDSUB_EQ): Likewise.
12489         (BCDSUB_GT): Likewise.
12490         (BCDSUB_OV): Likewise.
12491         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
12492         (UNPACK_TD): Likewise.
12493         (PACK_TF): Likewise.
12494         (UNPACK_TF): Likewise.
12495         (UNPACK_TF_0): Likewise.
12496         (UNPACK_TF_1): Likewise.
12497         (PACK_V1TI): Likewise.
12498         (UNPACK_V1TI): Likewise.
12500         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
12501         support for decimal floating point builtin functions.
12502         (rs6000_expand_ternop_builtin): Add checks for the new builtin
12503         functions that take constant arguments.
12504         (rs6000_invalid_builtin): Add decimal floating point builtin support.
12505         (rs6000_init_builtins): Setup long double, _Decimal64, and
12506         _Decimal128 types for new builtin functions.
12507         (builtin_function_type): Set the unsigned flags appropriately for
12508         the new builtin functions.
12509         (rs6000_opt_masks): Add support for decimal floating point builtin
12510         functions.
12512         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
12513         floating point builtin functions.
12514         (RS6000_BTM_COMMON): Likewise.
12515         (RS6000_BTI_long_double): Likewise.
12516         (RS6000_BTI_dfloat64): Likewise.
12517         (RS6000_BTI_dfloat128): Likewise.
12518         (long_double_type_internal_node): Likewise.
12519         (dfloat64_type_internal_node): Likewise.
12520         (dfloat128_type_internal_node): Likewise.
12522         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
12523         2.07 bcd arithmetic instructions.
12524         (UNSPEC_BCDSUB): Likewise.
12525         (UNSPEC_BCD_OVERFLOW): Likewise.
12526         (UNSPEC_BCD_ADD_SUB): Likewise.
12527         (bcd_add_sub): Likewise.
12528         (BCD_TEST): Likewise.
12529         (bcd<bcd_add_sub>): Likewise.
12530         (bcd<bcd_add_sub>_test): Likewise.
12531         (bcd<bcd_add_sub>_test2): Likewise.
12532         (bcd<bcd_add_sub>_<code>): Likewise.
12533         (peephole2 for combined bcd ops): Likewise.
12535         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
12536         decimal floating point builtin functions.
12537         (UNSPEC_DENBCD): Likewise.
12538         (UNSPEC_DXEX): Likewise.
12539         (UNSPEC_DIEX): Likewise.
12540         (UNSPEC_DSCLI): Likewise.
12541         (UNSPEC_DSCRI): Likewise.
12542         (D64_D128): Likewise.
12543         (dfp_suffix): Likewise.
12544         (dfp_ddedpd_<mode>): Likewise.
12545         (dfp_denbcd_<mode>): Likewise.
12546         (dfp_dxex_<mode>): Likewise.
12547         (dfp_diex_<mode>): Likewise.
12548         (dfp_dscli_<mode>): Likewise.
12549         (dfp_dscri_<mode>): Likewise.
12551         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
12552         builtin functions.
12553         (UNSPEC_CDTBCD): Likewise.
12554         (UNSPEC_CBCDTD): Likewise.
12555         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
12556         (UNSPEC_DIVEO): Likewise.
12557         (UNSPEC_DIVEU): Likewise.
12558         (UNSPEC_DIVEUO): Likewise.
12559         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
12560         pack/unpack 128-bit types.
12561         (UNSPEC_PACK_128BIT): Likewise.
12562         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
12563         (udiv<mode>3): Use idiv_ldiv mode attribute.
12564         (div<mode>3): Likewise.
12565         (addg6s): Add new BCD builtin functions.
12566         (cdtbcd): Likewise.
12567         (cbcdtd): Likewise.
12568         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
12569         (div_extend): Likewise.
12570         (div<div_extend>_<mode>"): Likewise.
12571         (FP128_64): Add support for new builtin functions to pack/unpack
12572         128-bit types.
12573         (unpack<mode>): Likewise.
12574         (unpacktf_0): Likewise.
12575         (unpacktf_1): Likewise.
12576         (unpack<mode>_dm): Likewise.
12577         (unpack<mode>_nodm): Likewise.
12578         (pack<mode>): Likewise.
12579         (unpackv1ti): Likewise.
12580         (packv1ti): Likewise.
12582 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
12584         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
12585         is disabled.
12587 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
12589         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
12590         * gimplify.c (omp_is_private): Change last argument's type to int.
12591         Only diagnose lastprivate if the simd argument is 1, only diagnose
12592         linear if the simd argument is 2.
12593         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
12594         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
12595         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
12596         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
12597         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
12598         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
12599         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
12600         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
12601         * tree-nested.c (convert_nonlocal_omp_clauses,
12602         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
12604 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
12606         PR target/60822
12607         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
12608         operand 1.
12610 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
12612         * flag-types.h (enum ivar_visibility): Add.
12614 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
12616         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
12617         function * argument.
12619 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
12621         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
12623 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
12624             Tom de Vries  <tom@codesourcery.com>
12626         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
12627         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
12628         reg-note.
12629         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
12630         * emit-rtl.c (try_split): Same.
12632 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
12633             Tom de Vries  <tom@codesourcery.com>
12635         * common.opt (fuse-caller-save): New option.
12637 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
12639         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
12640         elements for big-endian.
12642 2014-04-24  Richard Biener  <rguenther@suse.de>
12644         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
12645         during TER and instead use the sepops interface for expanding
12646         non-GIMPLE_SINGLE_RHS.
12648 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12650         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
12651         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
12653 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12655         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
12656         assembler 64-bit option.
12657         * configure: Regenerate.
12659 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12661         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
12662         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
12663         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
12664         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
12665         (TARGET_CRYPTO): Take TARGET_SIMD into account.
12667 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12669         * config/aarch64/aarch64-builtins.c
12670         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
12671         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
12672         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
12673         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
12674         builtins.
12675         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
12676         (Vrevsuff): New mode attribute.
12678 2014-04-24  Terry Guo  <terry.guo@arm.com>
12680         * config/arm/arm.h (machine_function): Define variable
12681         after_arm_reorg here.
12682         * config/arm/arm.c (after_arm_reorg): Remove the definition.
12683         (arm_split_constant): Update the way to access variable
12684         after_arm_reorg.
12685         (arm_reorg): Ditto.
12686         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
12688 2014-04-23  Tom de Vries  <tom@codesourcery.com>
12690         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
12692 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
12694         * is-a.h: Update comments to reflect the following changes to the
12695         "pointerness" of the API, making the template parameter match the
12696         return type, allowing use of is-a.h with typedefs of pointers.
12697         (is_a_helper::cast): Return a T rather then a pointer to a T, so
12698         that the return type matches the parameter to the is_a_helper.
12699         (as_a): Likewise.
12700         (dyn_cast): Likewise.
12702         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
12703         pointer from the is-a.h API.
12705         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
12706         (is_a_helper <cgraph_node *>::test): ...this, matching change to
12707         is-a.h API.
12708         (is_a_helper <varpool_node>::test): Likewise, convert to...
12709         (is_a_helper <varpool_node *>::test): ...this.
12711         (varpool_first_variable): Update for removal of implicit pointer
12712         from the is-a.h API.
12713         (varpool_next_variable): Likewise.
12714         (varpool_first_static_initializer): Likewise.
12715         (varpool_next_static_initializer): Likewise.
12716         (varpool_first_defined_variable): Likewise.
12717         (varpool_next_defined_variable): Likewise.
12718         (cgraph_first_defined_function): Likewise.
12719         (cgraph_next_defined_function): Likewise.
12720         (cgraph_first_function): Likewise.
12721         (cgraph_next_function): Likewise.
12722         (cgraph_first_function_with_gimple_body): Likewise.
12723         (cgraph_next_function_with_gimple_body): Likewise.
12724         (cgraph_alias_target): Likewise.
12725         (varpool_alias_target): Likewise.
12726         (cgraph_function_or_thunk_node): Likewise.
12727         (varpool_variable_node): Likewise.
12728         (symtab_real_symbol_p): Likewise.
12729         * cgraphunit.c (referred_to_p): Likewise.
12730         (analyze_functions): Likewise.
12731         (handle_alias_pairs): Likewise.
12732         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
12733         * gimple-ssa.h (gimple_vuse_op): Likewise.
12734         (gimple_vdef_op): Likewise.
12735         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
12736         * gimple.c (gimple_build_asm_1): Likewise.
12737         (gimple_build_try): Likewise.
12738         (gimple_build_resx): Likewise.
12739         (gimple_build_eh_dispatch): Likewise.
12740         (gimple_build_omp_for): Likewise.
12741         (gimple_omp_for_set_clauses): Likewise.
12743         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
12744         (is_a_helper <gimple_statement_asm *>::test): ...this.
12745         (is_a_helper <gimple_statement_bind>::test): Convert to...
12746         (is_a_helper <gimple_statement_bind *>::test): ...this.
12747         (is_a_helper <gimple_statement_call>::test): Convert to...
12748         (is_a_helper <gimple_statement_call *>::test): ...this.
12749         (is_a_helper <gimple_statement_catch>::test): Convert to...
12750         (is_a_helper <gimple_statement_catch *>::test): ...this.
12751         (is_a_helper <gimple_statement_resx>::test): Convert to...
12752         (is_a_helper <gimple_statement_resx *>::test): ...this.
12753         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
12754         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
12755         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
12756         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
12757         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
12758         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
12759         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
12760         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
12761         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
12762         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
12763         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
12764         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
12765         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
12766         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
12767         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
12768         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
12769         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
12770         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
12771         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
12772         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
12773         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
12774         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
12775         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
12776         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
12777         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
12778         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
12779         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
12780         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
12781         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
12782         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
12783         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
12784         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
12785         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
12786         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
12787         (is_a_helper <gimple_statement_phi>::test): Convert to...
12788         (is_a_helper <gimple_statement_phi *>::test): ...this.
12789         (is_a_helper <gimple_statement_transaction>::test): Convert to...
12790         (is_a_helper <gimple_statement_transaction *>::test): ...this.
12791         (is_a_helper <gimple_statement_try>::test): Convert to...
12792         (is_a_helper <gimple_statement_try *>::test): ...this.
12793         (is_a_helper <gimple_statement_wce>::test): Convert to...
12794         (is_a_helper <gimple_statement_wce *>::test): ...this.
12795         (is_a_helper <const gimple_statement_asm>::test): Convert to...
12796         (is_a_helper <const gimple_statement_asm *>::test): ...this.
12797         (is_a_helper <const gimple_statement_bind>::test): Convert to...
12798         (is_a_helper <const gimple_statement_bind *>::test): ...this.
12799         (is_a_helper <const gimple_statement_call>::test): Convert to...
12800         (is_a_helper <const gimple_statement_call *>::test): ...this.
12801         (is_a_helper <const gimple_statement_catch>::test): Convert to...
12802         (is_a_helper <const gimple_statement_catch *>::test): ...this.
12803         (is_a_helper <const gimple_statement_resx>::test): Convert to...
12804         (is_a_helper <const gimple_statement_resx *>::test): ...this.
12805         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
12806         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
12807         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
12808         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
12809         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
12810         Convert to...
12811         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
12812         ...this.
12813         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
12814         Convert to...
12815         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
12816         ...this.
12817         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
12818         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
12819         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
12820         to...
12821         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
12822         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
12823         to...
12824         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
12825         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
12826         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
12827         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
12828         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
12829         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
12830         to...
12831         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
12832         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
12833         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
12834         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
12835         to...
12836         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
12837         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
12838         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
12839         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
12840         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
12841         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
12842         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
12843         (is_a_helper <const gimple_statement_phi>::test): Convert to...
12844         (is_a_helper <const gimple_statement_phi *>::test): ...this.
12845         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
12846         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
12847         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
12848         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
12849         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
12850         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
12851         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
12852         to...
12853         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
12854         ...this.
12855         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
12856         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
12858         (gimple_use_ops): Update for removal of implicit pointer from the
12859         is-a.h API.
12860         (gimple_set_use_ops): Likewise.
12861         (gimple_vuse): Likewise.
12862         (gimple_vdef): Likewise.
12863         (gimple_vuse_ptr): Likewise.
12864         (gimple_vdef_ptr): Likewise.
12865         (gimple_set_vuse): Likewise.
12866         (gimple_set_vdef): Likewise.
12867         (gimple_omp_return_set_lhs): Likewise.
12868         (gimple_omp_return_lhs): Likewise.
12869         (gimple_omp_return_lhs_ptr): Likewise.
12870         (gimple_call_fntype): Likewise.
12871         (gimple_call_set_fntype): Likewise.
12872         (gimple_call_set_internal_fn): Likewise.
12873         (gimple_call_use_set): Likewise.
12874         (gimple_call_clobber_set): Likewise.
12875         (gimple_bind_vars): Likewise.
12876         (gimple_bind_set_vars): Likewise.
12877         (gimple_bind_body_ptr): Likewise.
12878         (gimple_bind_set_body): Likewise.
12879         (gimple_bind_add_stmt): Likewise.
12880         (gimple_bind_block): Likewise.
12881         (gimple_bind_set_block): Likewise.
12882         (gimple_asm_ninputs): Likewise.
12883         (gimple_asm_noutputs): Likewise.
12884         (gimple_asm_nclobbers): Likewise.
12885         (gimple_asm_nlabels): Likewise.
12886         (gimple_asm_input_op): Likewise.
12887         (gimple_asm_input_op_ptr): Likewise.
12888         (gimple_asm_output_op): Likewise.
12889         (gimple_asm_output_op_ptr): Likewise.
12890         (gimple_asm_set_output_op): Likewise.
12891         (gimple_asm_clobber_op): Likewise.
12892         (gimple_asm_set_clobber_op): Likewise.
12893         (gimple_asm_label_op): Likewise.
12894         (gimple_asm_set_label_op): Likewise.
12895         (gimple_asm_string): Likewise.
12896         (gimple_catch_types): Likewise.
12897         (gimple_catch_types_ptr): Likewise.
12898         (gimple_catch_handler_ptr): Likewise.
12899         (gimple_catch_set_types): Likewise.
12900         (gimple_catch_set_handler): Likewise.
12901         (gimple_eh_filter_types): Likewise.
12902         (gimple_eh_filter_types_ptr): Likewise.
12903         (gimple_eh_filter_failure_ptr): Likewise.
12904         (gimple_eh_filter_set_types): Likewise.
12905         (gimple_eh_filter_set_failure): Likewise.
12906         (gimple_eh_must_not_throw_fndecl): Likewise.
12907         (gimple_eh_must_not_throw_set_fndecl): Likewise.
12908         (gimple_eh_else_n_body_ptr): Likewise.
12909         (gimple_eh_else_e_body_ptr): Likewise.
12910         (gimple_eh_else_set_n_body): Likewise.
12911         (gimple_eh_else_set_e_body): Likewise.
12912         (gimple_try_eval_ptr): Likewise.
12913         (gimple_try_cleanup_ptr): Likewise.
12914         (gimple_try_set_eval): Likewise.
12915         (gimple_try_set_cleanup): Likewise.
12916         (gimple_wce_cleanup_ptr): Likewise.
12917         (gimple_wce_set_cleanup): Likewise.
12918         (gimple_phi_capacity): Likewise.
12919         (gimple_phi_num_args): Likewise.
12920         (gimple_phi_result): Likewise.
12921         (gimple_phi_result_ptr): Likewise.
12922         (gimple_phi_set_result): Likewise.
12923         (gimple_phi_arg): Likewise.
12924         (gimple_phi_set_arg): Likewise.
12925         (gimple_resx_region): Likewise.
12926         (gimple_resx_set_region): Likewise.
12927         (gimple_eh_dispatch_region): Likewise.
12928         (gimple_eh_dispatch_set_region): Likewise.
12929         (gimple_omp_critical_name): Likewise.
12930         (gimple_omp_critical_name_ptr): Likewise.
12931         (gimple_omp_critical_set_name): Likewise.
12932         (gimple_omp_for_clauses): Likewise.
12933         (gimple_omp_for_clauses_ptr): Likewise.
12934         (gimple_omp_for_set_clauses): Likewise.
12935         (gimple_omp_for_collapse): Likewise.
12936         (gimple_omp_for_index): Likewise.
12937         (gimple_omp_for_index_ptr): Likewise.
12938         (gimple_omp_for_set_index): Likewise.
12939         (gimple_omp_for_initial): Likewise.
12940         (gimple_omp_for_initial_ptr): Likewise.
12941         (gimple_omp_for_set_initial): Likewise.
12942         (gimple_omp_for_final): Likewise.
12943         (gimple_omp_for_final_ptr): Likewise.
12944         (gimple_omp_for_set_final): Likewise.
12945         (gimple_omp_for_incr): Likewise.
12946         (gimple_omp_for_incr_ptr): Likewise.
12947         (gimple_omp_for_set_incr): Likewise.
12948         (gimple_omp_for_pre_body_ptr): Likewise.
12949         (gimple_omp_for_set_pre_body): Likewise.
12950         (gimple_omp_parallel_clauses): Likewise.
12951         (gimple_omp_parallel_clauses_ptr): Likewise.
12952         (gimple_omp_parallel_set_clauses): Likewise.
12953         (gimple_omp_parallel_child_fn): Likewise.
12954         (gimple_omp_parallel_child_fn_ptr): Likewise.
12955         (gimple_omp_parallel_set_child_fn): Likewise.
12956         (gimple_omp_parallel_data_arg): Likewise.
12957         (gimple_omp_parallel_data_arg_ptr): Likewise.
12958         (gimple_omp_parallel_set_data_arg): Likewise.
12959         (gimple_omp_task_clauses): Likewise.
12960         (gimple_omp_task_clauses_ptr): Likewise.
12961         (gimple_omp_task_set_clauses): Likewise.
12962         (gimple_omp_task_child_fn): Likewise.
12963         (gimple_omp_task_child_fn_ptr): Likewise.
12964         (gimple_omp_task_set_child_fn): Likewise.
12965         (gimple_omp_task_data_arg): Likewise.
12966         (gimple_omp_task_data_arg_ptr): Likewise.
12967         (gimple_omp_task_set_data_arg): Likewise.
12968         (gimple_omp_taskreg_clauses): Likewise.
12969         (gimple_omp_taskreg_clauses_ptr): Likewise.
12970         (gimple_omp_taskreg_set_clauses): Likewise.
12971         (gimple_omp_taskreg_child_fn): Likewise.
12972         (gimple_omp_taskreg_child_fn_ptr): Likewise.
12973         (gimple_omp_taskreg_set_child_fn): Likewise.
12974         (gimple_omp_taskreg_data_arg): Likewise.
12975         (gimple_omp_taskreg_data_arg_ptr): Likewise.
12976         (gimple_omp_taskreg_set_data_arg): Likewise.
12977         (gimple_omp_task_copy_fn): Likewise.
12978         (gimple_omp_task_copy_fn_ptr): Likewise.
12979         (gimple_omp_task_set_copy_fn): Likewise.
12980         (gimple_omp_task_arg_size): Likewise.
12981         (gimple_omp_task_arg_size_ptr): Likewise.
12982         (gimple_omp_task_set_arg_size): Likewise.
12983         (gimple_omp_task_arg_align): Likewise.
12984         (gimple_omp_task_arg_align_ptr): Likewise.
12985         (gimple_omp_task_set_arg_align): Likewise.
12986         (gimple_omp_single_clauses): Likewise.
12987         (gimple_omp_single_clauses_ptr): Likewise.
12988         (gimple_omp_single_set_clauses): Likewise.
12989         (gimple_omp_target_clauses): Likewise.
12990         (gimple_omp_target_clauses_ptr): Likewise.
12991         (gimple_omp_target_set_clauses): Likewise.
12992         (gimple_omp_target_child_fn): Likewise.
12993         (gimple_omp_target_child_fn_ptr): Likewise.
12994         (gimple_omp_target_set_child_fn): Likewise.
12995         (gimple_omp_target_data_arg): Likewise.
12996         (gimple_omp_target_data_arg_ptr): Likewise.
12997         (gimple_omp_target_set_data_arg): Likewise.
12998         (gimple_omp_teams_clauses): Likewise.
12999         (gimple_omp_teams_clauses_ptr): Likewise.
13000         (gimple_omp_teams_set_clauses): Likewise.
13001         (gimple_omp_sections_clauses): Likewise.
13002         (gimple_omp_sections_clauses_ptr): Likewise.
13003         (gimple_omp_sections_set_clauses): Likewise.
13004         (gimple_omp_sections_control): Likewise.
13005         (gimple_omp_sections_control_ptr): Likewise.
13006         (gimple_omp_sections_set_control): Likewise.
13007         (gimple_omp_for_set_cond): Likewise.
13008         (gimple_omp_for_cond): Likewise.
13009         (gimple_omp_atomic_store_set_val): Likewise.
13010         (gimple_omp_atomic_store_val): Likewise.
13011         (gimple_omp_atomic_store_val_ptr): Likewise.
13012         (gimple_omp_atomic_load_set_lhs): Likewise.
13013         (gimple_omp_atomic_load_lhs): Likewise.
13014         (gimple_omp_atomic_load_lhs_ptr): Likewise.
13015         (gimple_omp_atomic_load_set_rhs): Likewise.
13016         (gimple_omp_atomic_load_rhs): Likewise.
13017         (gimple_omp_atomic_load_rhs_ptr): Likewise.
13018         (gimple_omp_continue_control_def): Likewise.
13019         (gimple_omp_continue_control_def_ptr): Likewise.
13020         (gimple_omp_continue_set_control_def): Likewise.
13021         (gimple_omp_continue_control_use): Likewise.
13022         (gimple_omp_continue_control_use_ptr): Likewise.
13023         (gimple_omp_continue_set_control_use): Likewise.
13024         (gimple_transaction_body_ptr): Likewise.
13025         (gimple_transaction_label): Likewise.
13026         (gimple_transaction_label_ptr): Likewise.
13027         (gimple_transaction_set_body): Likewise.
13028         (gimple_transaction_set_label): Likewise.
13030         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
13031         * ipa-inline-analysis.c (inline_write_summary): Likewise.
13032         * ipa-ref.c (ipa_record_reference): Likewise.
13033         * ipa-reference.c (analyze_function): Likewise.
13034         (ipa_reference_write_optimization_summary): Likewise.
13035         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
13036         (address_taken_from_non_vtable_p): Likewise.
13037         (comdat_can_be_unshared_p_1): Likewise.
13038         * lto-cgraph.c (lto_output_ref): Likewise.
13039         (add_references): Likewise.
13040         (compute_ltrans_boundary): Likewise.
13041         (output_symtab): Likewise.
13042         (input_ref): Likewise.
13043         (input_cgraph_1): Likewise.
13044         (output_cgraph_opt_summary): Likewise.
13045         * lto-streamer-out.c (lto_output): Likewise.
13046         (output_symbol_p): Likewise.
13047         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
13048         (lsei_start_function_in_partition): Likewise.
13049         (lsei_next_variable_in_partition): Likewise.
13050         (lsei_start_variable_in_partition): Likewise.
13051         * symtab.c (insert_to_assembler_name_hash): Likewise.
13052         (unlink_from_assembler_name_hash): Likewise.
13053         (symtab_unregister_node): Likewise.
13054         (symtab_remove_node): Likewise.
13055         (dump_symtab_node): Likewise.
13056         (verify_symtab_base): Likewise.
13057         (verify_symtab_node): Likewise.
13058         (symtab_make_decl_local): Likewise.
13059         (symtab_alias_ultimate_target): Likewise.
13060         (symtab_resolve_alias): Likewise.
13061         (symtab_get_symbol_partitioning_class): Likewise.
13062         * tree-phinodes.c (allocate_phi_node): Likewise.
13063         (reserve_phi_args_for_new_edge): Likewise.
13064         (remove_phi_args): Likewise.
13065         * varpool.c (varpool_node_for_asm): Likewise.
13066         (varpool_remove_unreferenced_decls): Likewise.
13068 2014-04-23  Jeff Law  <law@redhat.com>
13070         PR tree-optimization/60902
13071         * tree-ssa-threadedge.c
13072         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
13073         invalidate outputs from statements that do not produce useful
13074         outputs for threading.
13076 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
13078         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
13079         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
13080         machine descriptions for Stack Smashing Protector.
13082 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
13084         * aarch64.md (<optab>_rol<mode>3): New pattern.
13085         (<optab>_rolsi3_uxtw): Likewise.
13086         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
13088 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
13090         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
13091         (arm_cortex_a12_tune): Likewise.
13093 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13095         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
13097 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13099         * config/arm/arm.md (arm_rev16si2): New pattern.
13100         (arm_rev16si2_alt): Likewise.
13101         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
13103 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13105         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
13106         (rev16<mode>2_alt): Likewise.
13107         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
13108         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
13109         (aarch_rev16_shleft_mask_imm_p): Likewise.
13110         (aarch_rev16_p_1): Likewise.
13111         (aarch_rev16_p): Likewise.
13112         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
13113         (aarch_rev16_shright_mask_imm_p): Likewise.
13114         (aarch_rev16_shleft_mask_imm_p): Likewise.
13116 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13118         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
13119         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
13120         rev cost.
13121         (cortex_a53_extra_costs): Likewise.
13122         (cortex_a57_extra_costs): Likewise.
13123         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
13124         (cortexa7_extra_costs): Likewise.
13125         (cortexa8_extra_costs): Likewise.
13126         (cortexa12_extra_costs): Likewise.
13127         (cortexa15_extra_costs): Likewise.
13128         (v7m_extra_costs): Likewise.
13129         (arm_new_rtx_costs): Handle BSWAP.
13131 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13133         * config/arm/arm.c (cortexa8_extra_costs): New table.
13134         (arm_cortex_a8_tune): New tuning struct.
13135         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
13137 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13139         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
13141 2014-04-23  Richard Biener  <rguenther@suse.de>
13143         * Makefile.in (OBJS): Remove loop-unswitch.o.
13144         * tree-pass.h (make_pass_rtl_unswitch): Remove.
13145         * passes.def (pass_rtl_unswitch): Likewise.
13146         * loop-init.c (gate_rtl_unswitch): Likewise.
13147         (rtl_unswitch): Likewise.
13148         (pass_data_rtl_unswitch): Likewise.
13149         (pass_rtl_unswitch): Likewise.
13150         (make_pass_rtl_unswitch): Likewise.
13151         * rtl.h (reversed_condition): Likewise.
13152         (compare_and_jump_seq): Likewise.
13153         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
13154         and make static.
13155         * loop-unroll.c (compare_and_jump_seq): Likewise.
13157 2014-04-23  Richard Biener  <rguenther@suse.de>
13159         PR tree-optimization/60903
13160         * tree-ssa-loop-im.c (analyze_memory_references): Remove
13161         commented code block.
13162         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
13163         loop flags to newly created BBs and edges.
13165 2014-04-23  Nick Clifton  <nickc@redhat.com>
13167         * config/msp430/msp430.c (msp430_handle_option): Move function
13168         to msp430-common.c
13169         (msp430_option_override): Simplify mcu and mcpu option handling.
13170         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
13171         support for -mhwmult command line option.
13172         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
13173         -mhwmult command line option.
13174         (msp430_hwmult_enabled): Delete.
13175         (msp43o_output_labelref): Add support for -mhwmult command line option.
13176         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
13177         (umulsidi3): Likewise.
13178         * config/msp430/msp430.opt (mmcu): Add Report attribute.
13179         (mcpu, mlarge, msmall): Likewise.
13180         (mhwmult): New option.
13181         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
13182         prototype.
13183         (msp430_is_f5_mcu): Remove prototype.
13184         (msp430_use_f5_series_hwmult): Add prototype.
13185         * config/msp430/msp430-opts.h: New file.
13186         * common/config/msp430: New directory.
13187         * common/config/msp430/msp430-common.c: New file.
13188         * config.gcc (msp430): Remove target_has_targetm_common.
13189         * doc/invoke.texi: Document -mhwmult command line option.
13191 2014-04-23  Nick Clifton  <nickc@redhat.com>
13193         * config/i386/cygwin.h (ENDFILE_SPEC): Include
13194         default-manifest.o if it can be found in the search path.
13195         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
13197 2014-04-23  Terry Guo  <terry.guo@arm.com>
13199         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
13201 2014-04-23  Richard Biener  <rguenther@suse.de>
13203         PR middle-end/60895
13204         * tree-inline.c (declare_return_variable): Use mark_addressable.
13206 2014-04-23  Richard Biener  <rguenther@suse.de>
13208         PR middle-end/60891
13209         * loop-init.c (loop_optimizer_init): Make sure to apply
13210         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
13212 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
13214         PR sanitizer/60275
13215         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
13216         New options.
13217         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
13218         if flag_sanitize_undefined_trap_on_error.
13219         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
13220         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
13221         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
13222         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
13223         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
13224         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
13225         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
13226         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
13227         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
13228         * ubsan.c (ubsan_instrument_unreachable): Return
13229         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
13230         (ubsan_expand_null_ifn): Emit __builtin_trap ()
13231         if flag_sanitize_undefined_trap_on_error and
13232         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
13233         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
13234         instrument_bool_enum_load): Emit __builtin_trap () if
13235         flag_sanitize_undefined_trap_on_error and
13236         __builtin_handle_*_abort () if !flag_sanitize_recover.
13237         * doc/invoke.texi (-fsanitize-recover,
13238         -fsanitize-undefined-trap-on-error): Document.
13240 2014-04-22  Christian Bruel  <christian.bruel@st.com>
13242         * config/sh/sh.md (mov<mode>): Replace movQIHI.
13243          Force immediates to SImode.
13245 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
13247         * config/nios2/nios2.md (UNSPEC_ROUND): New.
13248         (lroundsfsi2): New.
13249         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
13250         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
13251         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
13252         (nios2_fpu_insn): Add entry for round.
13253         (N2FPU_NO_ERRNO_P): Define.
13254         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
13255         flag_errno_math.
13256         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
13258 2014-04-22  Richard Henderson  <rth@redhat.com>
13260         * config/aarch64/aarch64 (addti3, subti3): New expanders.
13261         (add<GPI>3_compare0): Remove leading * from name.
13262         (add<GPI>3_carryin): Likewise.
13263         (sub<GPI>3_compare0): Likewise.
13264         (sub<GPI>3_carryin): Likewise.
13265         (<su_optab>mulditi3): New expander.
13266         (multi3): New expander.
13267         (madd<GPI>): Remove leading * from name.
13269 2014-04-22  Martin Jambor  <mjambor@suse.cz>
13271         * cgraphclones.c (cgraph_function_versioning): Copy
13272         ipa_transforms_to_apply instead of asserting it is empty.
13274 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
13276         PR target/60868
13277         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
13278         on count_exp to get mode.
13280 2014-04-22  Andrew Pinski  <apinski@cavium.com>
13282         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
13283         Handle TLS for ILP32.
13284         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
13285         (tlsie_small_<mode>): this and handle PTR.
13286         (tlsie_small_sidi): New pattern.
13287         (tlsle_small): Change to an expand to handle ILP32.
13288         (tlsle_small_<mode>): New pattern.
13289         (tlsdesc_small): Rename to ...
13290         (tlsdesc_small_<mode>): this and handle PTR.
13292 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13294         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
13296 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
13298         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
13299         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
13300         (aarch64_types_signed_poly_qualifiers): Likewise.
13301         (aarch64_types_unsigned_signed_qualifiers): Likewise.
13302         (aarch64_types_poly_signed_qualifiers): Likewise.
13303         (TYPES_REINTERP_SS): Type macro added.
13304         (TYPES_REINTERP_SU): Likewise.
13305         (TYPES_REINTERP_SP): Likewise.
13306         (TYPES_REINTERP_US): Likewise.
13307         (TYPES_REINTERP_PS): Likewise.
13308         (aarch64_fold_builtin): New expression folding added.
13309         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
13310         Declarations removed.
13311         (REINTERP_SS): Declarations added.
13312         (REINTERP_US): Likewise.
13313         (REINTERP_PS): Likewise.
13314         (REINTERP_SU): Likewise.
13315         (REINTERP_SP): Likewise.
13316         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
13317         (vreinterpretq_p8_f64): Likewise.
13318         (vreinterpret_p16_f64): Likewise.
13319         (vreinterpretq_p16_f64): Likewise.
13320         (vreinterpret_f32_f64): Likewise.
13321         (vreinterpretq_f32_f64): Likewise.
13322         (vreinterpret_f64_f32): Likewise.
13323         (vreinterpret_f64_p8): Likewise.
13324         (vreinterpret_f64_p16): Likewise.
13325         (vreinterpret_f64_s8): Likewise.
13326         (vreinterpret_f64_s16): Likewise.
13327         (vreinterpret_f64_s32): Likewise.
13328         (vreinterpret_f64_s64): Likewise.
13329         (vreinterpret_f64_u8): Likewise.
13330         (vreinterpret_f64_u16): Likewise.
13331         (vreinterpret_f64_u32): Likewise.
13332         (vreinterpret_f64_u64): Likewise.
13333         (vreinterpretq_f64_f32): Likewise.
13334         (vreinterpretq_f64_p8): Likewise.
13335         (vreinterpretq_f64_p16): Likewise.
13336         (vreinterpretq_f64_s8): Likewise.
13337         (vreinterpretq_f64_s16): Likewise.
13338         (vreinterpretq_f64_s32): Likewise.
13339         (vreinterpretq_f64_s64): Likewise.
13340         (vreinterpretq_f64_u8): Likewise.
13341         (vreinterpretq_f64_u16): Likewise.
13342         (vreinterpretq_f64_u32): Likewise.
13343         (vreinterpretq_f64_u64): Likewise.
13344         (vreinterpret_s64_f64): Likewise.
13345         (vreinterpretq_s64_f64): Likewise.
13346         (vreinterpret_u64_f64): Likewise.
13347         (vreinterpretq_u64_f64): Likewise.
13348         (vreinterpret_s8_f64): Likewise.
13349         (vreinterpretq_s8_f64): Likewise.
13350         (vreinterpret_s16_f64): Likewise.
13351         (vreinterpretq_s16_f64): Likewise.
13352         (vreinterpret_s32_f64): Likewise.
13353         (vreinterpretq_s32_f64): Likewise.
13354         (vreinterpret_u8_f64): Likewise.
13355         (vreinterpretq_u8_f64): Likewise.
13356         (vreinterpret_u16_f64): Likewise.
13357         (vreinterpretq_u16_f64): Likewise.
13358         (vreinterpret_u32_f64): Likewise.
13359         (vreinterpretq_u32_f64): Likewise.
13361 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
13363         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
13364         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
13365         (vreinterpret_p8_s8): Likewise.
13366         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
13367         (vreinterpret_p8_s16): Likewise.
13368         (vreinterpret_p8_s32): Likewise.
13369         (vreinterpret_p8_s64): Likewise.
13370         (vreinterpret_p8_f32): Likewise.
13371         (vreinterpret_p8_u8): Likewise.
13372         (vreinterpret_p8_u16): Likewise.
13373         (vreinterpret_p8_u32): Likewise.
13374         (vreinterpret_p8_u64): Likewise.
13375         (vreinterpret_p8_p16): Likewise.
13376         (vreinterpretq_p8_s8): Likewise.
13377         (vreinterpretq_p8_s16): Likewise.
13378         (vreinterpretq_p8_s32): Likewise.
13379         (vreinterpretq_p8_s64): Likewise.
13380         (vreinterpretq_p8_f32): Likewise.
13381         (vreinterpretq_p8_u8): Likewise.
13382         (vreinterpretq_p8_u16): Likewise.
13383         (vreinterpretq_p8_u32): Likewise.
13384         (vreinterpretq_p8_u64): Likewise.
13385         (vreinterpretq_p8_p16): Likewise.
13386         (vreinterpret_p16_s8): Likewise.
13387         (vreinterpret_p16_s16): Likewise.
13388         (vreinterpret_p16_s32): Likewise.
13389         (vreinterpret_p16_s64): Likewise.
13390         (vreinterpret_p16_f32): Likewise.
13391         (vreinterpret_p16_u8): Likewise.
13392         (vreinterpret_p16_u16): Likewise.
13393         (vreinterpret_p16_u32): Likewise.
13394         (vreinterpret_p16_u64): Likewise.
13395         (vreinterpret_p16_p8): Likewise.
13396         (vreinterpretq_p16_s8): Likewise.
13397         (vreinterpretq_p16_s16): Likewise.
13398         (vreinterpretq_p16_s32): Likewise.
13399         (vreinterpretq_p16_s64): Likewise.
13400         (vreinterpretq_p16_f32): Likewise.
13401         (vreinterpretq_p16_u8): Likewise.
13402         (vreinterpretq_p16_u16): Likewise.
13403         (vreinterpretq_p16_u32): Likewise.
13404         (vreinterpretq_p16_u64): Likewise.
13405         (vreinterpretq_p16_p8): Likewise.
13406         (vreinterpret_f32_s8): Likewise.
13407         (vreinterpret_f32_s16): Likewise.
13408         (vreinterpret_f32_s32): Likewise.
13409         (vreinterpret_f32_s64): Likewise.
13410         (vreinterpret_f32_u8): Likewise.
13411         (vreinterpret_f32_u16): Likewise.
13412         (vreinterpret_f32_u32): Likewise.
13413         (vreinterpret_f32_u64): Likewise.
13414         (vreinterpret_f32_p8): Likewise.
13415         (vreinterpret_f32_p16): Likewise.
13416         (vreinterpretq_f32_s8): Likewise.
13417         (vreinterpretq_f32_s16): Likewise.
13418         (vreinterpretq_f32_s32): Likewise.
13419         (vreinterpretq_f32_s64): Likewise.
13420         (vreinterpretq_f32_u8): Likewise.
13421         (vreinterpretq_f32_u16): Likewise.
13422         (vreinterpretq_f32_u32): Likewise.
13423         (vreinterpretq_f32_u64): Likewise.
13424         (vreinterpretq_f32_p8): Likewise.
13425         (vreinterpretq_f32_p16): Likewise.
13426         (vreinterpret_s64_s8): Likewise.
13427         (vreinterpret_s64_s16): Likewise.
13428         (vreinterpret_s64_s32): Likewise.
13429         (vreinterpret_s64_f32): Likewise.
13430         (vreinterpret_s64_u8): Likewise.
13431         (vreinterpret_s64_u16): Likewise.
13432         (vreinterpret_s64_u32): Likewise.
13433         (vreinterpret_s64_u64): Likewise.
13434         (vreinterpret_s64_p8): Likewise.
13435         (vreinterpret_s64_p16): Likewise.
13436         (vreinterpretq_s64_s8): Likewise.
13437         (vreinterpretq_s64_s16): Likewise.
13438         (vreinterpretq_s64_s32): Likewise.
13439         (vreinterpretq_s64_f32): Likewise.
13440         (vreinterpretq_s64_u8): Likewise.
13441         (vreinterpretq_s64_u16): Likewise.
13442         (vreinterpretq_s64_u32): Likewise.
13443         (vreinterpretq_s64_u64): Likewise.
13444         (vreinterpretq_s64_p8): Likewise.
13445         (vreinterpretq_s64_p16): Likewise.
13446         (vreinterpret_u64_s8): Likewise.
13447         (vreinterpret_u64_s16): Likewise.
13448         (vreinterpret_u64_s32): Likewise.
13449         (vreinterpret_u64_s64): Likewise.
13450         (vreinterpret_u64_f32): Likewise.
13451         (vreinterpret_u64_u8): Likewise.
13452         (vreinterpret_u64_u16): Likewise.
13453         (vreinterpret_u64_u32): Likewise.
13454         (vreinterpret_u64_p8): Likewise.
13455         (vreinterpret_u64_p16): Likewise.
13456         (vreinterpretq_u64_s8): Likewise.
13457         (vreinterpretq_u64_s16): Likewise.
13458         (vreinterpretq_u64_s32): Likewise.
13459         (vreinterpretq_u64_s64): Likewise.
13460         (vreinterpretq_u64_f32): Likewise.
13461         (vreinterpretq_u64_u8): Likewise.
13462         (vreinterpretq_u64_u16): Likewise.
13463         (vreinterpretq_u64_u32): Likewise.
13464         (vreinterpretq_u64_p8): Likewise.
13465         (vreinterpretq_u64_p16): Likewise.
13466         (vreinterpret_s8_s16): Likewise.
13467         (vreinterpret_s8_s32): Likewise.
13468         (vreinterpret_s8_s64): Likewise.
13469         (vreinterpret_s8_f32): Likewise.
13470         (vreinterpret_s8_u8): Likewise.
13471         (vreinterpret_s8_u16): Likewise.
13472         (vreinterpret_s8_u32): Likewise.
13473         (vreinterpret_s8_u64): Likewise.
13474         (vreinterpret_s8_p8): Likewise.
13475         (vreinterpret_s8_p16): Likewise.
13476         (vreinterpretq_s8_s16): Likewise.
13477         (vreinterpretq_s8_s32): Likewise.
13478         (vreinterpretq_s8_s64): Likewise.
13479         (vreinterpretq_s8_f32): Likewise.
13480         (vreinterpretq_s8_u8): Likewise.
13481         (vreinterpretq_s8_u16): Likewise.
13482         (vreinterpretq_s8_u32): Likewise.
13483         (vreinterpretq_s8_u64): Likewise.
13484         (vreinterpretq_s8_p8): Likewise.
13485         (vreinterpretq_s8_p16): Likewise.
13486         (vreinterpret_s16_s8): Likewise.
13487         (vreinterpret_s16_s32): Likewise.
13488         (vreinterpret_s16_s64): Likewise.
13489         (vreinterpret_s16_f32): Likewise.
13490         (vreinterpret_s16_u8): Likewise.
13491         (vreinterpret_s16_u16): Likewise.
13492         (vreinterpret_s16_u32): Likewise.
13493         (vreinterpret_s16_u64): Likewise.
13494         (vreinterpret_s16_p8): Likewise.
13495         (vreinterpret_s16_p16): Likewise.
13496         (vreinterpretq_s16_s8): Likewise.
13497         (vreinterpretq_s16_s32): Likewise.
13498         (vreinterpretq_s16_s64): Likewise.
13499         (vreinterpretq_s16_f32): Likewise.
13500         (vreinterpretq_s16_u8): Likewise.
13501         (vreinterpretq_s16_u16): Likewise.
13502         (vreinterpretq_s16_u32): Likewise.
13503         (vreinterpretq_s16_u64): Likewise.
13504         (vreinterpretq_s16_p8): Likewise.
13505         (vreinterpretq_s16_p16): Likewise.
13506         (vreinterpret_s32_s8): Likewise.
13507         (vreinterpret_s32_s16): Likewise.
13508         (vreinterpret_s32_s64): Likewise.
13509         (vreinterpret_s32_f32): Likewise.
13510         (vreinterpret_s32_u8): Likewise.
13511         (vreinterpret_s32_u16): Likewise.
13512         (vreinterpret_s32_u32): Likewise.
13513         (vreinterpret_s32_u64): Likewise.
13514         (vreinterpret_s32_p8): Likewise.
13515         (vreinterpret_s32_p16): Likewise.
13516         (vreinterpretq_s32_s8): Likewise.
13517         (vreinterpretq_s32_s16): Likewise.
13518         (vreinterpretq_s32_s64): Likewise.
13519         (vreinterpretq_s32_f32): Likewise.
13520         (vreinterpretq_s32_u8): Likewise.
13521         (vreinterpretq_s32_u16): Likewise.
13522         (vreinterpretq_s32_u32): Likewise.
13523         (vreinterpretq_s32_u64): Likewise.
13524         (vreinterpretq_s32_p8): Likewise.
13525         (vreinterpretq_s32_p16): Likewise.
13526         (vreinterpret_u8_s8): Likewise.
13527         (vreinterpret_u8_s16): Likewise.
13528         (vreinterpret_u8_s32): Likewise.
13529         (vreinterpret_u8_s64): Likewise.
13530         (vreinterpret_u8_f32): Likewise.
13531         (vreinterpret_u8_u16): Likewise.
13532         (vreinterpret_u8_u32): Likewise.
13533         (vreinterpret_u8_u64): Likewise.
13534         (vreinterpret_u8_p8): Likewise.
13535         (vreinterpret_u8_p16): Likewise.
13536         (vreinterpretq_u8_s8): Likewise.
13537         (vreinterpretq_u8_s16): Likewise.
13538         (vreinterpretq_u8_s32): Likewise.
13539         (vreinterpretq_u8_s64): Likewise.
13540         (vreinterpretq_u8_f32): Likewise.
13541         (vreinterpretq_u8_u16): Likewise.
13542         (vreinterpretq_u8_u32): Likewise.
13543         (vreinterpretq_u8_u64): Likewise.
13544         (vreinterpretq_u8_p8): Likewise.
13545         (vreinterpretq_u8_p16): Likewise.
13546         (vreinterpret_u16_s8): Likewise.
13547         (vreinterpret_u16_s16): Likewise.
13548         (vreinterpret_u16_s32): Likewise.
13549         (vreinterpret_u16_s64): Likewise.
13550         (vreinterpret_u16_f32): Likewise.
13551         (vreinterpret_u16_u8): Likewise.
13552         (vreinterpret_u16_u32): Likewise.
13553         (vreinterpret_u16_u64): Likewise.
13554         (vreinterpret_u16_p8): Likewise.
13555         (vreinterpret_u16_p16): Likewise.
13556         (vreinterpretq_u16_s8): Likewise.
13557         (vreinterpretq_u16_s16): Likewise.
13558         (vreinterpretq_u16_s32): Likewise.
13559         (vreinterpretq_u16_s64): Likewise.
13560         (vreinterpretq_u16_f32): Likewise.
13561         (vreinterpretq_u16_u8): Likewise.
13562         (vreinterpretq_u16_u32): Likewise.
13563         (vreinterpretq_u16_u64): Likewise.
13564         (vreinterpretq_u16_p8): Likewise.
13565         (vreinterpretq_u16_p16): Likewise.
13566         (vreinterpret_u32_s8): Likewise.
13567         (vreinterpret_u32_s16): Likewise.
13568         (vreinterpret_u32_s32): Likewise.
13569         (vreinterpret_u32_s64): Likewise.
13570         (vreinterpret_u32_f32): Likewise.
13571         (vreinterpret_u32_u8): Likewise.
13572         (vreinterpret_u32_u16): Likewise.
13573         (vreinterpret_u32_u64): Likewise.
13574         (vreinterpret_u32_p8): Likewise.
13575         (vreinterpret_u32_p16): Likewise.
13576         (vreinterpretq_u32_s8): Likewise.
13577         (vreinterpretq_u32_s16): Likewise.
13578         (vreinterpretq_u32_s32): Likewise.
13579         (vreinterpretq_u32_s64): Likewise.
13580         (vreinterpretq_u32_f32): Likewise.
13581         (vreinterpretq_u32_u8): Likewise.
13582         (vreinterpretq_u32_u16): Likewise.
13583         (vreinterpretq_u32_u64): Likewise.
13584         (vreinterpretq_u32_p8): Likewise.
13585         (vreinterpretq_u32_p16): Likewise.
13587 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
13589         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
13590         Pattern extended.
13591         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
13592         (sqabs): Likewise.
13593         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
13594         (vqnegd_s64): Likewise.
13595         (vqabs_s64): Likewise.
13596         (vqabsd_s64): Likewise.
13598 2014-04-22  Richard Henderson  <rth@redhat.com>
13600         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
13601         computation to the top of the loop.
13603 2014-04-22  Renlin  <renlin.li@arm.com>
13604             Jiong Wang  <jiong.wang@arm.com>
13606         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
13607         * config/aarch64/aarch64.c (aarch64_layout_frame)
13608         (aarch64_initial_elimination_offset): Likewise.
13610 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13612         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
13613         Fix indentation.
13615 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
13617         * machmode.h (bitwise_mode_for_mode): Declare.
13618         * stor-layout.h (bitwise_type_for_mode): Likewise.
13619         * stor-layout.c (bitwise_mode_for_mode): New function.
13620         (bitwise_type_for_mode): Likewise.
13621         * builtins.c (fold_builtin_memory_op): Use it instead of
13622         int_mode_for_mode and build_nonstandard_integer_type.
13624 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13626         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
13627         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
13628         (*-*-solaris2*): Simplify.
13629         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
13630         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
13631         *-*-solaris2.9* handling.
13633         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
13634         as bug.
13635         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
13636         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
13637         handling, simplify.
13638         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
13639         * configure: Regenerate.
13641         * config/i386/sol2-9.h: Remove.
13643         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
13644         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
13645         Remove Solaris 9 references.
13647 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
13649         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
13650         (floatuns<GPI:mode><GPF:mode>2): Remove.
13651         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
13652         and floatuns conversions.
13653         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
13654         and floatuns conversions.
13655         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
13656         (w1,w2): New mode attributes for inequal width conversions.
13658 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
13660         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
13661         the output asm format.
13663 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
13665         * config/aarch64/aarch64-simd.md
13666         (aarch64_cm<optab>di): Always split.
13667         (*aarch64_cm<optab>di): New.
13668         (aarch64_cmtstdi): Always split.
13669         (*aarch64_cmtstdi): New.
13671 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
13673         PR tree-optimization/60823
13674         * omp-low.c (ipa_simd_modify_function_body): Go through
13675         all SSA_NAMEs and for those refering to vector arguments
13676         which are going to be replaced adjust SSA_NAME_VAR and,
13677         if it is a default definition, change it into a non-default
13678         definition assigned at the beginning of function from new_decl.
13679         (ipa_simd_modify_stmt_ops): Rewritten.
13680         * tree-dfa.c (set_ssa_default_def): When removing default def,
13681         check for NULL loc instead of NULL *loc.
13683 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13685         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
13686         restrictions on core registers for DImode values in Thumb2.
13688 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
13690         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
13691         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
13693 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
13695         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
13696         (*iordi_notzesidi_di): Likewise.
13697         (*iordi_notsesidi_di): Likewise.
13699 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
13701         * config/arm/arm-protos.h (tune_params): New struct members.
13702         * config/arm/arm.c: Initialise tune_params per processor.
13703         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
13704         for speed, based on new tune_params.
13706 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
13708         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
13709         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
13710         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
13711         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
13712         * config/aarch64/arm_neon.h (vrnd_f64): Added.
13713         (vrnda_f64): Likewise.
13714         (vrndi_f64): Likewise.
13715         (vrndm_f64): Likewise.
13716         (vrndn_f64): Likewise.
13717         (vrndp_f64): Likewise.
13718         (vrndx_f64): Likewise.
13720 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
13722         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
13723         GET_MODE_SIZE argument is enum machine_mode.
13725 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
13727         PR target/60910
13728         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
13729         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
13731 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
13733         PR middle-end/60281
13734         * asan.c (asan_emit_stack_protection): Force the base to align to
13735         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
13736         appropriate bits if STRICT_ALIGNMENT.
13737         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
13738         when asan is on.
13739         (expand_used_vars): Leave a space in the stack frame for alignment
13740         if STRICT_ALIGNMENT.
13742 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
13744         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
13745         than a gimple.
13746         (gimple_store_p): Likewise.
13747         (gimple_assign_load_p): Likewise.
13748         (gimple_assign_cast_p): Likewise.
13749         (gimple_clobber_p): Likewise.
13751         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
13752         rather than a gimple.
13753         (gimple_assign_cast_p): Likewise.
13755 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
13757         PR target/60735
13758         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
13759         If mode is DDmode and TARGET_E500_DOUBLE allow move.
13761         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
13762         more debug information for E500 if -mdebug=reg.
13764 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
13766         PR target/60909
13767         * config/i386/i386.c (ix86_expand_builtin)
13768         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
13769         register for target RTX.
13770         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
13772 2014-04-18  Cong Hou  <congh@google.com>
13774         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
13775         the widen-mult pattern by handling two operands with different sizes,
13776         and operands whose size is smaller than half of the result type.
13778 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
13780         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
13781         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
13782         (do_estimate_edge_time): Compute it.
13783         * ipa-inline.c (want_inline_small_function_p): Bypass
13784         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
13786 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
13788         * ipa-inline.c (spec_rem): New static variable.
13789         (dump_overall_stats): New function.
13790         (dump_inline_stats): New function.
13792 2014-04-18  Richard Henderson  <rth@redhat.com>
13794         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
13795         to GET_MODE_SIZE, not a reg_class_t.
13797 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13799         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
13800         (vsx_xxmrglw_<mode>): Likewise.
13802 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
13804         PR target/60876
13805         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
13806         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
13807         (rs6000_init_hard_regno_mode_ok): Likewise.
13809 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
13811         * ipa-inline.c (inline_small_functions): Account only non-cold
13812         functions.
13813         * doc/invoke.texi (inline-unit-growth): Update documentation.
13815 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
13817         * config/rs6000/rs6000.md (addti3, subti3): New.
13819 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13821         PR target/60863
13822         * config/i386/i386.c (ix86_expand_clear): Remove outdated
13823         comment.  Check optimize_insn_for_size_p instead of
13824         optimize_insn_for_speed_p.
13826 2014-04-17  Martin Jambor  <mjambor@suse.cz>
13828         * gimple-iterator.c (gsi_start_edge): New function.
13829         * gimple-iterator.h (gsi_start_edge): Declare.
13830         * tree-sra.c (single_non_eh_succ): New function.
13831         (disqualify_ops_if_throwing_stmt): Renamed to
13832         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
13833         having one non-EH successor BB.
13834         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
13835         generate loads into replacements.
13836         (sra_modify_assign): Likewise and and also use the simple path for
13837         such statements.
13838         (sra_modify_function_body): Commit statements on edges.
13840 2014-04-17  Richard Biener  <rguenther@suse.de>
13842         PR middle-end/60849
13843         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
13844         comparison results and add clarifying comment.
13846 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
13848         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
13849         (blank_mode): Initialize it.
13850         (emit_mode_size_inline, emit_mode_nunits_inline,
13851         emit_mode_inner_inline): New functions.
13852         (emit_insn_modes_h): Call them and surround their output with
13853         #if GCC_VERSION >= 4001 ... #endif.
13854         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
13855         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
13856         mode_* arrays if the argument is __builtin_constant_p.
13857         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
13858         is enum machine_mode.
13860 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
13862         * passes.c (opt_pass::execute): Adjust.
13863         (pass_manager::execute_pass_mode_switching): Likewise.
13864         (early_local_passes::execute): Likewise.
13865         (execute_one_pass): Pass cfun to the pass's execute method.
13866         * tree-pass.h (opt_pass::execute): Add function * argument.
13867         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
13868         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
13869         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
13870         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
13871         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
13872         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
13873         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
13874         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
13875         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
13876         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
13877         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
13878         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
13879         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
13880         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
13881         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
13882         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
13883         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
13884         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
13885         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
13886         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
13887         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
13888         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
13889         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
13890         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
13891         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
13892         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
13893         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
13894         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
13895         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
13896         Adjust.
13898 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
13900         * passes.c (opt_pass::gate): Take function * argument.
13901         (gate_all_early_local_passes): Merge into
13902         (early_local_passes::gate): this.
13903         (gate_all_early_optimizations): Merge into
13904         (all_early_optimizations::gate): this.
13905         (gate_all_optimizations): Mege into
13906         (all_optimizations::gate): this.
13907         (gate_all_optimizations_g): Merge into
13908         (all_optimizations_g::gate): this.
13909         (gate_rest_of_compilation): Mege into
13910         (rest_of_compilation::gate): this.
13911         (gate_postreload): Merge into
13912         (postreload::gate): this.
13913         (dump_one_pass): Pass cfun to the pass's gate method.
13914         (execute_ipa_summary_passes): Likewise.
13915         (execute_one_pass): Likewise.
13916         (ipa_write_summaries_2): Likewise.
13917         (ipa_write_optimization_summaries_1): Likewise.
13918         (ipa_read_summaries_1): Likewise.
13919         (ipa_read_optimization_summaries_1): Likewise.
13920         (execute_ipa_stmt_fixups): Likewise.
13921         * tree-pass.h (opt_pass::gate): Add function * argument.
13922         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
13923         combine-stack-adj.c, combine.c, compare-elim.c,
13924         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
13925         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
13926         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
13927         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
13928         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
13929         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
13930         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
13931         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
13932         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
13933         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
13934         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
13935         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
13936         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
13937         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
13938         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
13939         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
13940         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
13941         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
13942         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
13943         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
13944         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
13945         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
13946         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
13947         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
13948         var-tracking.c, vtable-verify.c, web.c: Adjust.
13950 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
13952         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
13953         * configure: Regenerate.
13955 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
13957         * passes.c (dump_one_pass): don't check pass->has_gate.
13958         (execute_ipa_summary_passes): Likewise.
13959         (execute_one_pass): Likewise.
13960         (ipa_write_summaries_2): Likewise.
13961         (ipa_write_optimization_summaries_1): Likewise.
13962         (ipa_read_optimization_summaries_1): Likewise.
13963         (execute_ipa_stmt_fixups): Likewise.
13964         * tree-pass.h (pass_data::has_gate): Remove.
13965         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
13966         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
13967         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
13968         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
13969         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
13970         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
13971         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
13972         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
13973         gimple-low.c, gimple-ssa-isolate-paths.c,
13974         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
13975         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
13976         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
13977         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
13978         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
13979         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
13980         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
13981         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
13982         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
13983         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
13984         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
13985         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
13986         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
13987         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
13988         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
13989         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
13990         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
13991         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
13992         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
13993         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
13994         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
13995         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
13996         Adjust.
13998 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
14000         * pass_manager.h (pass_manager::register_dump_files_1): Remove
14001         declaration.
14002         * passes.c (pass_manager::register_dump_files_1): Merge into
14003         (pass_manager::register_dump_files): this, and remove its handling of
14004         properties since the pass always has the properties anyway.
14005         (pass_manager::pass_manager): Adjust.
14007 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
14009         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
14010         * passes.c (pass_manager::register_dump_files_1): Remove dead code
14011         dealing with properties.
14012         (pass_manager::register_dump_files): Adjust.
14014 2014-03-20  Mark Wielaard  <mjw@redhat.com>
14016         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
14017         then represent the bound as normal constant value.
14019 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
14021         PR target/60847
14022         Forward port from 4.8 branch
14023         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
14025         * config/i386/bmiintrin.h (_blsi_u32): New.
14026         (_blsi_u64): Ditto.
14027         (_blsr_u32): Ditto.
14028         (_blsr_u64): Ditto.
14029         (_blsmsk_u32): Ditto.
14030         (_blsmsk_u64): Ditto.
14031         (_tzcnt_u32): Ditto.
14032         (_tzcnt_u64): Ditto.
14034 2014-04-17  Kito Cheng  <kito@0xlab.org>
14036         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
14038 2014-04-17  Richard Biener  <rguenther@suse.de>
14040         PR middle-end/60849
14041         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
14042         boolean results for comparisons.
14044 2014-04-17  Richard Biener  <rguenther@suse.de>
14046         PR tree-optimization/60836
14047         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
14048         initial PHI args to be gimple values.
14050 2014-04-17  Richard Biener  <rguenther@suse.de>
14052         PR tree-optimization/60841
14053         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
14054         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
14055         of stmts to SLP build.
14056         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
14057         (vect_analyze_slp): Likewise.
14058         (vect_analyze_slp_instance): Likewise.
14059         (vect_build_slp_tree): Limit overall SLP tree growth.
14060         * tree-vectorizer.h (vect_analyze_data_refs,
14061         vect_analyze_slp): Adjust prototypes.
14063 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
14065         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
14066         Silvermont.
14068 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
14070         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
14071         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
14072         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
14073         for TARGET_SLOW_PSHUFB
14075 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
14077         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
14078         * config/i386/i386.c (intel_cost): Ditto.
14080 2014-04-17  Joey Ye  <joey.ye@arm.com>
14082         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
14084 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
14086         * opts.c (common_handle_option): Disable -fipa-reference coorectly
14087         with -fuse-profile.
14089 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
14091         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
14092         (type_all_derivations_known_p): New predicate.
14093         (type_all_ctors_visible_p): New predicate.
14094         (type_possibly_instantiated_p): New predicate.
14095         (get_odr_type): Compute all_derivations_known.
14096         (dump_odr_type): Dump the flag.
14097         (maybe_record_type): Cleanup.
14098         (record_target_from_binfo): Add bases_to_consider array;
14099         record bases for types w/o instances and skip CXX destructor.
14100         (possible_polymorphic_call_targets_1): Add bases_to_consider
14101         and consider_construction parameters; check if type may have instance.
14102         (get_polymorphic_call_info): Set maybe_in_construction to true
14103         when we know nothing.
14104         (record_targets_from_bases): Skip CXX destructors; they are
14105         never called for types in construction.
14106         (possible_polymorphic_call_targets): Do not record target when
14107         type may not have instance.
14109 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
14111         PR ipa/60854
14112         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
14113         external aliases alive, too.
14115 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
14117         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
14118         definition.
14120 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
14122         * final.c (compute_alignments): Do not apply loop alignment to a block
14123         falling through to the exit.
14125 2014-04-16  Catherine Moore  <clm@codesourcery.com>
14127         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
14128         Adjust constraints for microMIPS store patterns.
14130 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
14132         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
14134 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
14136         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
14137         (append_use): Run at -O0.
14138         (append_vdef): Likewise.
14139         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
14140         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
14142 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
14144         PR tree-optimization/60844
14145         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
14146         (propagate_op_to_single_use, remove_visited_stmt_chain,
14147         linearize_expr, repropagate_negates, reassociate_bb): Use it
14148         instead of gsi_remove.
14150 2014-04-16  Martin Jambor  <mjambor@suse.cz>
14152         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
14153         ipa_transforms_to_apply.
14154         (cgraph_function_versioning): Assert that old_node has empty
14155         ipa_transforms_to_apply.
14156         * trans-mem.c (ipa_tm_create_version): Likewise.
14157         * tree-inline.c (tree_function_versioning): Do not duplicate
14158         ipa_transforms_to_apply.
14160 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14162         PR target/60817
14163         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
14164         x86_64-*-* cases.
14165         Pass necessary as flags on 64-bit Solaris/x86.
14166         Use lowercase relocs for x86_64-*-*.
14167         * configure: Regenerate.
14169 2014-04-15  Jan Hubicka  <jh@suse.cz>
14171         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
14172         (maybe_record_node, likely_target_p): Use it.
14174 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14176         PR target/60839
14177         Revert following patch
14179         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
14181         PR target/60735
14182         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
14183         software floating point or no floating point registers, do not
14184         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
14185         in GPRs that occurs after we tested for GPRs that would never be
14186         true.
14188         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
14189         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
14190         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
14191         specifically allow DDmode, since that does not use the SPE SIMD
14192         instructions.
14194 2014-03-21  Mark Wielaard  <mjw@redhat.com>
14196         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
14197         as unsigned or int depending on type and value used.
14199 2014-04-15  Richard Biener  <rguenther@suse.de>
14201         PR rtl-optimization/56965
14202         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
14203         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
14204         ... here.
14205         * alias.c (true_dependence_1): Do not call
14206         nonoverlapping_component_refs_p.
14207         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
14208         nonoverlapping_component_refs_p.
14209         (indirect_refs_may_alias_p): Likewise.
14211 2014-04-15  Teresa Johnson  <tejohnson@google.com>
14213         * cfg.c (dump_bb_info): Fix flags check.
14214         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
14216 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14218         PR rtl-optimization/60663
14219         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
14220         avoid 0 cost.
14222 2014-04-15  Richard Biener  <rguenther@suse.de>
14224         * lto-streamer.h (LTO_major_version): Bump to 4.
14226 2014-04-15  Richard Biener  <rguenther@suse.de>
14228         * common.opt (lto_partition_model): New enum.
14229         (flto-partition=): Merge separate options with a single with argument,
14230         add -flto-partition=one support.
14231         * flag-types.h (enum lto_partition_model): Declare.
14232         * opts.c (finish_options): Remove duplicate -flto-partition=
14233         option check.
14234         * lto-wrapper.c (run_gcc): Adjust.
14236 2014-04-15  Richard Biener  <rguenther@suse.de>
14238         * alias.c (ncr_compar): New function.
14239         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
14241 2014-04-15  Richard Biener  <rguenther@suse.de>
14243         * alias.c (record_component_aliases): Do not walk BINFOs.
14245 2014-04-15  Richard Biener  <rguenther@suse.de>
14247         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
14248         Add struct function argument and adjust.
14249         (find_func_aliases_for_call): Likewise.
14250         (find_func_aliases): Likewise.
14251         (find_func_clobbers): Likewise.
14252         (intra_create_variable_infos): Likewise.
14253         (compute_points_to_sets): Likewise.
14254         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
14256 2014-04-15  Richard Biener  <rguenther@suse.de>
14258         * tree.c (iterative_hash_expr): Use enum tree_code_class
14259         to store TREE_CODE_CLASS.
14260         (tree_block): Likewise.
14261         (tree_set_block): Likewise.
14262         * tree.h (fold_build_pointer_plus_loc): Use
14263         convert_to_ptrofftype_loc.
14265 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
14267         PR plugins/59335
14268         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
14269         added in 4.9.
14271 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
14273         * cfgloop.h (struct loop): Move force_vectorize down.
14274         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
14275         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
14276         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
14277         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
14278         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
14279         * tree-core.h (enum annot_expr_kind): Add new kind values.
14280         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
14281         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
14282         kinds.
14283         * tree.def (ANNOTATE_EXPR): Tweak comment.
14285 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
14287         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
14288         cxa_pure_virtual).
14290 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
14292         * tree.h (TYPE_IDENTIFIER): Declare.
14293         * tree.c (subrange_type_for_debug_p): Use it.
14294         * godump.c (go_format_type): Likewise.
14295         * dwarf2out.c (is_cxx_auto, modified_type_die,
14296         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
14297         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
14299 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
14301         PR lto/60820
14302         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
14304 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
14306         * config/i386/i386.c (examine_argument): Return bool.  Return true if
14307         parameter should be passed in memory.
14308         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
14309         (construct_container): Update calls to examine_argument.
14310         (function_arg_advance_64): Ditto.
14311         (return_in_memory_32): Merge with ix86_return_in_memory.
14312         (return_in_memory_64): Ditto.
14313         (return_in_memory_ms_64): Ditto.
14315 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
14317         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
14318         * coverage.c (coverage_compute_profile_id): Handle externally visible
14319         symbols.
14321 2014-04-14  Martin Jambor  <mjambor@suse.cz>
14323         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
14324         DECL_DISREGARD_INLINE_LIMITS functions.
14326 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
14328         PR target/60827
14329         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
14331 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
14333         PR target/60827
14334         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
14335         optimize_insn_for_speed_p instead of
14336         optimize_function_for_speed_p.
14338 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
14340         * doc/invoke.texi (free): Document AArch64.
14342 2014-04-14  Richard Biener  <rguenther@suse.de>
14344         PR tree-optimization/60042
14345         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
14346         (insert_into_preds_of_block): Do not prevent PHI insertion
14347         for REFERENCE exprs here ...
14348         (eliminate_dom_walker::before_dom_children): ... but prevent
14349         their use here under similar conditions when applied to the
14350         IL after PRE optimizations.
14352 2014-04-14  Richard Biener  <rguenther@suse.de>
14354         * passes.def: Move early points-to after early SRA.
14356 2014-04-14  Richard Biener  <rguenther@suse.de>
14358         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
14359         check for which sign-changes we allow when forwarding
14360         a converted value into a switch.
14362 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
14364         * stor-layout.c (place_field): Finalize non-constant offset for the
14365         field, if any.
14367 2014-04-14  Richard Biener  <rguenther@suse.de>
14369         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
14370         as argument.
14371         (expand_switch_using_bit_tests_p): Likewise.
14372         (process_switch): Compute and pass on speed_p based on the
14373         switch stmt.
14374         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
14375         optimize_bb_for_speed_p.
14377 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
14379         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
14380         * function.h (struct function): Rename has_force_vect_loops into
14381         has_force_vectorize_loops.
14382         * lto-streamer-in.c (input_cfg): Adjust for renaming.
14383         (input_struct_function_base): Likewise.
14384         * lto-streamer-out.c (output_cfg): Likewise.
14385         (output_struct_function_base): Likewise.
14386         * omp-low.c (expand_omp_simd): Likewise.
14387         * tree-cfg.c (move_sese_region_to_fn): Likewise.
14388         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
14389         (version_loop_for_if_conversion): Likewise.
14390         (tree_if_conversion): Likewise.
14391         (main_tree_if_conversion): Likewise.
14392         (gate_tree_if_conversion): Likewise.
14393         * tree-inline.c (copy_loops): Likewise.
14394         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
14395         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
14396         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
14397         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
14398         * tree-vectorizer.c (vectorize_loops): Likewise.
14399         * tree-vectorizer.h (unlimited_cost_model): Likewise.
14401 2014-04-14  Richard Biener  <rguenther@suse.de>
14403         PR lto/60720
14404         * lto-streamer-out.c (wrap_refs): New function.
14405         (lto_output): Wrap symbol references in global initializes in
14406         type-preserving MEM_REFs.
14408 2014-04-14  Christian Bruel  <christian.bruel@st.com>
14410         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
14412 2014-04-14  Christian Bruel  <christian.bruel@st.com>
14414         * config/sh/sh.md (setmemqi): New expand pattern.
14415         * config/sh/sh.h (CLEAR_RATIO): Define.
14416         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
14417         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
14419 2014-04-14  Richard Biener  <rguenther@suse.de>
14421         PR middle-end/55022
14422         * fold-const.c (negate_expr_p): Don't negate directional rounding
14423         division.
14424         (fold_negate_expr): Likewise.
14426 2014-04-14  Richard Biener  <rguenther@suse.de>
14428         PR tree-optimization/59817
14429         PR tree-optimization/60453
14430         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
14431         recursion to catch all CHRECs in the scalar evolution and restrict
14432         the predicate for the remains appropriately.
14434 2014-04-12  Catherine Moore  <clm@codesourcery.com>
14436         * config/mips/constraints.md: Add new register constraint "kb".
14437         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
14438         (*movhi_internal): Likewise.
14439         (*movqi_internal): Likewise.
14440         * config/mips/mips.h (M16_STORE_REGS): New register class.
14441         (REG_CLASS_NAMES): Add M16_STORE_REGS.
14442         (REG_CLASS_CONTENTS): Likewise.
14443         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
14445 2014-04-11  Tobias Burnus  <burnus@net-b.de>
14447         PR c/60194
14448         * doc/invoke.texi (-Wformat-signedness): Document it.
14449         (Wformat=2): Mention that this enables -Wformat-signedness.
14451 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
14453         * common/config/epiphany/epiphany-common.c
14454         (epiphany_option_optimization_table): Enable section anchors by
14455         default at -O1 or higher.
14456         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
14457         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
14458         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
14459         carries no extra cost.
14460         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
14461         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
14462         * config/epiphany/predicates.md (memclob_operand): New predicate.
14463         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
14464         Use memclob_operand predicate and X constraint for operand 3.
14466 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
14468         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
14469         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
14470         its operands.
14472 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
14474         PR rtl-optimization/60651
14475         * mode-switching.c (optimize_mode_switching): Make sure to emit
14476         sets of a lower numbered entity before sets of a higher numbered
14477         entity to a mode of the same or lower priority.
14478         When creating a seginfo for a basic block that starts with a code
14479         label, move the insertion point past the code label.
14480         (new_seginfo): Document and enforce requirement that
14481         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
14482         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
14483         * doc/tm.texi: Regenerate.
14485 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
14487         PR target/60811
14488         * config/arc/arc.c (arc_save_restore): Fix assert typo.
14490 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
14492         * BASE-VER: Set to 4.10.0.
14494 2014-04-11  Tobias Burnus  <burnus@net-b.de>
14496         PR other/59055
14497         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
14498         * doc/gcc.texi (Service): Update description in the @menu
14499         * doc/invoke.texi (Option Summary): Remove misplaced and
14500         duplicated @menu.
14502 2014-04-11  Steve Ellcey  <sellcey@mips.com>
14503             Jakub Jelinek  <jakub@redhat.com>
14505         PR middle-end/60556
14506         * expr.c (convert_move): Use emit_store_flag_force instead of
14507         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
14508         argument to it.
14510 2014-04-11  Richard Biener  <rguenther@suse.de>
14512         PR middle-end/60797
14513         * varasm.c (assemble_alias): Avoid endless error reporting
14514         recursion by setting TREE_ASM_WRITTEN.
14516 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14518         * config/s390/s390.md: Add a splitter for NOT rtx.
14520 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
14522         PR rtl-optimization/60663
14523         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
14525 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
14526             Jakub Jelinek  <jakub@redhat.com>
14528         PR lto/60567
14529         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
14530         flag from decl_node to node.
14532 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14534         PR debug/60655
14535         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
14536         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
14537         ameliorating the cases where it can be.
14539 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
14541         Revert
14542         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
14544         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
14545         (loadsync_<mode>): Change mode.
14546         (load_quadpti, store_quadpti): New.
14547         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
14548         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
14549         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
14551 2014-04-09  Cong Hou  <congh@google.com>
14553         PR testsuite/60773
14554         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
14555         documentation.
14557 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14559         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
14560         instead of vnor to exploit possible fusion opportunity in the
14561         future.
14562         (altivec_expand_vec_perm_const_le): Likewise.
14564 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
14566         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
14567         (loadsync_<mode>): Change mode.
14568         (load_quadpti, store_quadpti): New.
14569         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
14570         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
14572 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
14574         PR target/60763
14575         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
14576         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
14577         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
14579 2014-04-08  Richard Biener  <rguenther@suse.de>
14581         PR middle-end/60706
14582         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
14583         a 64bit widest int print double-int similar to on HWI64 hosts.
14585 2014-04-08  Richard Biener  <rguenther@suse.de>
14587         PR tree-optimization/60785
14588         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
14589         default defs properly.
14591 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
14593         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
14594         (Weffc++): Likewise.
14596 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
14598         * ipa-devirt.c (maybe_record_node): When node is not recorded,
14599         set completep to false rather than true.
14601 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
14603         PR target/60504
14604         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
14605         ARM_TARGET2_DWARF_FORMAT.
14607 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
14609         PR target/60609
14610         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
14611         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
14612         ADDR_DIFF_VEC.
14614 2014-04-07  Richard Biener  <rguenther@suse.de>
14616         PR tree-optimization/60766
14617         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
14618         (may_eliminate_iv): Convert cand_value_at result to desired type.
14620 2014-04-07  Jason Merrill  <jason@redhat.com>
14622         PR c++/60731
14623         * common.opt (-fno-gnu-unique): Add.
14624         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
14626 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14628         * haifa-sched.c: Fix outdated function reference and minor
14629         grammar errors in introductory comment.
14631 2014-04-07  Richard Biener  <rguenther@suse.de>
14633         PR middle-end/60750
14634         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
14635         for noreturn calls.
14636         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
14638 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
14640         PR debug/55794
14641         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
14642         size accounting for thunks.
14643         (pa_asm_output_mi_thunk): Use final_start_function() and
14644         final_end_function() to output function start and end directives.
14646 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
14648         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
14649         device specific ISA/ feature information. Remove short_sp and
14650         errata_skip ds.  Add avr_device_specific_features enum to have device
14651         specific info.
14652         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
14653         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
14654         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
14655         updated device specific info.
14656         * config/avr/avr-mcus.def: Merge device specific details to
14657         dev_attribute field.
14658         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
14659         errata_skip.
14660         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
14661         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
14662         assembler if RMW isa supported by current device.
14663         * config/avr/genmultilib.awk: Update as device info structure changed.
14664         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
14666 2014-04-04  Cong Hou  <congh@google.com>
14668         PR tree-optimization/60656
14669         * tree-vect-stmts.c (supportable_widening_operation):
14670         Fix a bug that elements in a vector with vect_used_by_reduction
14671         property are incorrectly reordered when the operation on it is not
14672         consistant with the one in reduction operation.
14674 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
14676         PR rtl-optimization/60155
14677         * gcse.c (record_set_data): New function.
14678         (single_set_gcse): New function.
14679         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
14680         (hoist_code): Likewise.
14681         (get_pressure_class_and_nregs): Likewise.
14683 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
14685         * explow.c (probe_stack_range): Emit a final optimization blockage.
14687 2014-04-04  Anthony Green  <green@moxielogic.com>
14689         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
14690         typos.
14692 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
14694         PR ipa/59626
14695         * lto-cgraph.c (input_overwrite_node): Check that partitioning
14696         flags are set only during streaming.
14697         * ipa.c (process_references, walk_polymorphic_call_targets,
14698         symtab_remove_unreachable_nodes): Drop bodies of always inline
14699         after early inlining.
14700         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
14702 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
14703         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14705         PR debug/60655
14706         * dwarf2out.c (const_ok_for_output_1): Reject expressions
14707         containing a NOT.
14709 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14711         PR bootstrap/60743
14712         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
14713         duration.
14714         (cortex_a53_fdivd): Likewise.
14716 2014-04-04  Martin Jambor  <mjambor@suse.cz>
14718         PR ipa/60640
14719         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
14720         Adjust all callers.
14721         * cgraph.c (clone_of_p): Also return true if thunks match.
14722         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
14723         cgraph_function_or_thunk_node and an obsolete comment.
14724         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
14725         file.
14726         (build_function_decl_skip_args): Likewise.
14727         (set_new_clone_decl_and_node_flags): New function.
14728         (duplicate_thunk_for_node): Likewise.
14729         (redirect_edge_duplicating_thunks): Likewise.
14730         (cgraph_clone_node): New parameter args_to_skip, pass it to
14731         redirect_edge_duplicating_thunks which is called instead of
14732         cgraph_redirect_edge_callee.
14733         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
14734         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
14736 2014-04-04  Jeff Law  <law@redhat.com>
14738         PR target/60657
14739         * config/arm/predicates.md (const_int_I_operand): New predicate.
14740         (const_int_M_operand): Similarly.
14741         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
14742         const_int_operand.
14743         (insv_t2, extv_reg, extzv_t2): Likewise.
14744         (load_multiple_with_writeback): Similarly for const_int_I_operand.
14745         (pop_multiple_with_writeback_and_return): Likewise.
14746         (vfp_pop_multiple_with_writeback): Likewise
14748 2014-04-04  Richard Biener  <rguenther@suse.de>
14750         PR ipa/60746
14751         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
14752         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
14753         non-GIMPLE_LABELs.
14754         * gimplify.h (gimple_add_tmp_var_fn): Declare.
14755         * gimplify.c (gimple_add_tmp_var_fn): New function.
14756         * gimple-expr.h (create_tmp_reg_fn): Declare.
14757         * gimple-expr.c (create_tmp_reg_fn): New function.
14758         * gimple-low.c (record_vars_into): Don't change cfun.
14759         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
14760         code generation without cfun.
14762 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
14764         PR bootstrap/60719
14765         * Makefile.in (install-driver): Fix shell scripting.
14767 2014-04-03  Cong Hou  <congh@google.com>
14769         PR tree-optimization/60505
14770         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
14771         threshold of number of iterations below which no vectorization
14772         will be done.
14773         * tree-vect-loop.c (new_loop_vec_info):
14774         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
14775         * tree-vect-loop.c (vect_analyze_loop_operations):
14776         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
14777         * tree-vect-loop.c (vect_transform_loop):
14778         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
14779         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
14780         of iterations of the loop and see if we should build the epilogue.
14782 2014-04-03  Richard Biener  <rguenther@suse.de>
14784         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
14785         (streamer_tree_cache_create): Adjust.
14786         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
14787         to allow optional nodes array.
14788         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
14789         (streamer_tree_cache_append): Likewise.
14790         (streamer_tree_cache_create): Create nodes array optionally
14791         as specified by parameter.
14792         * lto-streamer-out.c (create_output_block): Avoid maintaining
14793         the node array in the writer cache.
14794         (DFS_write_tree): Remove assertion.
14795         (produce_asm_for_decls): Free the out decl state hash table early.
14796         * lto-streamer-in.c (lto_data_in_create): Adjust for
14797         streamer_tree_cache_create prototype change.
14799 2014-04-03  Richard Biener  <rguenther@suse.de>
14801         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
14802         set TREE_CHAIN to NULL_TREE.
14804 2014-04-03  Richard Biener  <rguenther@suse.de>
14806         PR tree-optimization/60740
14807         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
14808         over all GIMPLE_COND operands.
14810 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
14812         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
14813         (Weffc++): Remove Scott's numbering, merge lists and reference
14814         Wnon-virtual-dtor.
14816 2014-04-03  Nick Clifton  <nickc@redhat.com>
14818         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
14819         properly.
14821 2014-04-03  Martin Jambor  <mjambor@suse.cz>
14823         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
14824         mention gcc_unreachable before failing.
14825         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
14826         removed symbols.
14828 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
14830         PR ipa/60659
14831         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
14832         inconsistent code and instead mark the context inconsistent.
14833         (possible_polymorphic_call_targets): For inconsistent contexts
14834         return empty complete list.
14836 2014-04-02  Anthony Green  <green@moxielogic.com>
14838         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
14839         (extendqisi2, extendhisi2): Define.
14840         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
14841         (WCHAR_TYPE): Change to unsigned int.
14843 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14845         PR tree-optimization/60733
14846         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
14847         insertion point for PHI candidates to be the end of the feeding
14848         block for the PHI argument.
14850 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
14852         PR rtl-optimization/60650
14853         * lra-constraints.c (process_alt_operands): Decrease reject for
14854         earlyclobber matching.
14856 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14858         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
14860 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14862         * config/spu/spu.c (pad_bb): Do not crash when the last
14863         insn is CODE_FOR_blockage.
14865 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14867         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
14868         lies outside the target mode.
14870 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
14872         PR target/60735
14873         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
14874         software floating point or no floating point registers, do not
14875         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
14876         in GPRs that occurs after we tested for GPRs that would never be
14877         true.
14879         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
14880         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
14881         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
14882         specifically allow DDmode, since that does not use the SPE SIMD
14883         instructions.
14885 2014-04-02  Richard Biener  <rguenther@suse.de>
14887         PR middle-end/60729
14888         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
14889         MODE_INTs.  Properly use negv_optab.
14890         (expand_abs): Likewise.
14892 2014-04-02  Richard Biener  <rguenther@suse.de>
14894         PR bootstrap/60719
14895         * Makefile.in (install-driver): Guard extra installs with special
14896         names properly.
14898 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
14900         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
14901         Document vec_vgbbd.
14903 2014-04-01  Richard Henderson  <rth@redhat.com>
14905         PR target/60704
14906         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
14907         alternative enabled before register allocation.
14909 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
14911         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
14912         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
14913         typo.
14914         (nios2_large_got_address): Remove unneeded 'sym' parameter.
14915         (nios2_got_address): Update nios2_large_got_address call site.
14916         (nios2_delegitimize_address): New function.
14917         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
14918         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
14919         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
14921 2014-04-01  Martin Husemann  <martin@duskware.de>
14923         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
14924         for -mabi=32.
14926 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
14928         PR rtl-optimization/60604
14929         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
14930         check from register_operand.
14931         (register_operand): Redefine in terms of general_operand.
14932         (nonmemory_operand): Use register_operand for the non-constant cases.
14934 2014-04-01  Richard Biener  <rguenther@suse.de>
14936         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
14938 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14940         * doc/invoke.texi (mapp-regs): Clarify.
14942 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
14944         * config/i386/avx512fintrin.h (__v32hi): Define type.
14945         (__v64qi): Likewise.
14946         (_mm512_set1_epi8): Define.
14947         (_mm512_set1_epi16): Define.
14948         (_mm512_set4_epi32): Define.
14949         (_mm512_set4_epi64): Define.
14950         (_mm512_set4_pd): Define.
14951         (_mm512_set4_ps): Define.
14952         (_mm512_setr4_epi64): Define.
14953         (_mm512_setr4_epi32): Define.
14954         (_mm512_setr4_pd): Define.
14955         (_mm512_setr4_ps): Define.
14956         (_mm512_setzero_epi32): Define.
14958 2014-03-31  Martin Jambor  <mjambor@suse.cz>
14960         PR middle-end/60647
14961         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
14962         callsite_arguments_match_p.  Updated all callers.  Also check types of
14963         corresponding formal parameters and actual arguments.
14964         (not_all_callers_have_enough_arguments_p) Renamed to
14965         some_callers_have_mismatched_arguments_p.
14967 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
14969         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
14971 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
14973         PR target/60034
14974         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
14975         section anchor.
14977 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
14979         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
14980         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
14981         Split out
14982         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
14983         Use FMAMODE_NOVF512 mode iterator.
14984         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
14985         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
14986         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
14987         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
14988         Split out
14989         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
14990         Use VF_128_256 mode iterator.
14991         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
14992         Ditto.
14994 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
14996         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
14997         static chain if needed.
14999 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
15001         PR target/60697
15002         * lra-constraints.c (index_part_to_reg): New.
15003         (process_address): Use it.
15005 2014-03-27  Jeff Law  <law@redhat.com>
15006             Jakub Jelinek  <jakub@redhat.com>
15008         PR target/60648
15009         * expr.c (do_tablejump): Use simplify_gen_binary rather than
15010         gen_rtx_{PLUS,MULT} to build up the address expression.
15012         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
15013         creating non-canonical RTL.
15015 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
15017         PR ipa/60243
15018         * ipa-inline.c (want_inline_small_function_p): Short circuit large
15019         functions; reorganize to make cheap checks first.
15020         (inline_small_functions): Do not estimate growth when dumping;
15021         it is expensive.
15022         * ipa-inline.h (inline_summary): Add min_size.
15023         (growth_likely_positive): New function.
15024         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
15025         (set_cond_stmt_execution_predicate): Cleanup.
15026         (estimate_edge_size_and_time): Compute min_size.
15027         (estimate_calls_size_and_time): Likewise.
15028         (estimate_node_size_and_time): Likewise.
15029         (inline_update_overall_summary): Update min_size.
15030         (do_estimate_edge_time): Likewise.
15031         (do_estimate_edge_size): Update.
15032         (do_estimate_edge_hints): Update.
15033         (growth_likely_positive): New function.
15035 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
15037         PR target/60693
15038         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
15039         also if addr has VOIDmode.
15041 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15043         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
15044         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
15045         Declare extern.
15046         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
15047         instructions as well as AdvancedSIMD loads.
15049 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15051         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
15052         Use crypto_aese type.
15053         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
15054         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
15055         crypto_aese, crypto_aesmc.  Move to types.md.
15056         * config/arm/types.md (crypto_aes): Split into crypto_aese,
15057         crypto_aesmc.
15058         * config/arm/iterators.md (crypto_type): Likewise.
15060 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
15062         * cgraph.c: Include expr.h and tree-dfa.h.
15063         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
15064         remove LHS.
15066 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
15068         PR target/60675
15069         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
15070         regs from checking multi-reg pseudos.
15072 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15074         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
15076 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15078         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
15079         if it would clobber the stack pointer, even temporarily.
15081 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
15083         * mode-switching.c: Make small adjustments to the top comment.
15085 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
15087         * config/rs6000/constraints.md (wD constraint): New constraint to
15088         match the constant integer to get the top DImode/DFmode out of a
15089         vector in a VSX register.
15091         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
15092         match the constant integer to get the top DImode/DFmode out of a
15093         vector in a VSX register.
15095         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
15096         for ISA 2.07.
15098         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15099         vbpermq builtins.
15101         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
15102         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
15104         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
15105         Optimize vec_extract of 64-bit values, where the value being
15106         extracted is in the top word, where we can use scalar
15107         instructions.  Add direct move and store support.  Combine the big
15108         endian/little endian vector select load support into a single insn.
15109         (vsx_extract_<mode>_internal1): Likewise.
15110         (vsx_extract_<mode>_internal2): Likewise.
15111         (vsx_extract_<mode>_load): Likewise.
15112         (vsx_extract_<mode>_store): Likewise.
15113         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
15114         combined into vsx_extract_<mode>_load.
15115         (vsx_extract_<mode>_one_le): Likewise.
15117         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
15118         define the top 64-bit vector element.
15120         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
15121         constraint.
15123         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
15124         Document vec_vbpermq builtin.
15126         PR target/60672
15127         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
15128         enable use of xxsldwi and xxpermdi builtin functions.
15129         (vec_xxpermdi): Likewise.
15131         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
15132         Document use of vec_xxsldwi and vec_xxpermdi builtins.
15134 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
15136         PR rtl-optimization/60650
15137         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
15138         first_p.  Use it.
15139         (find_spills_for): New.
15140         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
15141         Spill all pseudos on the second iteration.
15143 2014-03-27  Marek Polacek  <polacek@redhat.com>
15145         PR c/50347
15146         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
15147         types.
15149 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15151         * config/s390/s390.c (s390_can_use_return_insn): Check for
15152         call-saved FPRs on 31 bit.
15154 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
15156         PR middle-end/60682
15157         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
15158         if they need regimplification, just drop them instead of
15159         calling gimple_regimplify_operands on them.
15161 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15163         PR target/60580
15164         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
15165         (aarch64_frame_pointer_required): Adjust logic.
15166         (aarch64_can_eliminate): Adjust logic.
15167         (aarch64_override_options_after_change): Adjust logic.
15169 2014-03-27  Dehao Chen  <dehao@google.com>
15171         * ipa-inline.c (early_inliner): Update node's inline info.
15173 2014-03-26  Dehao Chen  <dehao@google.com>
15175         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
15176         compiler inserted conditional jumps for NAN float check.
15178 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
15180         * ubsan.h (ubsan_create_data): Change second argument's type
15181         to const location_t *.
15182         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
15183         _("<unknown>").
15184         (ubsan_create_data): Change second argument to const location_t *PLOC.
15185         Create Loc field whenever PLOC is non-NULL.
15186         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
15187         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
15188         callers.
15190         PR other/59545
15191         * real.c (real_to_integer2): Change type of low to UHWI.
15193 2014-03-26  Tobias Burnus  <burnus@net-b.de>
15195         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
15196         (CILK_SELF_SPECS): New define.
15197         (driver_self_specs): Use it.
15199 2014-03-26  Richard Biener  <rguenther@suse.de>
15201         * tree-pretty-print.c (percent_K_format): Implement special
15202         case for LTO and its stripped down BLOCK tree.
15204 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
15206         PR sanitizer/60636
15207         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
15209         * tree-vrp.c (simplify_internal_call_using_ranges): If only
15210         one range is range_int_cst_p, but not both, at least optimize
15211         addition/subtraction of 0 and multiplication by 0 or 1.
15212         * gimple-fold.c (gimple_fold_call): Fold
15213         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
15214         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
15215         INTEGER_CSTs, try to fold at least x * 0 and y - y.
15217 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
15219         PR rtl-optimization/60452
15220         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
15221         <case REG>: Return 1 for invalid offsets from the frame pointer.
15223 2014-03-26  Marek Polacek  <polacek@redhat.com>
15225         PR c/37428
15226         * doc/extend.texi (C Extensions): Mention variable-length arrays in
15227         a structure/union.
15229 2014-03-26  Marek Polacek  <polacek@redhat.com>
15231         PR c/39525
15232         * doc/extend.texi (Designated Inits): Describe what happens to omitted
15233         field members.
15235 2014-03-26  Marek Polacek  <polacek@redhat.com>
15237         PR other/59545
15238         * ira-color.c (update_conflict_hard_regno_costs): Perform the
15239         multiplication in unsigned type.
15241 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
15243         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
15245 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
15247         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
15249 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
15251         PR ipa/60315
15252         * cif-code.def (UNREACHABLE) New code.
15253         * ipa-inline.c (inline_small_functions): Skip edges to
15254         __builtlin_unreachable.
15255         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
15256         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
15257         predicate to __bulitin_unreachable.
15258         (set_cond_stmt_execution_predicate): Fix issue when
15259         invert_tree_comparison returns ERROR_MARK.
15260         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
15261         propagate to inline clones.
15262         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
15263         to unreachable.
15264         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
15265         * cgraphclones.c (cgraph_clone_node): If call destination is already
15266         ureachable, do not redirect it back.
15267         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
15268         unreachable.
15270 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
15272         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
15273         Do not modify inline clones.
15275 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
15277         * config/i386/i386.md (general_sext_operand): New mode attr.
15278         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
15279         don't generate (sign_extend (const_int)).
15280         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
15281         operands[2].  Use We constraint instead of <i> and
15282         <general_sext_operand> predicate instead of <general_operand>.
15283         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
15284         * config/i386/constraints.md (We): New constraint.
15285         * config/i386/predicates.md (x86_64_sext_operand,
15286         sext_operand): New predicates.
15288 2014-03-25  Martin Jambor  <mjambor@suse.cz>
15290         PR ipa/60600
15291         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
15292         inconsistent devirtualizations to __builtin_unreachable.
15294 2014-03-25  Marek Polacek  <polacek@redhat.com>
15296         PR c/35449
15297         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
15299 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
15301         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
15302         order of elements for big-endian.
15304 2014-03-25  Richard Biener  <rguenther@suse.de>
15306         PR middle-end/60635
15307         * gimplify-me.c (gimple_regimplify_operands): Update the
15308         re-gimplifed stmt.
15310 2014-03-25  Martin Jambor  <mjambor@suse.cz>
15312         PR ipa/59176
15313         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
15314         (lto_output_varpool_node): Likewise.
15315         (input_overwrite_node): Likewise.
15316         (input_varpool_node): Likewise.
15318 2014-03-25  Richard Biener  <rguenther@suse.de>
15320         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
15321         (run_gcc): Likewise.
15323 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
15325         * combine.c (simplify_compare_const): Add MODE argument.
15326         Handle mode_width 0 as very large mode_width.
15327         (try_combine, simplify_comparison): Adjust callers.
15329         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
15330         type to avoid signed integer overflow.
15331         * explow.c (plus_constant): Likewise.
15333 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15335         * doc/generic.texi: Correct typos.
15337 2014-03-24  Tobias Burnus  <burnus@net-b.de>
15339         * doc/invoke.texi (-flto): Expand section about
15340         using static libraries with LTO.
15342 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15344         PR rtl-optimization/60501
15345         * optabs.def (addptr3_optab): New optab.
15346         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
15347         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
15348         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
15350         * lra.c (emit_add3_insn): Use the addptr pattern if available.
15352         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
15354 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
15356         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
15357         _mm512_set1_pd.
15359         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
15360         (_mm256_undefined_ps): Define.
15361         (_mm256_undefined_pd): Define.
15362         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
15363         (_mm_undefined_pd): Define.
15364         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
15365         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
15366         (_mm512_undefined_ps): Define.
15367         (_mm512_undefined_pd): Define.
15368         Use _mm*_undefined_*.
15369         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
15371 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
15373         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
15374         (lshr_simd): DI mode added.
15375         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
15376         (aarch64_ushr_simddi): Likewise.
15377         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
15378         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
15379         (vshrd_n_u64): Likewise.
15381 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15383         * Makefile.in (s-macro_list): Depend on cc1.
15385 2014-03-23  Teresa Johnson  <tejohnson@google.com>
15387         * ipa-utils.c (ipa_print_order): Use specified dump file.
15389 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
15391         PR rtl-optimization/60601
15392         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
15394         * gcc.c (eval_spec_function): Initialize save_growing_value.
15396 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
15398         PR sanitizer/60613
15399         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
15400         code == MINUS_EXPR, never swap op0 with op1.
15402         * toplev.c (init_local_tick): Avoid signed integer multiplication
15403         overflow.
15404         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
15405         shift by first operand's bitsize.
15407 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
15409         PR target/60610
15410         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
15411         redefine to 1 or 0.
15412         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
15413         TARGET_ISA_64BIT_P(x).
15415 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15417         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
15418         pattern for vector nor instead of subtract from splat(-1).
15419         (altivec_expand_vec_perm_const_le): Likewise.
15421 2014-03-21  Richard Henderson  <rth@twiddle.net>
15423         PR target/60598
15424         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
15425         related insns after epilogue_completed.
15427 2014-03-21  Martin Jambor  <mjambor@suse.cz>
15429         PR ipa/59176
15430         * cgraph.h (symtab_node): New flag body_removed.
15431         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
15432         when removing bodies.
15433         * symtab.c (dump_symtab_base): Dump body_removed flag.
15434         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
15435         had their bodies removed.
15437 2014-03-21  Martin Jambor  <mjambor@suse.cz>
15439         PR ipa/60419
15440         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
15441         in the border.
15443 2014-03-21  Richard Biener  <rguenther@suse.de>
15445         PR tree-optimization/60577
15446         * tree-core.h (struct tree_base): Document nothrow_flag use
15447         in DECL_NONALIASED.
15448         * tree.h (DECL_NONALIASED): New.
15449         (may_be_aliased): Adjust.
15450         * coverage.c (build_var): Set DECL_NONALIASED.
15452 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
15454         * expr.c (expand_expr_real_1): Remove outdated comment.
15456 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
15458         PR middle-end/60597
15459         * ira.c (adjust_cleared_regs): Call copy_rtx on
15460         *reg_equiv[REGNO (loc)].src_p before passing it to
15461         simplify_replace_fn_rtx.
15463         PR target/60568
15464         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
15465         into CONST, put pic register as first operand of PLUS.  Use
15466         gen_const_mem for both 32-bit and 64-bit PIC got loads.
15468 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15470         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
15472 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
15474         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
15475         around for store forwarding issue in the FPU on the UT699.
15476         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
15477         loads and operations if -mfix-ut699 is specified.
15478         (divtf3_hq): Tweak attribute.
15479         (sqrttf2_hq): Likewise.
15481 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
15483         * calls.c (store_one_arg): Remove incorrect const qualification on the
15484         type of the temporary.
15485         * cfgexpand.c (expand_return): Likewise.
15486         * expr.c (expand_constructor): Likewise.
15487         (expand_expr_real_1): Likewise.
15489 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
15491         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
15492         of parts.
15494 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
15496         PR target/60039
15497         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
15499 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
15501         * config/arm/aarch-common-protos.h
15502         (alu_cost_table): Fix spelling of "extend".
15503         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
15505 2014-03-19  Richard Biener  <rguenther@suse.de>
15507         PR middle-end/60553
15508         * tree-core.h (tree_type_common): Re-order pointer members
15509         to reduce recursion depth during GC walks.
15511 2014-03-19  Marek Polacek  <polacek@redhat.com>
15513         PR sanitizer/60569
15514         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
15515         before accessing it.
15517 2014-03-19  Richard Biener  <rguenther@suse.de>
15519         PR lto/59543
15520         * lto-streamer-in.c (input_function): In WPA stage do not drop
15521         debug stmts.
15523 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
15525         PR tree-optimization/60559
15526         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
15527         with build_zero_cst assignment.
15529 2014-03-18  Kai Tietz  <ktietz@redhat.com>
15531         PR rtl-optimization/56356
15532         * sdbout.c (sdbout_parms): Verify that parms'
15533         incoming argument is valid.
15534         (sdbout_reg_parms): Likewise.
15536 2014-03-18  Richard Henderson  <rth@redhat.com>
15538         PR target/60562
15539         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
15540         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
15541         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
15543 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
15545         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
15546         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
15547         Italicize plugin event names in description.  Explain that
15548         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
15549         Remind that no GCC functions should be called after PLUGIN_FINISH.
15550         Explain what pragmas with expansion are.
15552 2014-03-18  Martin Liska  <mliska@suse.cz>
15554         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
15555         gimple call statement is update.
15556         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
15557         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
15559 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
15561         PR sanitizer/60557
15562         * ubsan.c (ubsan_instrument_unreachable): Call
15563         initialize_sanitizer_builtins.
15564         (ubsan_pass): Likewise.
15566         PR sanitizer/60535
15567         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
15568         varpool_finalize_decl instead of rest_of_decl_compilation.
15570 2014-03-18  Richard Biener  <rguenther@suse.de>
15572         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
15573         by using bitmap_and_compl instead of bitmap_and_compl_into.
15574         (df_rd_transfer_function): Likewise.
15576 2014-03-18  Richard Biener  <rguenther@suse.de>
15578         * doc/lto.texi (fresolution): Fix typo.
15580 2014-03-18  Richard Biener  <rguenther@suse.de>
15582         * doc/invoke.texi (flto): Update for changes in 4.9.
15584 2014-03-18  Richard Biener  <rguenther@suse.de>
15586         * doc/loop.texi: Remove section on the removed lambda framework.
15587         Update loop docs with recent changes in preserving loop structure.
15589 2014-03-18  Richard Biener  <rguenther@suse.de>
15591         * doc/lto.texi (-fresolution): Document.
15593 2014-03-18  Richard Biener  <rguenther@suse.de>
15595         * doc/contrib.texi: Adjust my name.
15597 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
15599         PR ipa/58721
15600         * internal-fn.c: Include diagnostic-core.h.
15601         (expand_BUILTIN_EXPECT): New function.
15602         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
15603         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
15604         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
15605         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
15606         IFN_BUILTIN_EXPECT.
15607         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
15608         Revert 3 argument __builtin_expect code.
15609         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
15610         * gimple-fold.c (gimple_fold_call): Likewise.
15611         * tree.h (fold_builtin_expect): New prototype.
15612         * builtins.c (build_builtin_expect_predicate): Add predictor
15613         argument, if non-NULL, create 3 argument __builtin_expect.
15614         (fold_builtin_expect): No longer static.  Add ARG2 argument,
15615         pass it through to build_builtin_expect_predicate.
15616         (fold_builtin_2): Adjust caller.
15617         (fold_builtin_3): Handle BUILT_IN_EXPECT.
15618         * internal-fn.def (BUILTIN_EXPECT): New.
15620 2014-03-18  Tobias Burnus  <burnus@net-b.de>
15622         PR ipa/58721
15623         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
15624         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
15625         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
15627 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
15629         PR ipa/58721
15630         * predict.c (combine_predictions_for_bb): Fix up formatting.
15631         (expr_expected_value_1, expr_expected_value): Add predictor argument,
15632         fill what it points to if non-NULL.
15633         (tree_predict_by_opcode): Adjust caller, use the predictor.
15634         * predict.def (PRED_COMPARE_AND_SWAP): Add.
15636 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
15638         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
15639         proper constant for the store mode.
15641 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
15643         * symtab.c (change_decl_assembler_name): Fix transparent alias
15644         chain construction.
15646 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
15648         * config/aarch64/aarch64.c: Correct the comments about the
15649         aarch64 stack layout.
15651 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
15653         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
15654         check for GF_OMP_FOR_KIND_FOR.
15656 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
15658         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
15659         ymm and zmm register names.
15661 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
15663         PR target/60516
15664         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
15665         note creation for the 2010-08-31 changes.
15667 2014-03-17  Marek Polacek  <polacek@redhat.com>
15669         PR middle-end/60534
15670         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
15671         as -fno-tree-loop-vectorize.
15672         (expand_omp_simd): Likewise.
15674 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
15676         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
15677         (eligible_for_call_delay): New prototype.
15678         * config/sparc/sparc.c (tls_call_delay): Rename into...
15679         (eligible_for_call_delay): ...this.  Return false if the instruction
15680         cannot be put in the delay slot of a branch.
15681         (eligible_for_restore_insn): Simplify.
15682         (eligible_for_return_delay): Return false if the instruction cannot be
15683         put in the delay slot of a branch and simplify.
15684         (eligible_for_sibcall_delay): Return false if the instruction cannot be
15685         put in the delay slot of a branch.
15686         * config/sparc/sparc.md (fix_ut699): New attribute.
15687         (tls_call_delay): Delete.
15688         (in_call_delay): Reimplement.
15689         (eligible_for_sibcall_delay): Rename into...
15690         (in_sibcall_delay): ...this.
15691         (eligible_for_return_delay): Rename into...
15692         (in_return_delay): ...this.
15693         (in_branch_delay): Reimplement.
15694         (in_uncond_branch_delay): Delete.
15695         (in_annul_branch_delay): Delete.
15697 2014-03-14  Richard Henderson  <rth@redhat.com>
15699         PR target/60525
15700         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
15701         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
15702         (*floathi<X87MODEF>2_i387_with_temp): Remove.
15703         (floathi splitters): Remove.
15704         (float<SWI48x>xf2): New pattern.
15705         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
15706         code that tried to handle DImode for 32-bit, but which was excluded
15707         by the pattern's condition.  Drop allocation of stack temporary.
15708         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
15709         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
15710         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
15711         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
15712         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
15713         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
15714         (*float<SWI48><MODEF>2_sse_interunit): Remove.
15715         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
15716         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
15717         (*float<SWI48x><X87MODEF>2_i387): Remove.
15718         (all float _with_temp splitters): Remove.
15719         (*float<SWI48x><MODEF>2_i387): New pattern.
15720         (*float<SWI48><MODEF>2_sse): New pattern.
15721         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
15722         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
15724 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
15725             Marek Polacek  <polacek@redhat.com>
15727         PR middle-end/60484
15728         * common.opt (dump_base_name_prefixed): New Variable.
15729         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
15730         if x_dump_base_name_prefixed is already set, set it at the end.
15732 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
15734         PR rtl-optimization/60508
15735         * lra-constraints.c (get_reload_reg): Add new parameter
15736         in_subreg_p.
15737         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
15738         Pass the new parameter values.
15740 2014-03-14  Richard Biener  <rguenther@suse.de>
15742         * common.opt: Revert unintented changes from r205065.
15743         * opts.c: Likewise.
15745 2014-03-14  Richard Biener  <rguenther@suse.de>
15747         PR middle-end/60518
15748         * cfghooks.c (split_block): Properly adjust all loops the
15749         block was a latch of.
15751 2014-03-14  Martin Jambor  <mjambor@suse.cz>
15753         PR lto/60461
15754         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
15755         and simplify it.
15757 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
15759         PR target/59396
15760         * config/avr/avr.c (avr_set_current_function): Pass function name
15761         through default_strip_name_encoding before sanity checking instead
15762         of skipping the first char of the assembler name.
15764 2014-03-13  Richard Henderson  <rth@redhat.com>
15766         PR debug/60438
15767         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
15768         (ix86_force_to_memory, ix86_free_from_memory): Remove.
15769         * config/i386/i386-protos.h: Likewise.
15770         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
15771         in the expander instead of a splitter.
15772         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
15773         any possibility of requiring a memory.
15774         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
15775         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
15776         (fp branch splitters): Update for ix86_split_fp_branch.
15777         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
15778         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
15779         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
15780         (*fop_<MODEF>_2_i387): Remove f/r alternative.
15781         (*fop_<MODEF>_3_i387): Likewise.
15782         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
15783         (splitters for the fop_* register patterns): Remove.
15784         (fscalexf4_i387): Rename from *fscalexf4_i387.
15785         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
15787 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
15789         PR tree-optimization/59779
15790         * tree-dfa.c (get_ref_base_and_extent): Use double_int
15791         type for bitsize and maxsize instead of HOST_WIDE_INT.
15793 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
15795         PR rtl-optimization/57320
15796         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
15797         the CFG after thread_prologue_and_epilogue_insns.
15799 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
15801         PR rtl-optimization/57189
15802         * lra-constraints.c (process_alt_operands): Disfavor spilling
15803         vector pseudos.
15805 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
15807         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
15809 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
15811         PR tree-optimization/59025
15812         PR middle-end/60418
15813         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
15814         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
15816 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
15818         PR target/60486
15819         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
15820         calls of avr_out_plus_1.
15822 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
15824         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
15825         BB's single pred and update the father loop's latch info later.
15827 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
15829         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
15830         (VEC_M): Likewise.
15831         (VEC_N): Likewise.
15832         (VEC_R): Likewise.
15833         (VEC_base): Likewise.
15834         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
15835         registers, we need to swap double words in little endian mode.
15837         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
15838         to be a container mode for 128-bit integer operations added in ISA
15839         2.07.  Unlike TImode and PTImode, the preferred register set is
15840         the Altivec/VMX registers for the 128-bit operations.
15842         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
15843         declarations.
15844         (rs6000_split_128bit_ok_p): Likewise.
15846         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
15847         macros for creating ISA 2.07 normal and overloaded builtin
15848         functions with 3 arguments.
15849         (BU_P8V_OVERLOAD_3): Likewise.
15850         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
15851         for use as overloaded functions.
15852         (VPERM_1TI_UNS): Likewise.
15853         (VSEL_1TI): Likewise.
15854         (VSEL_1TI_UNS): Likewise.
15855         (ST_INTERNAL_1ti): Likewise.
15856         (LD_INTERNAL_1ti): Likewise.
15857         (XXSEL_1TI): Likewise.
15858         (XXSEL_1TI_UNS): Likewise.
15859         (VPERM_1TI): Likewise.
15860         (VPERM_1TI_UNS): Likewise.
15861         (XXPERMDI_1TI): Likewise.
15862         (SET_1TI): Likewise.
15863         (LXVD2X_V1TI): Likewise.
15864         (STXVD2X_V1TI): Likewise.
15865         (VEC_INIT_V1TI): Likewise.
15866         (VEC_SET_V1TI): Likewise.
15867         (VEC_EXT_V1TI): Likewise.
15868         (EQV_V1TI): Likewise.
15869         (NAND_V1TI): Likewise.
15870         (ORC_V1TI): Likewise.
15871         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
15872         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
15873         overloaded builtin.
15874         (VADDUQM): Likewise.
15875         (VSUBCUQ): Likewise.
15876         (VADDEUQM): Likewise.
15877         (VADDECUQ): Likewise.
15878         (VSUBEUQM): Likewise.
15879         (VSUBECUQ): Likewise.
15881         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
15882         __int128_t and __uint128_t types.
15883         (__uint128_type): Likewise.
15884         (altivec_categorize_keyword): Add support for vector __int128_t,
15885         vector __uint128_t, vector __int128, and vector unsigned __int128
15886         as a container type for TImode operations that need to be done in
15887         VSX/Altivec registers.
15888         (rs6000_macro_to_expand): Likewise.
15889         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
15890         to support 128-bit integer instructions vaddcuq, vadduqm,
15891         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
15892         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
15894         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
15895         for V1TImode, and set up preferences to use VSX/Altivec registers.
15896         Setup VSX reload handlers.
15897         (rs6000_debug_reg_global): Likewise.
15898         (rs6000_init_hard_regno_mode_ok): Likewise.
15899         (rs6000_preferred_simd_mode): Likewise.
15900         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
15901         (easy_altivec_constant): Likewise.
15902         (output_vec_const_move): Likewise.
15903         (rs6000_expand_vector_set): Convert V1TImode set and extract to
15904         simple move.
15905         (rs6000_expand_vector_extract): Likewise.
15906         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
15907         addressing.
15908         (rs6000_const_vec): Add support for V1TImode.
15909         (rs6000_emit_le_vsx_load): Swap double words when loading or
15910         storing TImode/V1TImode.
15911         (rs6000_emit_le_vsx_store): Likewise.
15912         (rs6000_emit_le_vsx_move): Likewise.
15913         (rs6000_emit_move): Add support for V1TImode.
15914         (altivec_expand_ld_builtin): Likewise.
15915         (altivec_expand_st_builtin): Likewise.
15916         (altivec_expand_vec_init_builtin): Likewise.
15917         (altivec_expand_builtin): Likewise.
15918         (rs6000_init_builtins): Add support for V1TImode type.  Add
15919         support for ISA 2.07 128-bit integer builtins.  Define type names
15920         for the VSX/Altivec vector types.
15921         (altivec_init_builtins): Add support for overloaded vector
15922         functions with V1TImode type.
15923         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
15924         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
15925         external function.
15926         (rs6000_split_128bit_ok_p): Likewise.
15927         (rs6000_handle_altivec_attribute): Create V1TImode from vector
15928         __int128_t and vector __uint128_t.
15930         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
15931         and mode attributes.
15932         (VSX_M): Likewise.
15933         (VSX_M2): Likewise.
15934         (VSm): Likewise.
15935         (VSs): Likewise.
15936         (VSr): Likewise.
15937         (VSv): Likewise.
15938         (VS_scalar): Likewise.
15939         (VS_double): Likewise.
15940         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
15942         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
15943         we support the ISA 2.07 128-bit integer arithmetic instructions.
15944         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
15945         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
15946         and TImode types for use with the builtin functions.
15947         (V1TI_type_node): Likewise.
15948         (unsigned_V1TI_type_node): Likewise.
15949         (intTI_type_internal_node): Likewise.
15950         (uintTI_type_internal_node): Likewise.
15952         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
15953         128-bit builtin functions.
15954         (UNSPEC_VADDEUQM): Likewise.
15955         (UNSPEC_VADDECUQ): Likewise.
15956         (UNSPEC_VSUBCUQ): Likewise.
15957         (UNSPEC_VSUBEUQM): Likewise.
15958         (UNSPEC_VSUBECUQ): Likewise.
15959         (VM): Add V1TImode to vector mode iterators.
15960         (VM2): Likewise.
15961         (VI_unit): Likewise.
15962         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
15963         (altivec_vaddcuq): Likewise.
15964         (altivec_vsubuqm): Likewise.
15965         (altivec_vsubcuq): Likewise.
15966         (altivec_vaddeuqm): Likewise.
15967         (altivec_vaddecuq): Likewise.
15968         (altivec_vsubeuqm): Likewise.
15969         (altivec_vsubecuq): Likewise.
15971         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
15972         mode iterators.
15973         (BOOL_128): Likewise.
15974         (BOOL_REGS_OUTPUT): Likewise.
15975         (BOOL_REGS_OP1): Likewise.
15976         (BOOL_REGS_OP2): Likewise.
15977         (BOOL_REGS_UNARY): Likewise.
15978         (BOOL_REGS_AND_CR0): Likewise.
15980         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
15981         128-bit integer builtin support.
15982         (vec_vadduqm): Likewise.
15983         (vec_vaddecuq): Likewise.
15984         (vec_vaddeuqm): Likewise.
15985         (vec_vsubecuq): Likewise.
15986         (vec_vsubeuqm): Likewise.
15987         (vec_vsubcuq): Likewise.
15988         (vec_vsubuqm): Likewise.
15990         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
15991         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
15992         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
15993         128-bit integer add/subtract to ISA 2.07.
15995 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
15997         * config/arc/arc.c (arc_predicate_delay_insns):
15998         Fix third argument passed to conditionalize_nonjump.
16000 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
16002         * config/aarch64/aarch64-builtins.c
16003         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
16004         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
16005         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
16006         instead of __builtin_lfloor.
16007         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
16009 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
16011         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
16012         (tree_ssa_ifcombine_bb_1): New function.
16013         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
16014         is an empty forwarder block to then_bb or vice versa and then_bb
16015         and else_bb are effectively swapped.
16017 2014-03-12  Christian Bruel  <christian.bruel@st.com>
16019         PR target/60264
16020         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
16021         REG_CFA_DEF_CFA note.
16022         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
16023         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
16025 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16027         PR tree-optimization/60454
16028         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
16030 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16032         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
16033         Do not define target_cpu_default2 to generic.
16034         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
16035         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
16036         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
16038 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
16039             Marc Glisse  <marc.glisse@inria.fr>
16041         PR tree-optimization/60502
16042         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
16043         instead of build_low_bits_mask.
16045 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
16047         PR middle-end/60482
16048         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
16049         if there are multiple uses, but op doesn't live on E edge.
16050         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
16051         clobber stmts before __builtin_unreachable.
16053 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
16055         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
16056         hard_frame_pointer_rtx.
16057         * cse.c (cse_insn): Remove volatile check.
16058         * cselib.c (cselib_process_insn): Likewise.
16059         * dse.c (scan_insn): Likewise.
16061 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
16063         * config/arc/arc.c (conditionalize_nonjump): New function,
16064         broken out of ...
16065         (arc_ifcvt): ... this.
16066         (arc_predicate_delay_insns): Use it.
16068 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
16070         * config/arc/predicates.md (extend_operand): During/after reload,
16071         allow const_int_operand.
16072         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
16073         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
16074         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
16075         to "i".
16076         (umulsi3_highpart_i): Likewise.
16078 2014-03-11  Richard Biener  <rguenther@suse.de>
16080         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
16081         Add asserts to guard possible wrong-code bugs.
16083 2014-03-11  Richard Biener  <rguenther@suse.de>
16085         PR tree-optimization/60429
16086         PR tree-optimization/60485
16087         * tree-ssa-structalias.c (set_union_with_increment): Properly
16088         take into account all fields that overlap the shifted vars.
16089         (do_sd_constraint): Likewise.
16090         (do_ds_constraint): Likewise.
16091         (get_constraint_for_ptr_offset): Likewise.
16093 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
16095         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
16096         (nios2_compute_frame_layout):
16097         Add calculation of cfun->machine->fp_save_offset.
16098         (nios2_expand_prologue): Correct setting of frame pointer register
16099         in prologue.
16100         (nios2_expand_epilogue): Update recovery of stack pointer from
16101         frame pointer accordingly.
16102         (nios2_initial_elimination_offset): Update calculation of offset
16103         for eliminating to HARD_FRAME_POINTER_REGNUM.
16105 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
16107         PR ipa/60457
16108         * ipa.c (symtab_remove_unreachable_nodes): Don't call
16109         cgraph_get_create_node on VAR_DECLs.
16111 2014-03-10  Richard Biener  <rguenther@suse.de>
16113         PR middle-end/60474
16114         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
16116 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
16118         * config/vms/vms.opt (vms_float_format): New variable.
16120 2014-03-08  Tobias Burnus  <burnus@net-b.de>
16122         * doc/invoke.texi (-fcilkplus): Update implementation status.
16124 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
16125             Richard Biener  <rguenther@suse.de>
16127         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
16128         consistently accross all TUs.
16129         (run_gcc): Enable -fshort-double automatically at link at link-time
16130         and disallow override.
16132 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
16134         PR target/58271
16135         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
16136         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
16137         if they can't be used.
16139 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16141         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
16142         for Solaris 11/x86 ld.
16143         * configure: Regenerate.
16145 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16147         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
16148         (LIB_TLS_SPEC): Save as ld_tls_libs.
16149         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
16150         (HAVE_AS_IX86_TLSLDM): New test.
16151         * configure, config.in: Regenerate.
16152         * config/i386/i386.c (legitimize_tls_address): Fall back to
16153         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
16154         cannot support TLS_MODEL_LOCAL_DYNAMIC.
16155         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
16156         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
16158 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
16160         * common.opt (fira-loop-pressure): Mark as optimization.
16162 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
16164         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
16165         an OpenMP mappable type.
16167 2014-03-06  Matthias Klose  <doko@ubuntu.com>
16169         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
16170         MULTILIB_OSDIRNAMES is not defined.
16172 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
16173             Meador Inge  <meadori@codesourcery.com>
16175         PR target/58595
16176         * config/arm/arm.c (arm_tls_symbol_p): Remove.
16177         (arm_legitimize_address): Call legitimize_tls_address for any
16178         arm_tls_referenced_p expression, handle constant addend.  Call it
16179         before testing for !TARGET_ARM.
16180         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
16182 2014-03-06  Richard Biener  <rguenther@suse.de>
16184         PR middle-end/60445
16185         PR lto/60424
16186         PR lto/60427
16187         Revert
16188         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
16190         * tree-streamer.c (record_common_node): Assert we don't record
16191         nodes with type double.
16192         (preload_common_node): Skip type double, complex double and double
16193         pointer since it is now frontend dependent due to fshort-double option.
16195 2014-03-06  Richard Biener  <rguenther@suse.de>
16197         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
16198         or -fno-lto is specified and the linker has full plugin support.
16199         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
16200         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
16201         * lto-wrapper.c (merge_and_complain): Merge compile-time
16202         optimization levels.
16203         (run_gcc): And pass it through to the link options.
16205 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
16207         PR debug/60381
16208         Revert:
16209         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
16210         PR debug/59992
16211         * cselib.c (remove_useless_values): Skip to avoid quadratic
16212         behavior if the condition moved from...
16213         (cselib_process_insn): ... here holds.
16215 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
16217         PR plugins/59335
16218         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
16219         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
16221         PR plugins/59335
16222         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
16223         (TM_H): Add x86-tune.def.
16225 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16227         * config/aarch64/aarch64.c (generic_tunings):
16228         Use cortexa57_extra_costs.
16230 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
16232         PR lto/60404
16233         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
16234         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
16235         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
16236         cost for in_lto_p.
16238 2014-03-04  Heiher  <r@hev.cc>
16240         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
16241         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
16243 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
16245         * config/i386/predicates.md (const2356_operand): Change to ...
16246         (const2367_operand): ... this.
16247         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
16248         const2367_operand.
16249         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
16250         (*avx512pf_scatterpf<mode>sf): Ditto.
16251         (avx512pf_scatterpf<mode>df): Ditto.
16252         (*avx512pf_scatterpf<mode>df_mask): Ditto.
16253         (*avx512pf_scatterpf<mode>df): Ditto.
16254         * config/i386/i386.c (ix86_expand_builtin): Update
16255         incorrect hint operand error message.
16257 2014-03-04  Richard Biener  <rguenther@suse.de>
16259         * lto-section-in.c (lto_get_section_data): Fix const cast.
16261 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
16263         * tree-streamer.c (record_common_node): Assert we don't record
16264         nodes with type double.
16265         (preload_common_node): Skip type double, complex double and double
16266         pointer since it is now frontend dependent due to fshort-double option.
16268 2014-03-04  Richard Biener  <rguenther@suse.de>
16270         PR lto/60405
16271         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
16272         (lto_input_toplevel_asms): Likewise.
16273         * lto-section-in.c (lto_get_section_data): Instead do it here
16274         for every section.
16276 2014-03-04  Richard Biener  <rguenther@suse.de>
16278         PR tree-optimization/60382
16279         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
16280         dead PHIs a reduction.
16282 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
16284         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
16285         hint value.
16286         (_mm_prefetch): Move out of GCC target("sse") pragma.
16287         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
16288         GCC target("prfchw") pragma.
16289         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
16290         for locality <= 2.
16291         * config/i386/i386.c (ix86_option_override_internal): Enable
16292         -mprfchw with -mprefetchwt1.
16294 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
16296         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
16297         Mark as varying.
16299 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
16301         * opts.h (CL_PCH_IGNORE): Define.
16302         * targhooks.c (option_affects_pch_p):
16303         Return false for options that have CL_PCH_IGNORE set.
16304         * opt-functions.awk: Process PchIgnore.
16305         * doc/options.texi: Document PchIgnore.
16307         * config/arc/arc.opt (misize): Add PchIgnore property.
16309 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16311         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
16312         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
16313         constraint on constants to permit them being loaded into
16314         GENERAL_REGS or BASE_REGS.
16316 2014-03-03  Nick Clifton  <nickc@redhat.com>
16318         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
16319         anti-cacnonical alternatives.
16320         (negandhi3_real): New pattern.
16321         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
16323 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
16325         * config/avr/avr-mcus.def: Remove atxmega16x1.
16326         * config/avr/avr-tables.opt: Regenerate.
16327         * config/avr/t-multilib: Regenerate.
16328         * doc/avr-mmcu.texi: Regenerate.
16330 2014-03-03  Tobias Grosser  <tobias@grosser.es>
16331             Mircea Namolaru  <mircea.namolaru@inria.fr>
16333         PR tree-optimization/58028
16334         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
16335         scalar dimensions.
16337 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16339         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
16340         not handled by recognizers.
16342 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
16344         PR middle-end/60175
16345         * function.c (expand_function_end): Don't emit
16346         clobber_return_register sequence if clobber_after is a BARRIER.
16347         * cfgexpand.c (construct_exit_block): Append instructions before
16348         return_label to prev_bb.
16350 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16352         * config/rs6000/constraints.md: Document reserved use of "wc".
16354 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
16356         PR ipa/60150
16357         * ipa.c (function_and_variable_visibility): When dissolving comdat
16358         group, also set all symbols to local.
16360 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
16362         PR ipa/60306
16364         Revert:
16365         2013-12-14  Jan Hubicka  <jh@suse.cz>
16366         PR middle-end/58477
16367         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
16369 2014-03-02  Jon Beniston  <jon@beniston.com>
16371         PR bootstrap/48230
16372         PR bootstrap/50927
16373         PR bootstrap/52466
16374         PR target/46898
16375         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
16376           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
16377         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
16378         (simple_return, *simple_return): New patterns
16379         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
16380         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
16382 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
16384         * dwarf2out.c (gen_subprogram_die): Tidy.
16386 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
16388         PR target/60071
16389         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
16390         (*mov_t_msb_neg_negc): ... this new insn.
16392 2014-02-28  Jason Merrill  <jason@redhat.com>
16394         PR c++/58678
16395         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
16396         function.
16398 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
16400         PR c++/60314
16401         * dwarf2out.c (decltype_auto_die): New static.
16402         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
16403         (gen_type_die_with_usage): Handle 'decltype(auto)'.
16404         (is_cxx_auto): Likewise.
16406 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
16408         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
16409         we are not using general regs only.
16411 2014-02-28  Richard Biener  <rguenther@suse.de>
16413         PR target/60280
16414         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
16415         previous fix and only allow to remove trivial pre-headers
16416         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
16417         (remove_forwarder_block): Properly update the latch of a loop.
16419 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
16421         PR debug/59992
16422         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
16423         (cselib_preserved_hash_table): New.
16424         (preserve_constants_and_equivs): Move preserved vals to it.
16425         (cselib_find_slot): Look it up first.
16426         (cselib_init): Initialize it.
16427         (cselib_finish): Release it.
16428         (dump_cselib_table): Dump it.
16430 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
16432         PR debug/59992
16433         * cselib.c (remove_useless_values): Skip to avoid quadratic
16434         behavior if the condition moved from...
16435         (cselib_process_insn): ... here holds.
16437 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
16439         PR debug/57232
16440         * var-tracking.c (vt_initialize): Apply the same condition to
16441         preserve the CFA base value.
16443 2014-02-28  Joey Ye  <joey.ye@arm.com>
16445         PR target/PR60169
16446         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
16447         if reload in progress or completed.
16449 2014-02-28  Tobias Burnus  <burnus@net-b.de>
16451         PR middle-end/60147
16452         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
16453         NAMELIST_DECL.
16455 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
16457         * doc/tm.texi.in (Condition Code Status): Update documention for
16458         relative locations of cc0-setter and cc0-user.
16460 2014-02-27  Jeff Law  <law@redhat.com>
16462         PR rtl-optimization/52714
16463         * combine.c (try_combine): When splitting an unrecognized PARALLEL
16464         into two independent simple sets, if I3 is a jump, ensure the
16465         pattern we place into I3 is a (set (pc) ...).
16467 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
16468             Jeff Law  <law@redhat.com>
16470         PR rtl-optimization/49847
16471         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
16472         are in different blocks.
16473         * doc/tm.texi (Condition Code Status): Update documention for
16474         relative locations of cc0-setter and cc0-user.
16476 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
16478         PR target/59222
16479         * lra.c (lra_emit_add): Check SUBREG too.
16481 2014-02-27  Andreas Schwab  <schwab@suse.de>
16483         * config/m68k/m68k.c (m68k_option_override): Disable
16484         -flive-range-shrinkage for classic m68k.
16485         (m68k_override_options_after_change): Likewise.
16487 2014-02-27  Marek Polacek  <polacek@redhat.com>
16489         PR middle-end/59223
16490         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
16491         -Wmaybe-uninitialized.
16493 2014-02-27  Alan Modra  <amodra@gmail.com>
16495         PR target/57936
16496         * reload1.c (emit_input_reload_insns): When reload_override_in,
16497         set old to rl->in_reg when rl->in_reg is a subreg.
16499 2014-02-26  Richard Biener  <rguenther@suse.de>
16501         PR bootstrap/60343
16502         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
16504 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
16506         * common/config/i386/predicates.md (const1256_operand): Remove.
16507         (const2356_operand): New.
16508         (const_1_to_2_operand): Remove.
16509         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
16510         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
16511         (*avx512pf_gatherpf<mode>sf): Ditto.
16512         (avx512pf_gatherpf<mode>df): Ditto.
16513         (*avx512pf_gatherpf<mode>df_mask): Ditto.
16514         (*avx512pf_gatherpf<mode>df): Ditto.
16515         (avx512pf_scatterpf<mode>sf): Ditto.
16516         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
16517         (*avx512pf_scatterpf<mode>sf): Ditto.
16518         (avx512pf_scatterpf<mode>df): Ditto.
16519         (*avx512pf_scatterpf<mode>df_mask): Ditto.
16520         (*avx512pf_scatterpf<mode>df): Ditto.
16521         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
16523 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
16525         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
16526         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
16527         (_mm512_mask_testn_epi64_mask): Move to ...
16528         * config/i386/avx512cdintrin.h: Here.
16529         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
16530         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
16531         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
16532         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
16533         TARGET_AVX512F from TARGET_AVX512CD.
16535 2014-02-26  Richard Biener  <rguenther@suse.de>
16537         PR ipa/60327
16538         * ipa.c (walk_polymorphic_call_targets): Properly guard
16539         call to inline_update_overall_summary.
16541 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
16543         PR target/60280
16544         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
16545         and latches only if requested.  Fix latch if it is removed.
16546         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
16547         LOOPS_HAVE_PREHEADERS.
16549 2014-02-25  Andrew Pinski  <apinski@cavium.com>
16551         * builtins.c (expand_builtin_thread_pointer): Create a new target
16552         when the target is NULL.
16554 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
16556         PR rtl-optimization/60317
16557         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
16558         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
16559         * lra-assigns.c: Include params.h.
16560         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
16561         other reload pseudos considerations.
16563 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16565         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
16566         to use canonical form for nor<mode>3.
16568 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16570         PR target/55426
16571         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
16572         conversions.
16574 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
16576         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
16577         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
16578         (ix86_handle_option): Handle OPT_mprefetchwt1.
16579         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
16580         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
16581         PREFETCHWT1 CPUID.
16582         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16583         OPTION_MASK_ISA_PREFETCHWT1.
16584         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
16585         (PTA_PREFETCHWT1): New.
16586         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
16587         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
16588         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
16589         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
16590         (*prefetch_avx512pf_<mode>_: Change into ...
16591         (*prefetch_prefetchwt1_<mode>: This.
16592         * config/i386/i386.opt (mprefetchwt1): New.
16593         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
16594         (_mm_prefetch): Handle intent to write.
16595         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
16597 2014-02-25  Richard Biener  <rguenther@suse.de>
16599         PR middle-end/60291
16600         * emit-rtl.c (mem_attrs_htab): Remove.
16601         (mem_attrs_htab_hash): Likewise.
16602         (mem_attrs_htab_eq): Likewise.
16603         (set_mem_attrs): Always allocate new mem-attrs when something changed.
16604         (init_emit_once): Do not allocate mem_attrs_htab.
16606 2014-02-25  Richard Biener  <rguenther@suse.de>
16608         PR lto/60319
16609         * lto-opts.c (lto_write_options): Output non-explicit conservative
16610         -fwrapv, -fno-trapv and -fno-strict-overflow.
16611         * lto-wrapper.c (merge_and_complain): Handle merging those options.
16612         (run_gcc): And pass them through.
16614 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
16616         * sel-sched.c (calculate_new_fences): New parameter ptime.
16617         Calculate it as a maximum over all fence cycles.
16618         (sel_sched_region_2): Adjust the call to calculate_new_fences.
16619         Print the final schedule timing when sched_verbose.
16621 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
16623         PR rtl-optimization/60292
16624         * sel-sched.c (fill_vec_av_set): Do not reset target availability
16625         bit fot the fence instruction.
16627 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
16629         * calls.h: Fix typo in comment.
16631 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
16633         * config/pa/pa.c (pa_output_move_double): Don't valididate when
16634         adjusting offsetable addresses.
16636 2014-02-24  Guozhi Wei  <carrot@google.com>
16638         * sparseset.h (sparseset_pop): Fix the wrong index.
16640 2014-02-24  Walter Lee  <walt@tilera.com>
16642         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
16643         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
16644         triplet.
16645         * common/config/tilegx/tilegx-common.c
16646         (TARGET_DEFAULT_TARGET_FLAGS): Define.
16647         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
16648         (LINK_SPEC): Ditto.
16649         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
16650         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
16651         (tilegx_gimplify_va_arg_expr): Handle big endian.
16652         (tilegx_expand_unaligned_load): Ditto.
16653         (tilegx_expand_unaligned_store): Ditto.
16654         (TARGET_RETURN_IN_MSB): New.
16655         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
16656         (TARGET_ENDIAN_DEFAULT): New.
16657         (TARGET_BIG_ENDIAN): Handle big endian.
16658         (BYTES_BIG_ENDIAN): Ditto.
16659         (WORDS_BIG_ENDIAN): Ditto.
16660         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
16661         (ENDIAN_SPEC): New.
16662         (EXTRA_SPECS): New.
16663         * config/tilegx/tilegx.md (extv): Handle big endian.
16664         (extzv): Ditto.
16665         (insn_st<n>): Ditto.
16666         (insn_st<n>_add<bitsuffix>): Ditto.
16667         (insn_stnt<n>): Ditto.
16668         (insn_stnt<n>_add<bitsuffix>):Ditto.
16669         (vec_interleave_highv8qi): Handle big endian.
16670         (vec_interleave_highv8qi_be): New.
16671         (vec_interleave_highv8qi_le): New.
16672         (insn_v1int_h): Handle big endian.
16673         (vec_interleave_lowv8qi): Handle big endian.
16674         (vec_interleave_lowv8qi_be): New.
16675         (vec_interleave_lowv8qi_le): New.
16676         (insn_v1int_l): Handle big endian.
16677         (vec_interleave_highv4hi): Handle big endian.
16678         (vec_interleave_highv4hi_be): New.
16679         (vec_interleave_highv4hi_le): New.
16680         (insn_v2int_h): Handle big endian.
16681         (vec_interleave_lowv4hi): Handle big endian.
16682         (vec_interleave_lowv4hi_be): New.
16683         (vec_interleave_lowv4hi_le): New.
16684         (insn_v2int_l): Handle big endian.
16685         (vec_interleave_highv2si): Handle big endian.
16686         (vec_interleave_highv2si_be): New.
16687         (vec_interleave_highv2si_le): New.
16688         (insn_v4int_h): Handle big endian.
16689         (vec_interleave_lowv2si): Handle big endian.
16690         (vec_interleave_lowv2si_be): New.
16691         (vec_interleave_lowv2si_le): New.
16692         (insn_v4int_l): Handle big endian.
16693         * config/tilegx/tilegx.opt (mbig-endian): New option.
16694         (mlittle-endian): New option.
16695         * doc/install.texi: Document tilegxbe-linux.
16696         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
16698 2014-02-24  Martin Jambor  <mjambor@suse.cz>
16700         PR ipa/60266
16701         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
16702         there are no parameter descriptors.
16704 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
16706         PR rtl-optimization/60268
16707         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
16708         initialization to ...
16709         (sched_rgn_init): ... here.
16710         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
16712 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
16714         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
16715         names.
16717 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
16719         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
16720         definition.
16722 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
16724         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
16725         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
16727 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
16729         * config/microblaze/predicates.md: Add cmp_op predicate.
16730         * config/microblaze/microblaze.md: Add branch_compare instruction
16731         which uses cmp_op predicate and emits cmp insn before branch.
16732         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
16733         to microblaze_expand_conditional_branch and consolidate logic.
16734         (microblaze_expand_conditional_branch): emit branch_compare
16735         insn instead of handling cmp op separate from branch insn.
16737 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16739         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
16740         to permit subregs.
16742 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16744         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
16745         define_insn with define_expand and new define_insn
16746         *altivec_lve<VI_char>x_internal.
16747         (altivec_stve<VI_char>x): Replace define_insn with define_expand
16748         and new define_insn *altivec_stve<VI_char>x_internal.
16749         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
16750         prototype.
16751         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
16752         lve*x built-ins.
16753         (altivec_expand_stvex_be): New function.
16755 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
16757         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
16758         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
16759         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
16760         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
16762 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
16764         PR target/60298
16765         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
16766         instead of emit_move_insn.
16768 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16770         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
16771         vspltw with vsldoi.
16772         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
16773         gen_altivec_vsumsws.
16775 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16777         * config/rs6000/altivec.md (altivec_lvxl): Rename as
16778         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
16779         (altivec_lvxl_<mode>): New define_expand incorporating
16780         -maltivec=be semantics where needed.
16781         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
16782         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
16783         semantics where needed.
16784         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
16785         (altivec_stvx_<mode>): New define_expand incorporating
16786         -maltivec=be semantics where needed.
16787         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
16788         VM2 iterator instead of V4SI.
16789         (altivec_stvxl_<mode>): New define_expand incorporating
16790         -maltivec=be semantics where needed.
16791         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
16792         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
16793         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
16794         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
16795         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
16796         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
16797         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
16798         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
16799         ALTIVEC_BUILTIN_STVXL.
16800         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
16801         (altivec_expand_stvx_be): Likewise.
16802         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
16803         (altivec_expand_lvx_be): Likewise.
16804         (altivec_expand_stvx_be): Likewise.
16805         (altivec_expand_builtin): Add cases for
16806         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
16807         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
16808         (altivec_init_builtins): Add definitions for
16809         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
16810         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
16812 2014-02-21  Catherine Moore  <clm@codesourcery.com>
16814         * doc/invoke.texi (mvirt, mno-virt): Document.
16815         * config/mips/mips.opt (mvirt): New option.
16816         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
16818 2014-02-21  Richard Biener  <rguenther@suse.de>
16820         PR tree-optimization/60276
16821         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
16822         (STMT_VINFO_MIN_NEG_DIST): New macro.
16823         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
16824         STMT_VINFO_MIN_NEG_DIST.
16825         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
16826         made for negative dependence distances still hold.
16828 2014-02-21  Richard Biener  <rguenther@suse.de>
16830         PR middle-end/60291
16831         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
16832         DECL_INITIAL for globals not in the current function context.
16834 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
16836         PR tree-optimization/56490
16837         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
16838         * tree-ssa-uninit.c: Include params.h.
16839         (compute_control_dep_chain): Add num_calls argument, return false
16840         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
16841         num_calls to recursive call.
16842         (find_predicates): Change dep_chain into normal array,
16843         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
16844         variable and adjust compute_control_dep_chain caller.
16845         (find_def_preds): Likewise.
16847 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
16849         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
16850         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
16852 2014-02-21  Nick Clifton  <nickc@redhat.com>
16854         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
16855         (pushhi1): Likewise.
16856         (popqi1): Add mode to pre_dec.
16857         (pophi1): Likewise.
16859 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
16861         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
16862         mode for mask of V8SFmode permutation.
16864 2014-02-20  Richard Henderson  <rth@redhat.com>
16866         PR c++/60272
16867         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
16868         a new pseudo for OLDVAL.
16870 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
16872         PR target/57896
16873         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
16874         gen_reg_rtx if d->testing_p.
16875         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
16876         if d->testing_p and we will certainly return true.
16877         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
16878         if d->testing_p.
16880 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
16882         * emit-rtl.c (gen_reg_rtx): Assert that
16883         crtl->emit.regno_pointer_align_length is non-zero.
16885 2014-02-20  Richard Henderson  <rth@redhat.com>
16887         PR c++/60272
16888         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
16889         on failure the store back into EXPECT.
16891 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
16892             Sandra Loosemore  <sandra@codesourcery.com>
16894         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
16895         * config/nios2/nios2.c (nios2_function_profiler): Add
16896         -fPIC (flag_pic == 2) support.
16897         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
16898         (nios2_large_offset_p): New function.
16899         (nios2_unspec_reloc_p): Move up position, update to use
16900         nios2_large_offset_p.
16901         (nios2_unspec_address): Remove function.
16902         (nios2_unspec_offset): New function.
16903         (nios2_large_got_address): New function.
16904         (nios2_got_address): Add large offset support.
16905         (nios2_legitimize_tls_address): Update usage of removed and new
16906         functions.
16907         (nios2_symbol_binds_local_p): New function.
16908         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
16909         (nios2_legitimize_address): Update to use nios2_large_offset_p.
16910         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
16911         (nios2_print_operand): Merge H/L processing, add hiadj/lo
16912         processing for (const (unspec ...)).
16913         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
16915 2014-02-20  Richard Biener  <rguenther@suse.de>
16917         * tree-cfg.c (replace_uses_by): Mark altered BBs before
16918         doing the substitution.
16919         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
16921 2014-02-20  Martin Jambor  <mjambor@suse.cz>
16923         PR ipa/55260
16924         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
16925         info when checking whether lattices are bottom.
16927 2014-02-20  Richard Biener  <rguenther@suse.de>
16929         PR middle-end/60221
16930         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
16931         regions at -O0.
16933 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
16935         PR ipa/58555
16936         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
16937         parameter specifying the scaling.
16938         (inline_call): Update.
16939         (want_inline_recursively): Guard division by zero.
16940         (recursive_inlining): Update.
16941         * ipa-inline.h (clone_inlined_nodes): Update.
16943 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
16945         PR target/60204
16946         * config/i386/i386.c (classify_argument): Pass structures of size
16947         64 bytes or less in register.
16949 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
16950             Kirill Yukhin  <kirill.yukhin@intel.com>
16952         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
16953         (_mm_rcp28_round_ss): Ditto.
16954         (_mm_rsqrt28_round_sd): Ditto.
16955         (_mm_rsqrt28_round_ss): Ditto.
16956         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
16957         (_mm_rcp14_round_ss): Ditto.
16958         (_mm_rsqrt14_round_sd): Ditto.
16959         (_mm_rsqrt14_round_ss): Ditto.
16960         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
16961         the first input operand, get rid of match_dup.
16962         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
16963         attribute to sse.
16964         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
16965         Ditto.
16966         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
16967         operand as the first input operand, set type attribute.
16968         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
16969         Set type attribute.
16970         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
16971         operand as the first input operand, set type attribute.
16973 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16975         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
16976         bit of zero.
16978 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
16980         PR target/60207
16981         * config/i386/i386.c (construct_container): Remove TFmode check
16982         for X86_64_INTEGER_CLASS.
16984 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
16986         PR target/59794
16987         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
16988         only when -Wpsabi is enabled.
16990 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
16992          PR target/59799
16993         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
16994         passing arrays in registers are the same as for structs, so remove the
16995         special case for them.
16997 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
16999         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
17000         destination type, extract only the valid bits if the source type is not
17001         integral and has a different mode.
17003 2014-02-19  Richard Biener  <rguenther@suse.de>
17005         PR ipa/60243
17006         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
17007         for all calls.
17009 2014-02-19  Richard Biener  <rguenther@suse.de>
17011         PR ipa/60243
17012         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
17013         (ipa_modify_call_arguments): Emit an argument load explicitely and
17014         preserve virtual SSA form there and for the replacement call.
17015         Do not update SSA form nor free dominance info.
17017 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
17019         * ipa.c (function_and_variable_visibility): Also clear WEAK
17020         flag when disolving COMDAT_GROUP.
17022 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
17024         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
17025         * ipa-prop.c (ipa_set_jf_known_type): Return early when
17026         not devirtualizing.
17027         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
17028         do more sanity checks.
17029         (detect_type_change): Return true when giving up early.
17030         (compute_complex_assign_jump_func): Fix type parameter of
17031         ipa_set_ancestor_jf.
17032         (compute_complex_ancestor_jump_func): Likewise.
17033         (update_jump_functions_after_inlining): Fix updating of
17034         ancestor function.
17035         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
17037 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
17039         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
17040         inline clones when edge disappears.
17042 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
17044         PR target/60203
17045         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
17046         Split 64-bit moves into 2 patterns.  Do not allow the use of
17047         direct move for TDmode in little endian, since the decimal value
17048         has little endian bytes within a word, but the 64-bit pieces are
17049         ordered in a big endian fashion, and normal subreg's of TDmode are
17050         not allowed.
17051         (mov<mode>_64bit_dm): Likewise.
17052         (movtd_64bit_nodm): Likewise.
17054 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
17056         PR tree-optimization/60174
17057         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
17058         statement of an SSA_NAME that occurs in an abnormal PHI node.
17060 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
17062         PR sanitizer/60142
17063         * final.c (SEEN_BB): Remove.
17064         (SEEN_NOTE, SEEN_EMITTED): Renumber.
17065         (final_scan_insn): Don't force_source_line on second
17066         NOTE_INSN_BASIC_BLOCK.
17068 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
17070         PR target/60205
17071         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
17072         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
17073         (type_natural_mode): Warn ABI change when %zmm register is not
17074         available for AVX512F vector value passing.
17076 2014-02-18  Kai Tietz  <ktietz@redhat.com>
17078         PR target/60193
17079         * config/i386/i386.c (ix86_expand_prologue): Use value in
17080         rax register as displacement when restoring %r10 or %rax.
17081         Fix wrong offset when restoring both registers.
17083 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
17085         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
17086         assertion with conditional return.
17088 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
17089             Uros Bizjak  <ubizjak@gmail.com>
17091         PR driver/60233
17092         * config/i386/driver-i386.c (host_detect_local_cpu): If
17093         YMM state is not saved by the OS, also clear has_f16c.  Move
17094         CPUID 0x80000001 handling before YMM state saving checking.
17096 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
17098         PR rtl-optimization/58960
17099         * haifa-sched.c (alloc_global_sched_pressure_data): New,
17100         factored out from ...
17101         (sched_init): ... here.
17102         (free_global_sched_pressure_data): New, factored out from ...
17103         (sched_finish): ... here.
17104         * sched-int.h (free_global_sched_pressure_data): Declare.
17105         * sched-rgn.c (nr_regions_initial): New static global.
17106         (haifa_find_rgns): Initialize it.
17107         (schedule_region): Disable sched-pressure for the newly
17108         generated regions.
17110 2014-02-17  Richard Biener  <rguenther@suse.de>
17112         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
17113         release SSA defs of pattern stmts.
17115 2014-02-17  Richard Biener  <rguenther@suse.de>
17117         * tree-inline.c (expand_call_inline): Release the virtual
17118         operand defined by the call we are about to inline.
17120 2014-02-17  Richard Biener  <rguenther@suse.de>
17122         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
17124 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
17125             Ilya Tocar  <ilya.tocar@intel.com>
17127         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
17128         arguments order in builtin.
17129         (_mm512_permutexvar_epi64): Ditto.
17130         (_mm512_mask_permutexvar_epi64): Ditto
17131         (_mm512_maskz_permutexvar_epi32): Ditto
17132         (_mm512_permutexvar_epi32): Ditto
17133         (_mm512_mask_permutexvar_epi32): Ditto
17135 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17137         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
17138         (p8_vmrgow): Likewise.
17140 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17142         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
17143         endian targets.
17145 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
17147         PR target/60203
17148         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
17149         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
17150         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
17151         using direct move instructions on ISA 2.07.  Also adjust
17152         instruction length for 64-bit.
17153         (mov<mode>_64bit, TFmode/TDmode): Likewise.
17154         (mov<mode>_32bit, TFmode/TDmode): Likewise.
17156 2014-02-15  Alan Modra  <amodra@gmail.com>
17158         PR target/58675
17159         PR target/57935
17160         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
17161         find_replacement on parts of insn rtl that might be reloaded.
17163 2014-02-15  Richard Biener  <rguenther@suse.de>
17165         PR tree-optimization/60183
17166         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
17167         (tree_ssa_phiprop): Calculate and free post-dominators.
17169 2014-02-14  Jeff Law  <law@redhat.com>
17171         PR rtl-optimization/60131
17172         * ree.c (get_extended_src_reg): New function.
17173         (combine_reaching_defs): Use it rather than assuming location of REG.
17174         (find_and_remove_re): Verify first operand of extension is
17175         a REG before adding the insns to the copy list.
17177 2014-02-14  Roland McGrath  <mcgrathr@google.com>
17179         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
17180         * configure: Regenerated.
17181         * config.in: Regenerated.
17182         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
17183         instead of ASM_SHORT.
17185 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
17186             Richard Earnshaw  <rearnsha@arm.com>
17188         PR rtl-optimization/59535
17189         * lra-constraints.c (process_alt_operands): Encourage alternative
17190         when unassigned pseudo class is superset of the alternative class.
17191         (inherit_reload_reg): Don't inherit when optimizing for code size.
17192         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
17193         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
17194         modes not less than 4 for Thumb1.
17196 2014-02-14  Kyle McMartin  <kyle@redhat.com>
17198         PR pch/60010
17199         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
17201 2014-02-14  Richard Biener  <rguenther@suse.de>
17203         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
17204         (get_frame_arg): Drop the assert with langhook types_compatible_p.
17205         Do not strip INDIRECT_REFs.
17207 2014-02-14  Richard Biener  <rguenther@suse.de>
17209         PR lto/60179
17210         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
17211         DECL_FUNCTION_SPECIFIC_TARGET.
17212         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
17213         * tree-streamer-out.c (pack_ts_target_option): Remove.
17214         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
17215         (write_ts_function_decl_tree_pointers): Do not stream
17216         DECL_FUNCTION_SPECIFIC_TARGET.
17217         * tree-streamer-in.c (unpack_ts_target_option): Remove.
17218         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
17219         (lto_input_ts_function_decl_tree_pointers): Do not stream
17220         DECL_FUNCTION_SPECIFIC_TARGET.
17222 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
17224         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
17225         (get_initial_def_for_induction, vectorizable_induction): Ignore
17226         debug stmts when looking for exit_phi.
17227         (vectorizable_live_operation): Fix up condition.
17229 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
17231         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
17232         nreverse() because it changes the content of original tree list.
17234 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
17236         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
17237         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
17239 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
17241         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
17242         GNU coding standards.
17244 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
17246         PR debug/60152
17247         * dwarf2out.c (gen_subprogram_die): Don't call
17248         add_calling_convention_attribute if subr_die is old_die.
17250 2014-02-13  Sharad Singhai  <singhai@google.com>
17252         * doc/optinfo.texi: Fix order of nodes.
17254 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
17256         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
17257         operands[2], not operands[3].
17259 2014-02-13  Richard Biener  <rguenther@suse.de>
17261         PR bootstrap/59878
17262         * doc/install.texi (ISL): Update recommended version to 0.12.2,
17263         mention the possibility of an in-tree build.
17264         (CLooG): Update recommended version to 0.18.1, mention the
17265         possibility of an in-tree build and clarify that the ISL
17266         bundled with CLooG does not work.
17268 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
17270         PR target/43546
17271         * expr.c (compress_float_constant): If x is a hard register,
17272         extend into a pseudo and then move to x.
17274 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
17276         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
17277         caused by bad second argument to warning_at() with -mhotpatch and
17278         nested functions (e.g. with gfortran).
17280 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
17282         * opts.c (option_name): Remove "enabled by default" rider.
17284 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
17286         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
17288 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
17289             Uros Bizjak  <ubizjak@gmail.com>
17291         PR target/60151
17292         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
17293         * configure: Regenerated.
17295 2014-02-12  Richard Biener  <rguenther@suse.de>
17297         * vec.c (vec_prefix::calculate_allocation): Move as
17298         inline variant to vec.h.
17299         (vec_prefix::calculate_allocation_1): New out-of-line version.
17300         * vec.h (vec_prefix::calculate_allocation_1): Declare.
17301         (vec_prefix::m_has_auto_buf): Rename to ...
17302         (vec_prefix::m_using_auto_storage): ... this.
17303         (vec_prefix::calculate_allocation): Inline the easy cases
17304         and dispatch to calculate_allocation_1 which doesn't need the
17305         prefix address.
17306         (va_heap::reserve): Use gcc_checking_assert.
17307         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
17308         m_using_auto_storage.
17309         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
17310         member and adjust.
17311         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
17312         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
17313         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
17315 2014-02-12  Richard Biener  <rguenther@suse.de>
17317         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
17318         when we found a dependence.
17320 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
17322         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
17323         common code...
17324         (maybe_fold_stmt): ... into this new function.
17325         * omp-low.c (lower_omp): Update comment.
17327         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
17328         last use.
17330         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
17331         dereference.
17333 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
17335         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
17336         identifiers in comments.
17337         (cortexa53_extra_costs): Likewise.
17338         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
17339         (cortexa7_extra_costs): Likewise.
17340         (cortexa12_extra_costs): Likewise.
17341         (cortexa15_extra_costs): Likewise.
17342         (v7m_extra_costs): Likewise.
17344 2014-02-12  Richard Biener  <rguenther@suse.de>
17346         PR middle-end/60092
17347         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
17348         of posix_memalign being successful.
17349         (lower_stmt): Restrict lowering of posix_memalign to when
17350         -ftree-bit-ccp is enabled.
17352 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17354         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
17355         arg_loc.
17356         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
17358 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
17360         PR rtl-optimization/60116
17361         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
17362         other_insn once the combination has been validated.
17364 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
17366         PR lto/59468
17367         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
17368         and wrapper.
17369         * ipa-devirt.c: Include demangle.h
17370         (odr_violation_reported): New static variable.
17371         (add_type_duplicate): Update odr_violations.
17372         (maybe_record_node): Add completep parameter; update it.
17373         (record_target_from_binfo): Add COMPLETEP parameter;
17374         update it as needed.
17375         (possible_polymorphic_call_targets_1): Likewise.
17376         (struct polymorphic_call_target_d): Add nonconstruction_targets;
17377         rename FINAL to COMPLETE.
17378         (record_targets_from_bases): Sanity check we found the binfo;
17379         fix COMPLETEP updating.
17380         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
17381         parameter, fix computing of COMPLETEP.
17382         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
17383         at LTO time do demangling.
17384         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
17385         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
17386         parameter.
17387         (gimple_get_virt_method_for_binfo): Likewise.
17388         * gimple-fold.h (gimple_get_virt_method_for_binfo,
17389         gimple_get_virt_method_for_vtable): Update prototypes.
17391 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
17393         PR target/49008
17394         * genautomata.c (add_presence_absence): Fix typo with
17395         {final_}presence_list.
17397 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
17399         PR target/60137
17400         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
17401         for VSX/Altivec vectors that land in GPR registers.
17403 2014-02-11  Richard Henderson  <rth@redhat.com>
17404             Jakub Jelinek  <jakub@redhat.com>
17406         PR debug/59776
17407         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
17408         around drhs if type conversion to lacc->type is not useless.
17410 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17412         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
17413         tuning struct.
17414         (cortex-a57.cortex-a53): Likewise.
17415         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
17417 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17419         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
17420         arm_restrict_it.
17422 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
17424         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
17425         add_options_for_arm_vfp3.
17427 2014-02-11  Jeff Law  <law@redhat.com>
17429         PR middle-end/54041
17430         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
17431         object with an undesirable mode.
17433 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17435         PR libgomp/60107
17436         * config/i386/sol2-9.h: New file.
17437         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
17438         *-*-solaris2.9*): Use it.
17440 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
17442         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
17443         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
17445 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
17447         * config/microblaze/microblaze.c: Extend mcpu version format
17449 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
17451         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
17453 2014-02-10  Richard Henderson  <rth@redhat.com>
17455         PR target/59927
17456         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
17457         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
17458         ms-abi vs -mno-accumulate-outgoing-args.
17459         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
17460         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
17461         respect to ms-abi.
17463 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17465         PR middle-end/60080
17466         * cfgexpand.c (expand_asm_operands): Attach source location to
17467         ASM_INPUT rtx objects.
17468         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
17470 2014-02-10  Nick Clifton  <nickc@redhat.com>
17472         * config/mn10300/mn10300.c (popcount): New function.
17473         (mn10300_expand_prologue): Include saved registers in stack usage
17474         count.
17476 2014-02-10  Jeff Law  <law@redhat.com>
17478         PR middle-end/52306
17479         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
17480         when changing the SET_DEST of a prior insn to avoid an input reload.
17482 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17484         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
17485         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
17486         -mcall-openbsd, or -mcall-linux.
17487         (CC1_ENDIAN_BIG_SPEC): Remove.
17488         (CC1_ENDIAN_LITTLE_SPEC): Remove.
17489         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
17490         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
17491         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
17492         and %cc1_endian_default.
17493         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
17495 2014-02-10  Richard Biener  <rguenther@suse.de>
17497         PR tree-optimization/60115
17498         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
17499         MEM_REF handling.  Properly verify that the accesses are not
17500         out of the objects bound.
17502 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17504         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
17505         coretex to cortex.
17507 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
17509         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
17510         proper constants and fix formatting.
17511         (possible_polymorphic_call_targets): Fix formatting.
17513 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
17514             Ilya Tocar  <ilya.tocar@intel.com>
17516         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
17517         (_mm512_loadu_epi32): Renamed into...
17518         (_mm512_loadu_si512): This.
17519         (_mm512_storeu_epi32): Renamed into...
17520         (_mm512_storeu_si512): This.
17521         (_mm512_maskz_ceil_ps): Removed.
17522         (_mm512_maskz_ceil_pd): Ditto.
17523         (_mm512_maskz_floor_ps): Ditto.
17524         (_mm512_maskz_floor_pd): Ditto.
17525         (_mm512_floor_round_ps): Ditto.
17526         (_mm512_floor_round_pd): Ditto.
17527         (_mm512_ceil_round_ps): Ditto.
17528         (_mm512_ceil_round_pd): Ditto.
17529         (_mm512_mask_floor_round_ps): Ditto.
17530         (_mm512_mask_floor_round_pd): Ditto.
17531         (_mm512_mask_ceil_round_ps): Ditto.
17532         (_mm512_mask_ceil_round_pd): Ditto.
17533         (_mm512_maskz_floor_round_ps): Ditto.
17534         (_mm512_maskz_floor_round_pd): Ditto.
17535         (_mm512_maskz_ceil_round_ps): Ditto.
17536         (_mm512_maskz_ceil_round_pd): Ditto.
17537         (_mm512_expand_pd): Ditto.
17538         (_mm512_expand_ps): Ditto.
17539         * config/i386/i386.c (ix86_builtins): Remove
17540         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
17541         (bdesc_args): Ditto.
17542         * config/i386/predicates.md (const1256_operand): New.
17543         (const_1_to_2_operand): Ditto.
17544         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
17545         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
17546         (*avx512pf_gatherpf<mode>sf): Ditto.
17547         (avx512pf_gatherpf<mode>df): Ditto.
17548         (*avx512pf_gatherpf<mode>df_mask): Ditto.
17549         (*avx512pf_gatherpf<mode>df): Ditto.
17550         (avx512pf_scatterpf<mode>sf): Ditto.
17551         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
17552         (*avx512pf_scatterpf<mode>sf): Ditto.
17553         (avx512pf_scatterpf<mode>df): Ditto.
17554         (*avx512pf_scatterpf<mode>df_mask): Ditto.
17555         (*avx512pf_scatterpf<mode>df): Ditto.
17556         (avx512f_expand<mode>): Removed.
17557         (<shift_insn><mode>3<mask_name>): Change predicate type.
17559 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
17561         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
17562         not at the end of datarefs vector use ordered_remove to avoid
17563         reordering datarefs vector.
17565         PR c/59984
17566         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
17567         mark local addressable non-static vars as GOVD_PRIVATE
17568         instead of GOVD_LOCAL.
17569         * omp-low.c (lower_omp_for): Move gimple_bind_vars
17570         and BLOCK_VARS of gimple_bind_block to new_stmt rather
17571         than copying them.
17573         PR middle-end/60092
17574         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
17575         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
17576         assume_aligned or alloc_align attributes.
17577         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
17578         arguments.  Handle also assume_aligned and alloc_align attributes.
17579         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
17580         calls to functions with assume_aligned or alloc_align attributes.
17581         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
17583 2014-02-08  Terry Guo  <terry.guo@arm.com>
17585         * doc/invoke.texi: Document ARM -march=armv7e-m.
17587 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
17589         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
17590         flag on __cilkrts_rethrow builtin.
17592         PR ipa/60026
17593         * ipa-cp.c (determine_versionability): Fail at -O0
17594         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
17595         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
17597         Revert:
17598         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
17600         PR ipa/60026
17601         * tree-inline.c (copy_forbidden): Fail for
17602         __attribute__((optimize (0))) functions.
17604 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
17606         * varpool.c: Include pointer-set.h.
17607         (varpool_remove_unreferenced_decls): Variables in other partitions
17608         will not be output; be however careful to not lose information
17609         about partitioning.
17611 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
17613         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
17614         lookup in the vtable constructor.
17616 2014-02-07  Jeff Law  <law@redhat.com>
17618         PR target/40977
17619         * config/m68k/m68k.md (ashldi_extsi): Turn into a
17620         define_insn_and_split.
17622         * ipa-inline.c (inline_small_functions): Fix typos.
17624 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
17626         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
17627         (s390_can_use_return_insn): Declare.
17628         * config/s390/s390.h (EPILOGUE_USES): Define.
17629         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
17630         instructions.
17631         (s390_chunkify_start): Handle return JUMP_LABELs.
17632         (s390_early_mach): Emit a main_pool instruction on the entry edge.
17633         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
17634         (s390_can_use_return_insn): New functions.
17635         (s390_fix_long_loop_prediction): Handle conditional returns.
17636         (TARGET_SET_UP_BY_PROLOGUE): Define.
17637         * config/s390/s390.md (ANY_RETURN): New code iterator.
17638         (*creturn, *csimple_return, return, simple_return): New patterns.
17640 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
17642         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
17643         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
17644         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
17645         REG_CFA_RESTORE list when deciding not to restore a register.
17647 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
17649         * config/s390/s390.c: Include tree-pass.h and context.h.
17650         (s390_early_mach): New function, split out from...
17651         (s390_emit_prologue): ...here.
17652         (pass_data_s390_early_mach): New pass structure.
17653         (pass_s390_early_mach): New class.
17654         (s390_option_override): Create and register early_mach pass.
17655         Move to end of file.
17657 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
17659         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
17660         to match for the exit block.
17662 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17664         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
17665         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
17666         Reject misaligned operands.
17668 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17670         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
17672 2014-02-07  Richard Biener  <rguenther@suse.de>
17674         PR middle-end/60092
17675         * gimple-low.c (lower_builtin_posix_memalign): New function.
17676         (lower_stmt): Call it to lower posix_memalign in a way
17677         to make alignment info accessible.
17679 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
17681         PR c++/60082
17682         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
17683         __builtin_setjmp_receiver.
17685 2014-02-07  Richard Biener  <rguenther@suse.de>
17687         PR middle-end/60092
17688         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
17689         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
17690         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
17691         Handle BUILT_IN_POSIX_MEMALIGN.
17692         (find_func_clobbers): Likewise.
17693         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
17694         (call_may_clobber_ref_p_1): Likewise.
17696 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
17698         PR ipa/59918
17699         * ipa-devirt.c (record_target_from_binfo): Remove overactive
17700         sanity check.
17702 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
17704         PR ipa/59469
17705         * lto-cgraph.c (lto_output_node): Use
17706         symtab_get_symbol_partitioning_class.
17707         (lto_output_varpool_node): likewise.
17708         (symtab_get_symbol_partitioning_class): Move here from
17709         lto/lto-partition.c
17710         * cgraph.h (symbol_partitioning_class): Likewise.
17711         (symtab_get_symbol_partitioning_class): Declare.
17713 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
17715         * ggc.h (ggc_internal_cleared_alloc): New macro.
17716         * vec.h (vec_safe_copy): Handle memory stats.
17717         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
17718         * target-globals.c (save_target_globals): Likewise.
17720 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
17722         PR target/60077
17723         * expr.c (emit_move_resolve_push): Export; be bit more selective
17724         on when to clear alias set.
17725         * expr.h (emit_move_resolve_push): Declare.
17726         * function.h (struct function): Add tail_call_marked.
17727         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
17728         * config/i386/i386-protos.h (ix86_expand_push): Remove.
17729         * config/i386/i386.md (TImode move expander): De not call
17730         ix86_expand_push.
17731         (FP push expanders): Preserve memory attributes.
17732         * config/i386/sse.md (push<mode>1): Remove.
17733         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
17734         (ix86_expand_push): Remove.
17735         * config/i386/mmx.md (push<mode>1): Remove.
17737 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
17739         PR rtl-optimization/60030
17740         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
17741         lopart with paradoxical subreg before shifting it up by hprec.
17743 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17745         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
17746         Remove extra newline at end of file.
17747         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
17748         (arm_issue_rate): Handle cortexa57.
17749         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
17750         (cortex-a57.cortex-a53): Likewise.
17752 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
17754         PR target/59575
17755         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
17756         don't record in REG_FRAME_RELATED_EXPR registers not set in that
17757         bitmask.
17758         (arm_expand_prologue): Adjust all callers.
17759         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
17760         info, registers also at the lowest numbered registers side.  Use
17761         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
17762         XEXP.
17764         PR debug/59992
17765         * var-tracking.c (adjust_mems): Before adding a SET to
17766         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
17768 2014-02-06  Alan Modra  <amodra@gmail.com>
17770         PR target/60032
17771         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
17772         change SDmode to DDmode when lra_in_progress.
17774 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
17776         PR middle-end/59150
17777         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
17778         free_data_ref on the dr first, and before goto again also set dr
17779         to the next dr.  For simd_lane_access, free old datarefs[i] before
17780         overwriting it.  For get_vectype_for_scalar_type failure, don't
17781         free_data_ref if simd_lane_access.
17783         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
17785         PR target/60062
17786         * tree.h (opts_for_fn): New inline function.
17787         (opt_for_fn): Define.
17788         * config/i386/i386.c (ix86_function_regparm): Use
17789         opt_for_fn (decl, optimize) instead of optimize.
17791 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17793         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
17794         for SYMBOL_REF in large memory model.
17796 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17798         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
17799         and crypto support.
17800         (cortex-a57): Likewise.
17801         (cortex-a57.cortex-a53): Likewise.
17803 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
17804             Kugan Vivekanandarajah  <kuganv@linaro.org>
17806         * config/arm/arm.c (arm_vector_alignment_reachable): Check
17807         unaligned_access.
17808         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
17810 2014-02-06  Richard Biener  <rguenther@suse.de>
17812         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
17813         set_loop_copy and initialize_original_copy_tables.
17815 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
17817         * config/aarch64/aarch64-simd.md
17818         (aarch64_ashr_simddi): Change QI to SI.
17820 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
17821             Jakub Jelinek  <jakub@redhat.com>
17823         PR middle-end/60013
17824         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
17825         of the dataflow.
17827 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17829         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
17830         CODE_FOR_altivec_vpku[hw]um to
17831         CODE_FOR_altivec_vpku[hw]um_direct.
17832         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
17833         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
17834         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
17835         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
17837 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17839         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
17840         generation for -maltivec=be.
17841         (altivec_vsumsws): Simplify redundant test.
17843 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17845         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
17846         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
17847         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
17848         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
17849         gen_altivec_vpkuwum.
17850         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
17851         BYTES_BIG_ENDIAN.
17852         (altivec_vpks<VI_char>ss): Likewise.
17853         (altivec_vpks<VI_char>us): Likewise.
17854         (altivec_vpku<VI_char>us): Likewise.
17855         (altivec_vpku<VI_char>um): Likewise.
17856         (altivec_vpku<VI_char>um_direct): New (copy of
17857         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
17858         internal use).
17859         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
17860         target is little endian and -maltivec=be is not specified.
17861         (*altivec_vupkhs<VU_char>_direct): New (copy of
17862         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
17863         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
17864         target is little endian and -maltivec=be is not specified.
17865         (*altivec_vupkls<VU_char>_direct): New (copy of
17866         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
17867         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
17868         little endian and -maltivec=be is not specified.
17869         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
17870         little endian and -maltivec=be is not specified.
17872 2014-02-05  Richard Henderson  <rth@redhat.com>
17874         PR debug/52727
17875         * combine-stack-adj.c: Revert r206943.
17876         * sched-int.h (struct deps_desc): Add last_args_size.
17877         * sched-deps.c (init_deps): Initialize it.
17878         (sched_analyze_insn): Add OUTPUT dependencies between insns that
17879         contain REG_ARGS_SIZE notes.
17881 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
17883         * lto-cgraph.c (asm_nodes_output): Make global.
17884         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
17885         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
17886         (driver_handle_option): Handle OPT_fwpa.
17888 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
17890         PR ipa/59947
17891         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
17892         a comment typo and formatting issue.  If odr_hash hasn't been
17893         created, return vNULL and set *completep to false.
17895         PR middle-end/57499
17896         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
17897         bb with no successors.
17899 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
17901         PR target/59718
17902         * doc/invoke.texi (-march): Clarify documentation for ARM.
17903         (-mtune): Likewise.
17904         (-mcpu): Likewise.
17906 2014-02-05  Richard Biener  <rguenther@suse.de>
17908         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
17909         when not vectorizing because of too many alias checks.
17910         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
17911         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
17913 2014-02-05  Nick Clifton  <nickc@redhat.com>
17915         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
17916         accept extended registers in any mode when compiling for the MN10300.
17918 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
17920         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
17921         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
17922         sanitization attributes.
17923         (can_inline_edge_p): Likewise.
17924         (sanitize_attrs_match_for_inline_p): New function.
17926 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
17928         * ipa-prop.c (detect_type_change): Shor circuit testing of
17929         type changes on THIS pointer.
17931 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
17933         PR target/59777
17934         * config/pa/pa.c (legitimize_tls_address): Return original address
17935         if not passed a SYMBOL_REF rtx.
17936         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
17937         addresses.
17938         (pa_emit_move_sequence): Simplify TLS source operands.
17939         (pa_legitimate_constant_p): Reject all TLS constants.
17940         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
17941         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
17943 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
17945         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
17946         groups when we know they are controlled by LTO.
17947         * varasm.c (default_binds_local_p_1): If object is in other partition,
17948         it will be resolved locally.
17950 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17952         * config/host-linux.c (linux_gt_pch_use_address): Don't
17953         use SSIZE_MAX because it is not always defined.
17955 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
17957         PR bootstrap/59913
17958         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
17959         threshold for pseudo splitting.
17960         (update_ebb_live_info): Process call argument hard registers and
17961         hard registers from insn definition too.
17962         (max_small_class_regs_num): New constant.
17963         (inherit_in_ebb): Update live hard regs through EBBs.  Update
17964         reloads_num only for small register classes.  Don't split for
17965         outputs of jumps.
17967 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
17969         PR ipa/60058
17970         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
17971         is non-null.
17973 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
17975         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
17976         visibility is safe.
17978 2014-02-04  Marek Polacek  <polacek@redhat.com>
17980         * gdbinit.in (pel): Define.
17982 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17984         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
17985         behavior.
17987 2014-02-04  Richard Biener  <rguenther@suse.de>
17989         PR lto/59723
17990         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
17991         in function context local.
17992         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
17993         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
17994         similar to LTO_imported_decl_ref.
17996 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
17998         PR tree-optimization/60002
17999         * cgraphclones.c (build_function_decl_skip_args): Clear
18000         DECL_LANG_SPECIFIC.
18002         PR tree-optimization/60023
18003         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
18004         false to gsi_replace.
18005         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
18006         has been in some EH region and vec_stmt could throw, add
18007         vec_stmt into the same EH region.
18008         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
18009         has no lhs, ignore it.
18010         * internal-fn.c (expand_MASK_LOAD): Likewise.
18012         PR ipa/60026
18013         * tree-inline.c (copy_forbidden): Fail for
18014         __attribute__((optimize (0))) functions.
18016         PR other/58712
18017         * omp-low.c (simd_clone_struct_copy): If from->inbranch
18018         is set, copy one less argument.
18019         (expand_simd_clones): Don't subtract clone_info->inbranch
18020         from simd_clone_struct_alloc argument.
18022         PR rtl-optimization/57915
18023         * recog.c (simplify_while_replacing): If all unary/binary/relational
18024         operation arguments are constant, attempt to simplify those.
18026         PR middle-end/59261
18027         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
18028         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
18030 2014-02-04  Richard Biener  <rguenther@suse.de>
18032         PR tree-optimization/60012
18033         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
18034         TBAA disambiguation to all DDRs.
18036 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18038         PR target/59788
18039         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
18040         (LINK_SPEC): Use it for -shared, -shared-libgcc.
18042 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
18044         PR ipa/59882
18045         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
18047 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
18049         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
18050         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
18052 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
18054         PR ipa/59831
18055         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
18056         to figure out targets of polymorphic calls with known decl.
18057         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
18058         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
18059         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
18060         (get_polymorphic_call_info): ... here.
18061         (get_polymorphic_call_info_from_invariant): New function.
18063 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
18065         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
18066         lookup via vtable pointer; check for type consistency
18067         and turn inconsitent facts into UNREACHABLE.
18068         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
18069         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
18070         type inconsistent querries; return UNREACHABLE instead.
18072 2014-02-03  Richard Henderson  <rth@twiddle.net>
18074         PR tree-opt/59924
18075         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
18076         already processed this node.
18077         (normalize_one_pred_1): Pass along mark_set.
18078         (normalize_one_pred): Create and destroy a pointer_set_t.
18079         (normalize_one_pred_chain): Likewise.
18081 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
18083         PR gcov-profile/58602
18084         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
18086 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
18088         PR ipa/59831
18089         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
18090         -fno-devirtualize; try to devirtualize by the knowledge of
18091         virtual table pointer given by aggregate propagation.
18092         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
18093         (ipa_print_node_jump_functions): Dump also offset that
18094         is relevant for polymorphic calls.
18095         (determine_known_aggregate_parts): Add arg_type parameter; use it
18096         instead of determining the type from pointer type.
18097         (ipa_compute_jump_functions_for_edge): Update call of
18098         determine_known_aggregate_parts.
18099         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
18100         (gimple_get_virt_method_for_binfo): ... here; simplify using
18101         vtable_pointer_value_to_vtable.
18102         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
18103         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
18104         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
18105         (vtable_pointer_value_to_vtable): Break out from ...; handle also
18106         POINTER_PLUS_EXPR.
18107         (vtable_pointer_value_to_binfo): ... here.
18108         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
18110 2014-02-03  Teresa Johnson  <tejohnson@google.com>
18112         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
18113         redef of outer loop index variable.
18115 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
18117         PR c++/53017
18118         PR c++/59211
18119         * doc/extend.texi (Function Attributes): Typo.
18121 2014-02-03  Cong Hou  <congh@google.com>
18123         PR tree-optimization/60000
18124         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
18125         if the vectorized statement is a store.  A store statement can only
18126         appear at the end of pattern statements.
18128 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
18130         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
18131         (ix86_option_override_internal): Default long double to 64-bit for
18132         32-bit Bionic and to 128-bit for 64-bit Bionic.
18134         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
18135         TARGET_LONG_DOUBLE_128 is true.
18136         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
18138         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
18139         (mlong-double-64): Negate -mlong-double-128.
18140         (mlong-double-128): New option.
18142         * config/i386/i386-c.c (ix86_target_macros): Define
18143         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
18145         * doc/invoke.texi: Document -mlong-double-128.
18147 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
18149         PR rtl-optimization/60024
18150         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
18152 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
18154         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
18156 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
18158         PR rtl-optimization/57662
18159         * sel-sched.c (code_motion_path_driver): Do not mark already not
18160         existing blocks in the visiting bitmap.
18162 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
18164         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
18165         on the insn being emitted.
18167 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
18168             Will Deacon  <will.deacon@arm.com>
18170         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
18172 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18174         * config/arm/arm-tables.opt: Regenerate.
18176 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18178         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
18179         for vector types other than V16QImode.
18180         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
18181         define_expand, and call altivec_expand_vec_perm_le when producing
18182         code with little endian element order.
18183         (*altivec_vperm_<mode>_internal): New insn having previous
18184         behavior of altivec_vperm_<mode>.
18185         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
18186         altivec_expand_vec_perm_le when producing code with little endian
18187         element order.
18188         (*altivec_vperm_<mode>_uns_internal): New insn having previous
18189         behavior of altivec_vperm_<mode>_uns.
18191 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18193         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
18194         (altivec_vsumsws): Add handling for -maltivec=be with a little
18195         endian target.
18196         (altivec_vsumsws_direct): New.
18197         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
18198         gen_altivec_vsumsws.
18200 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
18202         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
18203         vtable_pointer_value_to_binfo): New functions.
18204         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
18205         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
18207 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
18209         * config/nios2/nios2.md (load_got_register): Initialize GOT
18210         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
18211         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
18213 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
18215         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
18216         preserverd by passthrough, do not propagate the type.
18218 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
18220         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
18221         (mips_atomic_assign_expand_fenv): New function.
18222         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
18224 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
18226         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
18227         (__builtin_mips_set_fcsr): Likewise.
18228         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
18229         MIPS_USI_FTYPE_VOID.
18230         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
18231         (mips16_expand_set_fcsr): Likewise.
18232         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
18233         (mips16_set_fcsr_stub): Likewise.
18234         (mips16_get_fcsr_one_only_stub): New class.
18235         (mips16_set_fcsr_one_only_stub): Likewise.
18236         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
18237         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
18238         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
18239         (hard_float): New availability predicate.
18240         (mips_builtins): Add get_fcsr and set_fcsr.
18241         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
18242         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
18243         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
18244         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
18245         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
18246         patterns.
18248 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
18250         * config/mips/mips.c (mips_one_only_stub): New class.
18251         (mips_need_mips16_rdhwr_p): Replace with...
18252         (mips16_rdhwr_stub): ...this new variable.
18253         (mips16_stub_call_address): New function.
18254         (mips16_rdhwr_one_only_stub): New class.
18255         (mips_expand_thread_pointer): Use mips16_stub_call_address.
18256         (mips_output_mips16_rdhwr): Delete.
18257         (mips_finish_stub): New function.
18258         (mips_code_end): Use it to handle rdhwr stubs.
18260 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
18262         PR target/60017
18263         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
18264         when calculating size of integer atomic types.
18266 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
18268         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
18270 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
18272         PR tree-optimization/60003
18273         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
18274         * profile.c (branch_prob): Use gimple_call_builtin_p
18275         to check for BUILT_IN_SETJMP_RECEIVER.
18276         * tree-inline.c (copy_bb): Call notice_special_calls.
18278 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
18280         PR bootstrap/59985
18281         * lra-constraints.c (process_alt_operands): Update reload_sum only
18282         on the first pass.
18284 2014-01-31  Richard Henderson  <rth@redhat.com>
18286         PR middle-end/60004
18287         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
18288         until after else_eh is processed.
18290 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
18292         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
18293         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
18294         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
18295         in smmintrin.h, remove them.
18296         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
18297         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
18298         * config/i386/i386.md (ROUND_SAE): Fix value.
18299         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
18300         (const48_operand): New.
18301         * config/i386/subst.md (round), (round_expand): Use
18302         const_4_or_8_to_11_operand.
18303         (round_saeonly), (round_saeonly_expand): Use const48_operand.
18305 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
18307         * config/i386/constraints.md (Yk): Swap meaning with k.
18308         * config/i386/i386.md (movhi_internal): Change Yk to k.
18309         (movqi_internal): Ditto.
18310         (*k<logic><mode>): Ditto.
18311         (*andhi_1): Ditto.
18312         (*andqi_1): Ditto.
18313         (kandn<mode>): Ditto.
18314         (*<code>hi_1): Ditto.
18315         (*<code>qi_1): Ditto.
18316         (kxnor<mode>): Ditto.
18317         (kortestzhi): Ditto.
18318         (kortestchi): Ditto.
18319         (kunpckhi): Ditto.
18320         (*one_cmplhi2_1): Ditto.
18321         (*one_cmplqi2_1): Ditto.
18322         * config/i386/sse.md (): Change k to Yk.
18323         (avx512f_load<mode>_mask): Ditto.
18324         (avx512f_blendm<mode>): Ditto.
18325         (avx512f_store<mode>_mask): Ditto.
18326         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
18327         (avx512f_storedqu<mode>_mask): Ditto.
18328         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
18329         Ditto.
18330         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
18331         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
18332         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
18333         (avx512f_maskcmp<mode>3): Ditto.
18334         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
18335         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
18336         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
18337         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
18338         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
18339         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
18340         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
18341         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
18342         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
18343         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
18344         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
18345         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
18346         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
18347         (vec_extract_lo_<mode>_maskm): Ditto.
18348         (vec_extract_hi_<mode>_maskm): Ditto.
18349         (avx512f_vternlog<mode>_mask): Ditto.
18350         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
18351         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
18352         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
18353         (avx512f_<code>v8div16qi2_mask): Ditto.
18354         (avx512f_<code>v8div16qi2_mask_store): Ditto.
18355         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
18356         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
18357         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
18358         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
18359         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
18360         (*avx512pf_gatherpf<mode>df_mask): Ditto.
18361         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
18362         (*avx512pf_scatterpf<mode>df_mask): Ditto.
18363         (avx512cd_maskb_vec_dupv8di): Ditto.
18364         (avx512cd_maskw_vec_dupv16si): Ditto.
18365         (avx512f_vpermi2var<mode>3_maskz): Ditto.
18366         (avx512f_vpermi2var<mode>3_mask): Ditto.
18367         (avx512f_vpermi2var<mode>3_mask): Ditto.
18368         (avx512f_vpermt2var<mode>3_maskz): Ditto.
18369         (*avx512f_gathersi<mode>): Ditto.
18370         (*avx512f_gathersi<mode>_2): Ditto.
18371         (*avx512f_gatherdi<mode>): Ditto.
18372         (*avx512f_gatherdi<mode>_2): Ditto.
18373         (*avx512f_scattersi<mode>): Ditto.
18374         (*avx512f_scatterdi<mode>): Ditto.
18375         (avx512f_compress<mode>_mask): Ditto.
18376         (avx512f_compressstore<mode>_mask): Ditto.
18377         (avx512f_expand<mode>_mask): Ditto.
18378         * config/i386/subst.md (mask): Change k to Yk.
18379         (mask_scalar_merge): Ditto.
18380         (sd): Ditto.
18382 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
18384         * doc/extend.texi (Vector Extensions): Document ?: in C++.
18386 2014-01-31  Richard Biener  <rguenther@suse.de>
18388         PR middle-end/59990
18389         * builtins.c (fold_builtin_memory_op): Make sure to not
18390         use a floating-point mode or a boolean or enumeral type for
18391         the copy operation.
18393 2014-01-30  DJ Delorie  <dj@redhat.com>
18395         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
18396         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
18397         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
18398         whenever main() has an epilogue.
18400 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18402         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
18403         unused variable "field".
18404         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
18405         (vsx_mergeh_<mode>): Likewise.
18406         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
18407         (altivec_vmrghh): Likewise.
18408         (altivec_vmrghw): Likewise.
18409         (altivec_vmrglb): Likewise.
18410         (altivec_vmrglh): Likewise.
18411         (altivec_vmrglw): Likewise.
18412         (altivec_vspltb): Add missing uses.
18413         (altivec_vsplth): Likewise.
18414         (altivec_vspltw): Likewise.
18415         (altivec_vspltsf): Likewise.
18417 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
18419         PR target/59923
18420         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
18421         frame related instructions.
18423 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
18425         PR rtl-optimization/59959
18426         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
18427         any reload of register whose subreg is invalid.
18429 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
18431         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
18432         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
18433         Add missing return type - void.
18435 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18437         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
18438         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
18439         remove element index adjustment for endian (now handled in vsx.md
18440         and altivec.md).
18441         (altivec_expand_vec_perm_const): Use
18442         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
18443         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
18444         (vsx_xxspltw_<mode>): Adjust element index for little endian.
18445         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
18446         define_expand and a new define_insn *altivec_vspltb_internal;
18447         adjust for -maltivec=be on a little endian target.
18448         (altivec_vspltb_direct): New.
18449         (altivec_vsplth): Divide into a define_expand and a new
18450         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
18451         little endian target.
18452         (altivec_vsplth_direct): New.
18453         (altivec_vspltw): Divide into a define_expand and a new
18454         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
18455         little endian target.
18456         (altivec_vspltw_direct): New.
18457         (altivec_vspltsf): Divide into a define_expand and a new
18458         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
18459         a little endian target.
18461 2014-01-30  Richard Biener  <rguenther@suse.de>
18463         PR tree-optimization/59993
18464         * tree-ssa-forwprop.c (associate_pointerplus): Check we
18465         can propagate form the earlier stmt and avoid the transform
18466         when the intermediate result is needed.
18468 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
18470         * README.Portability: Fix typo.
18472 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
18474         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
18475         comparison_operator with ordered_comparison_operator.
18477 2014-01-30  Nick Clifton  <nickc@redhat.com>
18479         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
18480         Rename to mn10300_store_multiple_regs.
18481         * config/mn10300/mn10300.c: Likewise.
18482         * config/mn10300/mn10300.md (store_movm): Fix typo: call
18483         store_multiple_regs.
18484         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
18485         Call mn10300_store_multiple_regs.
18487 2014-01-30  Nick Clifton  <nickc@redhat.com>
18488             DJ Delorie  <dj@redhat.com>
18490         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
18491         %fp 2 to keep registers after it properly word-aligned.
18492         (rl78_alloc_physical_registers_umul): Handle the case where both
18493         input operands are the same.
18495 2014-01-30  Richard Biener  <rguenther@suse.de>
18497         PR tree-optimization/59903
18498         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
18499         check properly.
18501 2014-01-30  Jason Merrill  <jason@redhat.com>
18503         PR c++/59633
18504         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
18506         PR c++/59645
18507         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
18509 2014-01-30  Richard Biener  <rguenther@suse.de>
18511         PR tree-optimization/59951
18512         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
18514 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
18516         PR target/59784
18517         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
18518         SFmode to DFmode case.
18520 2014-01-29  DJ Delorie  <dj@redhat.com>
18522         * config/msp430/msp430.opt (-minrt): New.
18523         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
18524         if -minrt given.
18525         (ENDFILE_SPEC): Likewise.
18527 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
18529         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
18530         (estimate_function_body_sizes): Use it.
18532 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
18534         PR c++/58561
18535         * dwarf2out.c (is_cxx_auto): New.
18536         (is_base_type): Use it.
18537         (gen_type_die_with_usage): Likewise.
18539 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18541         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
18542         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
18543         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
18544         -maltivec=be with LE targets.
18545         (vsx_mergeh_<mode>): Likewise.
18546         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
18547         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
18548         (altivec_vmrghb): Replace with define_expand and new
18549         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
18550         (altivec_vmrghb_direct): New define_insn.
18551         (altivec_vmrghh): Replace with define_expand and new
18552         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
18553         (altivec_vmrghh_direct): New define_insn.
18554         (altivec_vmrghw): Replace with define_expand and new
18555         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
18556         (altivec_vmrghw_direct): New define_insn.
18557         (*altivec_vmrghsf): Adjust for endianness.
18558         (altivec_vmrglb): Replace with define_expand and new
18559         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
18560         (altivec_vmrglb_direct): New define_insn.
18561         (altivec_vmrglh): Replace with define_expand and new
18562         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
18563         (altivec_vmrglh_direct): New define_insn.
18564         (altivec_vmrglw): Replace with define_expand and new
18565         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
18566         (altivec_vmrglw_direct): New define_insn.
18567         (*altivec_vmrglsf): Adjust for endianness.
18568         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
18569         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
18570         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
18571         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
18572         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
18573         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
18574         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
18575         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
18577 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18579         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
18580         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
18581         whitespace.
18583 2014-01-29  Richard Biener  <rguenther@suse.de>
18585         PR tree-optimization/58742
18586         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
18587         associate_pointerplus_align.
18588         (associate_pointerplus_diff): New function.
18589         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
18590         and associate_pointerplus_diff.
18592 2014-01-29  Richard Biener  <rguenther@suse.de>
18594         * lto-streamer.h (LTO_major_version): Bump to 3.
18595         (LTO_minor_version): Reset to 0.
18597 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
18599         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
18600         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
18601         (arm_file_start): Generate correct asm header for armv7ve.
18602         * config/arm/bpabi.h: Add multilib support for armv7ve.
18603         * config/arm/driver-arm.c: Change the architectures of cortex-a7
18604         and cortex-a15 to armv7ve.
18605         * config/arm/t-aprofile: Add multilib support for armv7ve.
18606         * doc/invoke.texi: Document -march=armv7ve.
18608 2014-01-29  Richard Biener  <rguenther@suse.de>
18610         PR tree-optimization/58742
18611         * tree-ssa-forwprop.c (associate_plusminus): Return true
18612         if we changed sth, defer EH cleanup to ...
18613         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
18614         (simplify_mult): New function.
18616 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
18618         PR middle-end/59917
18619         PR tree-optimization/59920
18620         * tree.c (build_common_builtin_nodes): Remove
18621         __builtin_setjmp_dispatcher initialization.
18622         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
18623         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
18624         instead of gsi_after_labels + manually skipping debug stmts.
18625         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
18626         ignore bbs with IFN_ABNORMAL_DISPATCHER.
18627         * tree-inline.c (copy_edges_for_bb): Remove
18628         can_make_abnormal_goto argument, instead add abnormal_goto_dest
18629         argument.  Ignore computed_goto_p stmts.  Don't call
18630         make_abnormal_goto_edges.  If a call might need abnormal edges
18631         for non-local gotos, see if it already has an edge to
18632         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
18633         with true argument, don't do anything then, otherwise add
18634         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
18635         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
18636         caller.
18637         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
18638         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
18639         (lower_stmt): Don't set data->calls_builtin_setjmp.
18640         (lower_builtin_setjmp): Adjust comment.
18641         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
18642         * tree-cfg.c (found_computed_goto): Remove.
18643         (factor_computed_gotos): Remove.
18644         (make_goto_expr_edges): Return bool, true for computed gotos.
18645         Don't call make_abnormal_goto_edges.
18646         (build_gimple_cfg): Don't set found_computed_goto, don't call
18647         factor_computed_gotos.
18648         (computed_goto_p): No longer static.
18649         (make_blocks): Don't set found_computed_goto.
18650         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
18651         (make_edges): If make_goto_expr_edges returns true, push bb
18652         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
18653         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
18654         vector.  Record mapping between bbs and OpenMP regions if there
18655         are any, adjust make_gimple_omp_edges caller.  Call
18656         handle_abnormal_edges.
18657         (make_abnormal_goto_edges): Remove.
18658         * tree-cfg.h (make_abnormal_goto_edges): Remove.
18659         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
18660         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
18661         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
18662         * internal-fn.def (ABNORMAL_DISPATCHER): New.
18663         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
18664         filling *region also set *region_idx to (*region)->entry->index.
18666         PR other/58712
18667         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
18668         For REGs set ORIGINAL_REGNO.
18670 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
18672         * doc/md.texi: Mention that a target shouldn't implement
18673         vec_widen_(s|u)mul_even/odd pair if it is less efficient
18674         than hi/lo pair.
18676 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
18678         PR tree-optimization/59594
18679         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
18680         a copy of the datarefs vector rather than the vector itself.
18682 2014-01-28  Jason Merrill  <jason@redhat.com>
18684         PR c++/53756
18685         * dwarf2out.c (auto_die): New static.
18686         (gen_type_die_with_usage): Handle C++1y 'auto'.
18687         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
18688         on definition.
18690 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
18692         PR target/59672
18693         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
18694         (SPEC_X32): Likewise.
18695         (SPEC_64): Likewise.
18696         * config/i386/i386.c (ix86_option_override_internal): Turn off
18697         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
18698         for TARGET_16BIT.
18699         (x86_file_start): Output .code16gcc for TARGET_16BIT.
18700         * config/i386/i386.h (TARGET_16BIT): New macro.
18701         (TARGET_16BIT_P): Likewise.
18702         * config/i386/i386.opt: Add m16.
18703         * doc/invoke.texi: Document -m16.
18705 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
18707         PR preprocessor/59935
18708         * input.c (location_get_source_line): Bail out on when line number
18709         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
18711 2014-01-28  Richard Biener  <rguenther@suse.de>
18713         PR tree-optimization/58742
18714         * tree-ssa-forwprop.c (associate_plusminus): Handle
18715         pointer subtraction of the form (T)(P + A) - (T)P.
18717 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18719         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
18720         at const_int_cost.
18722 2014-01-28  Richard Biener  <rguenther@suse.de>
18724         Revert
18725         2014-01-28  Richard Biener  <rguenther@suse.de>
18727         PR rtl-optimization/45364
18728         PR rtl-optimization/59890
18729         * var-tracking.c (local_get_addr_clear_given_value): Handle
18730         already cleared slot.
18731         (val_reset): Handle not allocated local_get_addr_cache.
18732         (vt_find_locations): Use post-order on the inverted CFG.
18734 2014-01-28  Richard Biener  <rguenther@suse.de>
18736         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
18738 2014-01-28  Richard Biener  <rguenther@suse.de>
18740         PR rtl-optimization/45364
18741         PR rtl-optimization/59890
18742         * var-tracking.c (local_get_addr_clear_given_value): Handle
18743         already cleared slot.
18744         (val_reset): Handle not allocated local_get_addr_cache.
18745         (vt_find_locations): Use post-order on the inverted CFG.
18747 2014-01-28  Alan Modra  <amodra@gmail.com>
18749         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
18750         * configure.ac <recursive call for build != host>: Define
18751         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
18752         and LD_FOR_BUILD too.
18753         * configure: Regenerate.
18755 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
18757         * config/i386/i386.c (get_builtin_code_for_version): Separate
18758         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
18759         Broadwell from Haswell.
18761 2014-01-27  Steve Ellcey  <sellcey@mips.com>
18763         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
18764         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
18765         * config/mips/mips.c (mips_option_override): Change setting
18766         of TARGET_DSP.
18767         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
18768         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
18769         Change from Mask to Var.
18771 2014-01-27  Jeff Law  <law@redhat.com>
18773         * ipa-inline.c (inline_small_functions): Fix typo.
18775 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
18777         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
18778         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
18779         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
18780         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
18781         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
18782         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
18783         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
18784         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
18785         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
18786         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
18787         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
18788         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
18789         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
18790         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
18791         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
18792         (_mm512_storeu_epi64): Ditto.
18793         (_mm512_cmpge_epi32_mask): Ditto.
18794         (_mm512_cmpge_epu32_mask): Ditto.
18795         (_mm512_cmpge_epi64_mask): Ditto.
18796         (_mm512_cmpge_epu64_mask): Ditto.
18797         (_mm512_cmple_epi32_mask): Ditto.
18798         (_mm512_cmple_epu32_mask): Ditto.
18799         (_mm512_cmple_epi64_mask): Ditto.
18800         (_mm512_cmple_epu64_mask): Ditto.
18801         (_mm512_cmplt_epi32_mask): Ditto.
18802         (_mm512_cmplt_epu32_mask): Ditto.
18803         (_mm512_cmplt_epi64_mask): Ditto.
18804         (_mm512_cmplt_epu64_mask): Ditto.
18805         (_mm512_cmpneq_epi32_mask): Ditto.
18806         (_mm512_cmpneq_epu32_mask): Ditto.
18807         (_mm512_cmpneq_epi64_mask): Ditto.
18808         (_mm512_cmpneq_epu64_mask): Ditto.
18809         (_mm512_expand_pd): Ditto.
18810         (_mm512_expand_ps): Ditto.
18811         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
18812         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
18813         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
18814         * config/i386/i386.c (ix86_builtins): Add
18815         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
18816         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
18817         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
18818         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
18819         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
18820         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
18821         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
18822         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
18823         IX86_BUILTIN_PMOVUSQW512_MEM.
18824         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
18825         __builtin_ia32_pmovsqd512mem_mask,
18826         __builtin_ia32_pmovqd512mem_mask,
18827         __builtin_ia32_pmovusqw512mem_mask,
18828         __builtin_ia32_pmovsqw512mem_mask,
18829         __builtin_ia32_pmovqw512mem_mask,
18830         __builtin_ia32_pmovusdw512mem_mask,
18831         __builtin_ia32_pmovsdw512mem_mask,
18832         __builtin_ia32_pmovdw512mem_mask,
18833         __builtin_ia32_pmovqb512mem_mask,
18834         __builtin_ia32_pmovusqb512mem_mask,
18835         __builtin_ia32_pmovsqb512mem_mask,
18836         __builtin_ia32_pmovusdb512mem_mask,
18837         __builtin_ia32_pmovsdb512mem_mask,
18838         __builtin_ia32_pmovdb512mem_mask.
18839         (bdesc_args): Add __builtin_ia32_expanddf512,
18840         __builtin_ia32_expandsf512.
18841         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
18842         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
18843         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
18844         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
18845         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
18846         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
18847         (avx512f_<code>v8div16qi2_mask_store): This.
18848         (avx512f_expand<mode>): New.
18850 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
18852         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
18853         New.
18854         (_mm512_mask_prefetch_i64gather_pd): Ditto.
18855         (_mm512_prefetch_i32scatter_pd): Ditto.
18856         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
18857         (_mm512_prefetch_i64scatter_pd): Ditto.
18858         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
18859         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
18860         (_mm512_mask_prefetch_i64gather_ps): Ditto.
18861         (_mm512_prefetch_i32scatter_ps): Ditto.
18862         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
18863         (_mm512_prefetch_i64scatter_ps): Ditto.
18864         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
18865         * config/i386/i386-builtin-types.def: Define
18866         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
18867         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
18868         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
18869         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
18870         IX86_BUILTIN_SCATTERPFQPD.
18871         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
18872         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
18873         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
18874         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
18875         __builtin_ia32_scatterpfqps.
18876         (ix86_expand_builtin): Expand new built-ins.
18877         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
18878         fix memory access data type.
18879         (*avx512pf_gatherpf<mode>_mask): Ditto.
18880         (*avx512pf_gatherpf<mode>): Ditto.
18881         (avx512pf_scatterpf<mode>): Ditto.
18882         (*avx512pf_scatterpf<mode>_mask): Ditto.
18883         (*avx512pf_scatterpf<mode>): Ditto.
18884         (GATHER_SCATTER_SF_MEM_MODE): New.
18885         (avx512pf_gatherpf<mode>df): Ditto.
18886         (*avx512pf_gatherpf<mode>df_mask): Ditto.
18887         (*avx512pf_scatterpf<mode>df): Ditto.
18889 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
18891         PR bootstrap/59934
18892         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
18893         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
18894         reached.
18896 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
18898         * common/config/arm/arm-common.c
18899         (arm_rewrite_mcpu): Handle multiple names.
18900         * config/arm/arm.h
18901         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
18903 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
18905         * gimple-builder.h (create_gimple_tmp): Delete.
18907 2014-01-27  Christian Bruel  <christian.bruel@st.com>
18909         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
18910         words comparisons.
18912 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
18914         * config/pa/pa.md (call): Generate indirect long calls to non-local
18915         functions when outputing 32-bit code.
18916         (call_value): Likewise except for special call to buggy powf function.
18918         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
18919         portable runtime and PIC indirect calls.
18920         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
18921         and PIC call sequences.  Use ldo instead of blr to set return register
18922         in PIC call sequence.
18924 2014-01-25  Walter Lee  <walt@tilera.com>
18926         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
18927         avoid clobbering a live register.
18929 2014-01-25  Walter Lee  <walt@tilera.com>
18931         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
18932         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
18933         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
18934         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
18936 2014-01-25  Walter Lee  <walt@tilera.com>
18938         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
18939         arguments on even registers.
18940         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
18941         STACK_BOUNDARY.
18942         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
18943         (BIGGEST_ALIGNMENT): Ditto.
18944         (BIGGEST_FIELD_ALIGNMENT): Ditto.
18946 2014-01-25  Walter Lee  <walt@tilera.com>
18948         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
18949         insns before bundling.
18950         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
18952 2014-01-25  Walter Lee  <walt@tilera.com>
18954         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
18955         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
18956         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
18958 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
18960         * config/mips/constraints.md (kl): Delete.
18961         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
18962         define expands, using...
18963         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
18964         instructions for MIPS16.
18965         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
18966         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
18968 2014-01-25  Walter Lee  <walt@tilera.com>
18970         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
18971         (clzdi2): Ditto.
18972         (ffsdi2): Ditto.
18974 2014-01-25  Walter Lee  <walt@tilera.com>
18976         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
18977         (TARGET_EXPAND_TO_RTL_HOOK): Define.
18979 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
18981         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
18982         Handle XOR.
18984 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
18986         * print-rtl.c (in_call_function_usage): New var.
18987         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
18988         EXPR_LIST mode as mode and not as reg note name.
18990         PR middle-end/59561
18991         * cfgloopmanip.c (copy_loop_info): If
18992         loop->warned_aggressive_loop_optimizations, make sure
18993         the flag is set in target loop too.
18995 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
18997         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
18998         flag_cilkplus.
18999         * builtins.def: Likewise.
19000         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
19001         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
19002         * ira.c (ira_setup_eliminable_regset): Likewise.
19003         * omp-low.c (gate_expand_omp): Likewise.
19004         (execute_lower_omp): Likewise.
19005         (diagnose_sb_0): Likewise.
19006         (gate_diagnose_omp_blocks): Likewise.
19007         (simd_clone_clauses_extract): Likewise.
19008         (gate): Likewise.
19010 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19012         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
19013         correction for little endian...
19014         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
19015         here.
19017 2014-01-24  Jeff Law  <law@redhat.com>
19019         PR tree-optimization/59919
19020         * tree-vrp.c (find_assert_locations_1): Do not register asserts
19021         for non-returning calls.
19023 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
19025         * common/config/aarch64/aarch64-common.c
19026         (aarch64_rewrite_mcpu): Handle multiple names.
19027         * config/aarch64/aarch64.h
19028         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
19030 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
19032         * input.c (add_file_to_cache_tab): Handle the case where fopen
19033         returns NULL.
19035 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
19037         PR target/59929
19038         * config/i386/i386.md (pushsf splitter): Get stack adjustment
19039         from push operand if code of push isn't PRE_DEC.
19041 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
19043         PR target/59909
19044         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
19045         -mquad-memory-atomic.  Update -mquad-memory documentation to say
19046         it is only used for non-atomic loads/stores.
19048         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
19049         -mquad-memory or -mquad-memory-atomic switches.
19051         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
19052         -mquad-memory-atomic to ISA 2.07 support.
19054         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
19055         to separate support of normal quad word memory operations (ldq, stq)
19056         from the atomic quad word memory operations.
19058         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
19059         support to separate non-atomic quad word operations from atomic
19060         quad word operations.  Disable non-atomic quad word operations in
19061         little endian mode so that we don't have to swap words after the
19062         load and before the store.
19063         (quad_load_store_p): Add comment about atomic quad word support.
19064         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
19065         options printed with -mdebug=reg.
19067         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
19068         -mquad-memory-atomic as the test for whether we have quad word
19069         atomic instructions.
19070         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
19071         or -mp8-vector are used, allow byte/half-word atomic operations.
19073         * config/rs6000/sync.md (load_lockedti): Insure that the address
19074         is a proper indexed or indirect address for the lqarx instruction.
19075         On little endian systems, swap the hi/lo registers after the lqarx
19076         instruction.
19077         (load_lockedpti): Use indexed_or_indirect_operand predicate to
19078         insure the address is valid for the lqarx instruction.
19079         (store_conditionalti): Insure that the address is a proper indexed
19080         or indirect address for the stqcrx. instruction.  On little endian
19081         systems, swap the hi/lo registers before doing the stqcrx.
19082         instruction.
19083         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
19084         insure the address is valid for the stqcrx. instruction.
19086         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
19087         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
19088         type of quad memory support is available.
19090 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
19092         PR regression/59915
19093         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
19094         there is a danger of looping.
19096 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
19098         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
19099         force flag_ira_loop_pressure if set via command line.
19101 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
19103         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
19104         (ashr_simd): New builtin handling DI mode.
19105         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
19106         (aarch64_sshr_simddi): New match pattern.
19107         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
19108         (vshrd_n_s64): Likewise.
19109         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
19111 2014-01-23  Nick Clifton  <nickc@redhat.com>
19113         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
19114         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
19115         favour of mcu specific scripts.
19116         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
19117         430x multilibs.
19119 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
19120             Alex Velenko  <Alex.Velenko@arm.com>
19122         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
19123         (vaddv_s16): Likewise.
19124         (vaddv_s32): Likewise.
19125         (vaddv_u8): Likewise.
19126         (vaddv_u16): Likewise.
19127         (vaddv_u32): Likewise.
19128         (vaddvq_s8): Likewise.
19129         (vaddvq_s16): Likewise.
19130         (vaddvq_s32): Likewise.
19131         (vaddvq_s64): Likewise.
19132         (vaddvq_u8): Likewise.
19133         (vaddvq_u16): Likewise.
19134         (vaddvq_u32): Likewise.
19135         (vaddvq_u64): Likewise.
19136         (vaddv_f32): Likewise.
19137         (vaddvq_f32): Likewise.
19138         (vaddvq_f64): Likewise.
19139         (vmaxv_f32): Likewise.
19140         (vmaxv_s8): Likewise.
19141         (vmaxv_s16): Likewise.
19142         (vmaxv_s32): Likewise.
19143         (vmaxv_u8): Likewise.
19144         (vmaxv_u16): Likewise.
19145         (vmaxv_u32): Likewise.
19146         (vmaxvq_f32): Likewise.
19147         (vmaxvq_f64): Likewise.
19148         (vmaxvq_s8): Likewise.
19149         (vmaxvq_s16): Likewise.
19150         (vmaxvq_s32): Likewise.
19151         (vmaxvq_u8): Likewise.
19152         (vmaxvq_u16): Likewise.
19153         (vmaxvq_u32): Likewise.
19154         (vmaxnmv_f32): Likewise.
19155         (vmaxnmvq_f32): Likewise.
19156         (vmaxnmvq_f64): Likewise.
19157         (vminv_f32): Likewise.
19158         (vminv_s8): Likewise.
19159         (vminv_s16): Likewise.
19160         (vminv_s32): Likewise.
19161         (vminv_u8): Likewise.
19162         (vminv_u16): Likewise.
19163         (vminv_u32): Likewise.
19164         (vminvq_f32): Likewise.
19165         (vminvq_f64): Likewise.
19166         (vminvq_s8): Likewise.
19167         (vminvq_s16): Likewise.
19168         (vminvq_s32): Likewise.
19169         (vminvq_u8): Likewise.
19170         (vminvq_u16): Likewise.
19171         (vminvq_u32): Likewise.
19172         (vminnmv_f32): Likewise.
19173         (vminnmvq_f32): Likewise.
19174         (vminnmvq_f64): Likewise.
19176 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
19178         * config/aarch64/aarch64-simd.md
19179         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
19180         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
19181         (*aarch64_mul3_elt<mode>): Likewise.
19182         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
19183         (*aarch64_mul3_elt_to_64v2df): Likewise.
19184         (*aarch64_mla_elt<mode>): Likewise.
19185         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
19186         (*aarch64_mls_elt<mode>): Likewise.
19187         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
19188         (*aarch64_fma4_elt<mode>): Likewise.
19189         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
19190         (*aarch64_fma4_elt_to_64v2df): Likewise.
19191         (*aarch64_fnma4_elt<mode>): Likewise.
19192         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
19193         (*aarch64_fnma4_elt_to_64v2df): Likewise.
19194         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
19195         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
19196         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
19197         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
19198         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
19199         (aarch64_sqdmull_lane<mode>_internal): Likewise.
19200         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
19202 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
19204         * config/aarch64/aarch64-simd.md
19205         (aarch64_be_checked_get_lane<mode>): New define_expand.
19206         * config/aarch64/aarch64-simd-builtins.def
19207         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
19208         New builtin definition.
19209         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
19210         Use new safe be builtin.
19212 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
19214         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
19215         New define_insn.
19216         (aarch64_be_st1<mode>): Likewise.
19217         (aarch_ld1<VALL:mode>): Define_expand modified.
19218         (aarch_st1<VALL:mode>): Likewise.
19219         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
19220         (UNSPEC_ST1): Likewise.
19222 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
19224         * config/microblaze/microblaze.md: Add trap insn and attribute
19226 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
19228         PR preprocessor/58580
19229         * input.h (location_get_source_line): Take an additional line_size
19230         parameter.
19231         (void diagnostics_file_cache_fini): Declare new function.
19232         * input.c (struct fcache): New type.
19233         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
19234         New static constants.
19235         (diagnostic_file_cache_init, total_lines_num)
19236         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
19237         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
19238         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
19239         (get_next_line, read_next_line, goto_next_line, read_line_num):
19240         New static function definitions.
19241         (diagnostic_file_cache_fini): New function.
19242         (location_get_source_line): Take an additional output line_len
19243         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
19244         read_line_num.
19245         * diagnostic.c (diagnostic_finish): Call
19246         diagnostic_file_cache_fini.
19247         (adjust_line): Take an additional input parameter for the length
19248         of the line, rather than calculating it with strlen.
19249         (diagnostic_show_locus): Adjust the use of
19250         location_get_source_line and adjust_line with respect to their new
19251         signature.  While displaying a line now, do not stop at the first
19252         null byte.  Rather, display the zero byte as a space and keep
19253         going until we reach the size of the line.
19254         * Makefile.in: Add vec.o to OBJS-libcommon
19256 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
19257             Ilya Tocar  <ilya.tocar@intel.com>
19259         * config/i386/avx512fintrin.h (_mm512_kmov): New.
19260         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
19261         (__builtin_ia32_kmov16): Ditto.
19262         * config/i386/i386.md (UNSPEC_KMOV): New.
19263         (kmovw): Ditto.
19265 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
19267         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
19268         (_mm512_storeu_si512): Ditto.
19270 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
19272         PR target/52125
19273         * rtl.h (get_referenced_operands): Declare.
19274         * recog.c (get_referenced_operands): New function.
19275         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
19276         operands have been referenced when recording LO_SUM references.
19278 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
19280         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
19282 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
19284         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
19285         Enable for generic and recent AMD targets.
19287 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
19289         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
19290         ARG_SIZE note when adjustment was eliminated.
19292 2014-01-22  Jeff Law  <law@redhat.com>
19294         PR tree-optimization/59597
19295         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
19296         in file.  Accept new argument REGISTERING and use it to modify
19297         dump output appropriately.
19298         (register_jump_thread): Corresponding changes.
19299         (mark_threaded_blocks): Reinstate code to cancel unprofitable
19300         thread paths involving joiner blocks.  Add code to dump cancelled
19301         jump threading paths.
19303 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
19305         PR rtl-optimization/59477
19306         * lra-constraints.c (inherit_in_ebb): Process call for living hard
19307         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
19309 2014-01-22  Tom Tromey  <tromey@redhat.com>
19311         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
19312         PARAMS.
19313         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
19315 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
19317         PR rtl-optimization/59896
19318         * lra-constraints.c (process_alt_operands): Check unused note for
19319         matched operands of insn with no output reloads.
19321 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
19323         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
19324         (mips_move_from_gpr_cost): Likewise.
19326 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
19328         PR rtl-optimization/59858
19329         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
19330         ira_class_hard_regs_num.
19331         (process_alt_operands): Increase reject for dying matched operand.
19333 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
19335         PR target/59003
19336         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
19337         smaller than size, perform several stores or loads and stores
19338         at dst + count - size to store or copy all of size bytes, rather
19339         than just last modesize bytes.
19341 2014-01-20  DJ Delorie  <dj@redhat.com>
19343         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
19344         that CLOBBERs are REGs before propogating their values.
19346 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
19348         PR middle-end/59789
19349         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
19350         (cgraph_inline_failed_type): New function.
19351         * cgraph.h (DEFCIFCODE): Add type.
19352         (cgraph_inline_failed_type_t): New enum.
19353         (cgraph_inline_failed_type): New prototype.
19354         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
19355         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
19356         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
19357         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
19358         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
19359         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
19360         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
19361         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
19362         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
19363         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
19364         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
19365         OPTIMIZATION_MISMATCH.
19366         * tree-inline.c (expand_call_inline): Emit errors during
19367         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
19369 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
19371         PR target/59685
19372         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
19373         mode attribute in insn output.
19375 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
19377         * output.h (output_constant): Delete.
19378         * varasm.c (output_constant): Make private.
19380 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
19382         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
19384 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
19386         PR middle-end/59860
19387         * tree.h (fold_builtin_strcat): New prototype.
19388         * builtins.c (fold_builtin_strcat): No longer static.  Add len
19389         argument, if non-NULL, don't call c_strlen.  Optimize
19390         directly into __builtin_memcpy instead of __builtin_strcpy.
19391         (fold_builtin_2): Adjust fold_builtin_strcat caller.
19392         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
19394 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
19396         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
19397         for SImode_address_operand operands, having only a REG argument.
19399 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19401         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
19402         loader name using mbig-endian.
19403         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
19405 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
19407         * doc/invoke.texi (-march): Clarify documentation for AArch64.
19408         (-mtune): Likewise.
19409         (-mcpu): Likewise.
19411 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
19413         * config/aarch64/aarch64-protos.h
19414         (aarch64_cannot_change_mode_class_ptr): Declare.
19415         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
19416         aarch64_cannot_change_mode_class_ptr): New.
19417         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
19418         backend hook aarch64_cannot_change_mode_class.
19420 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
19422         * common/config/aarch64/aarch64-common.c
19423         (aarch64_handle_option): Don't handle any option order logic here.
19424         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
19425         selected_cpu, warn on architecture version mismatch.
19426         (aarch64_override_options): Fix parsing order for option strings.
19428 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
19429             Iain Sandoe  <iain@codesourcery.com>
19431         PR bootstrap/59496
19432         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
19433         warning.  Amend comment to reflect current functionality.
19435 2014-01-20  Richard Biener  <rguenther@suse.de>
19437         PR middle-end/59860
19438         * builtins.c (fold_builtin_strcat): Remove case better handled
19439         by tree-ssa-strlen.c.
19441 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
19443         * config/aarch64/aarch64.opt
19444         (mcpu, march, mtune): Make case-insensitive.
19446 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
19448         PR target/59880
19449         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
19450         if operands[1] is a REG or ZERO_EXTEND of a REG.
19452 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
19454         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
19456 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
19458         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
19459         long non-pic millicode calls.
19461 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
19463         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
19465 2014-01-19  Kito Cheng  <kito@0xlab.org>
19467         * builtins.c (expand_movstr): Check movstr expand done or fail.
19469 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
19470             H.J. Lu  <hongjiu.lu@intel.com>
19472         PR target/59379
19473         * config/i386/i386.md (*lea<mode>): Zero-extend return register
19474         to DImode for zero-extended addresses.
19476 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
19478         PR rtl-optimization/57763
19479         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
19480         on the new indirect jump_insn and increment LABEL_NUSES (label).
19482 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
19484         PR bootstrap/59580
19485         PR bootstrap/59583
19486         * config.gcc (x86_archs): New variable.
19487         (x86_64_archs): Likewise.
19488         (x86_cpus): Likewise.
19489         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
19490         --with-arch/--with-cpu= options.
19491         Support --with-arch=/--with-cpu={nehalem,westmere,
19492         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
19494 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
19496         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
19497         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
19499 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
19501         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
19503 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
19505         PR target/58944
19506         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
19507         clear cpp_get_options (parse_in)->warn_unused_macros for
19508         ix86_target_macros_internal with cpp_define.
19510 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
19512         * jump.c (delete_related_insns): Keep (use (insn))s.
19513         * reorg.c (redundant_insn): Check for barriers too.
19515 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
19517         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
19519 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
19521         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
19522         call to $$dyncall when TARGET_LONG_CALLS is true.
19524 2014-01-17  Jeff Law  <law@redhat.com>
19526         * ree.c (combine_set_extension): Temporarily disable test for
19527         changing number of hard registers.
19529 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
19531         PR middle-end/58125
19532         * ipa-inline-analysis.c (inline_free_summary):
19533         Do not free summary of aliases.
19535 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
19537         PR middle-end/59706
19538         * gimplify.c (gimplify_expr): Use create_tmp_var
19539         instead of create_tmp_var_raw.  If cond doesn't have
19540         integral type, don't add the IFN_ANNOTATE builtin at all.
19542 2014-01-17  Martin Jambor  <mjambor@suse.cz>
19544         PR ipa/59736
19545         * ipa-cp.c (prev_edge_clone): New variable.
19546         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
19547         Also resize prev_edge_clone vector.
19548         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
19549         (ipcp_edge_removal_hook): New function.
19550         (ipcp_driver): Register ipcp_edge_removal_hook.
19552 2014-01-17  Andrew Pinski  <apinski@cavium.com>
19553             Steve Ellcey  <sellcey@mips.com>
19555         PR target/59462
19556         * config/mips/mips.c (mips_print_operand): Check operand mode instead
19557         of operator mode.
19559 2014-01-17  Jeff Law  <law@redhat.com>
19561         PR middle-end/57904
19562         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
19563         so that pass_ccp runs first.
19565 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
19567         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
19568         (ix86_adjust_cost): Use !TARGET_XXX.
19569         (do_reorder_for_imul): Likewise.
19570         (swap_top_of_ready_list): Likewise.
19571         (ix86_sched_reorder): Likewise.
19573 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
19575         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
19576         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
19577         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
19578         (intel_memset): New.  Duplicate slm_memset.
19579         (intel_cost): New.  Duplicate slm_cost.
19580         (m_INTEL): New macro.
19581         (processor_target_table): Add "intel".
19582         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
19583         with PROCESSOR_INTEL for "intel".
19584         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
19585         PROCESSOR_SILVERMONT.
19586         (ix86_issue_rate): Likewise.
19587         (ix86_adjust_cost): Likewise.
19588         (ia32_multipass_dfa_lookahead): Likewise.
19589         (swap_top_of_ready_list): Likewise.
19590         (ix86_sched_reorder): Likewise.
19591         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
19592         instead of TARGET_OPT_AGU.
19593         * config/i386/i386.h (TARGET_INTEL): New.
19594         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
19595         (processor_type): Add PROCESSOR_INTEL.
19596         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
19597         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
19599 2014-01-17  Marek Polacek  <polacek@redhat.com>
19601         PR c/58346
19602         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
19603         size is zero.
19605 2014-01-17  Richard Biener  <rguenther@suse.de>
19607         PR tree-optimization/46590
19608         * opts.c (default_options_table): Add entries for
19609         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
19610         all enabled at -O1 but not for -Og.
19611         * common.opt (fbranch-count-reg): Remove Init(1).
19612         (fmove-loop-invariants): Likewise.
19613         (ftree-pta): Likewise.
19615 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
19617         * config/i386/i386.c (ix86_data_alignment): For compatibility with
19618         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
19619         decls to at least the GCC 4.8 used alignments.
19621         PR fortran/59440
19622         * tree-nested.c (convert_nonlocal_reference_stmt,
19623         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
19624         of GIMPLE_BIND stmts, adjust associated decls.
19626 2014-01-17  Richard Biener  <rguenther@suse.de>
19628         PR tree-optimization/46590
19629         * vec.h (vec<>::bseach): New member function implementing
19630         binary search according to C89 bsearch.
19631         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
19632         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
19633         bitmap pointer again.  Make accesses_in_loop a flat array.
19634         (mem_ref_obstack): New global.
19635         (outermost_indep_loop): Adjust for mem_ref->stored changes.
19636         (mark_ref_stored): Likewise.
19637         (ref_indep_loop_p_2): Likewise.
19638         (set_ref_stored_in_loop): New helper function.
19639         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
19640         (memref_free): Adjust.
19641         (record_mem_ref_loc): Simplify.
19642         (gather_mem_refs_stmt): Adjust.
19643         (sort_locs_in_loop_postorder_cmp): New function.
19644         (analyze_memory_references): Sort accesses_in_loop after
19645         loop postorder number.
19646         (find_ref_loc_in_loop_cmp): New function.
19647         (for_all_locs_in_loop): Find relevant cluster of locs in
19648         accesses_in_loop and iterate without recursion.
19649         (execute_sm): Avoid uninit warning.
19650         (struct ref_always_accessed): Simplify.
19651         (ref_always_accessed::operator ()): Likewise.
19652         (ref_always_accessed_p): Likewise.
19653         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
19654         loop postorder numbers here.
19655         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
19656         numbers.
19658 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
19660         PR c++/57945
19661         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
19662         on decls for which assemble_alias has been called.
19664 2014-01-17  Nick Clifton  <nickc@redhat.com>
19666         * config/msp430/msp430.opt: (mcpu): New option.
19667         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
19668         (msp430_option_override): Parse target_cpu.  If the MCU name
19669         matches a generic string, clear target_mcu.
19670         (msp430_attr): Allow numeric interrupt values up to 63.
19671         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
19672         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
19673         option.
19674         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
19675         Add mcpu matches.
19676         * config/msp430/msp430.md (popm): Use %J rather than %I.
19677         (addsi3): Use msp430_nonimmediate_operand for operand 2.
19678         (addhi_cy_i): Use immediate_operand for operand 2.
19679         * doc/invoke.texi: Document -mcpu option.
19681 2014-01-17  Richard Biener  <rguenther@suse.de>
19683         PR rtl-optimization/38518
19684         * df.h (df_analyze_loop): Declare.
19685         * df-core.c: Include cfgloop.h.
19686         (df_analyze_1): Split out main part of df_analyze.
19687         (df_analyze): Adjust.
19688         (loop_inverted_post_order_compute): New function.
19689         (loop_post_order_compute): Likewise.
19690         (df_analyze_loop): New function avoiding whole-function
19691         postorder computes.
19692         * loop-invariant.c (find_defs): Use df_analyze_loop.
19693         (find_invariants): Adjust.
19694         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
19696 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
19698         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
19699         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
19701 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
19703         * ipa-ref.c (ipa_remove_stmt_references): Fix references
19704         traversal when removing references.
19706 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
19708         PR ipa/59775
19709         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
19711 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
19713         PR middle-end/56791
19714         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
19715         pushing a reload for an autoinc when we had previously reloaded an
19716         inner part of the address.
19718 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
19720         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
19721         field.
19722         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
19723         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
19724         when not giving up or versioning for alias only because of
19725         loop->safelen.
19726         (vect_analyze_data_ref_dependences): Set to true.
19727         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
19728         is a GIMPLE_PHI.
19729         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
19730         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
19731         to the condition.
19733         PR middle-end/58344
19734         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
19736         PR target/59839
19737         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
19738         operand 0 predicate for gathers, use a new pseudo as subtarget.
19740 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
19742         PR middle-end/59609
19743         * lra-constraints.c (process_alt_operands): Add printing debug info.
19744         Check absence of input/output reloads for matched operands too.
19746 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
19748         PR rtl-optimization/59835
19749         * ira.c (ira_init_register_move_cost): Increase cost for
19750         impossible modes.
19752 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
19754         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
19756 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
19758         PR target/59780
19759         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
19760         non-register objects.  Use gen_(high/low)part more consistently.
19761         Fix assertions.
19763 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
19765         PR target/59844
19766         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
19767         endian support, remove tests for WORDS_BIG_ENDIAN.
19768         (p8_mfvsrd_3_<mode>): Likewise.
19769         (reload_gpr_from_vsx<mode>): Likewise.
19770         (reload_gpr_from_vsxsf): Likewise.
19771         (p8_mfvsrd_4_disf): Likewise.
19773 2014-01-16  Richard Biener  <rguenther@suse.de>
19775         PR rtl-optimization/46590
19776         * lcm.c (compute_antinout_edge): Use postorder iteration.
19777         (compute_laterin): Use inverted postorder iteration.
19779 2014-01-16  Nick Clifton  <nickc@redhat.com>
19781         PR middle-end/28865
19782         * varasm.c (output_constant): Return the number of bytes actually
19783         emitted.
19784         (output_constructor_array_range): Update the field size with the
19785         number of bytes emitted by output_constant.
19786         (output_constructor_regular_field): Likewise.  Also do not
19787         complain if the total number of bytes emitted is now greater
19788         than the expected fieldpos.
19789         * output.h (output_constant): Update prototype and descriptive comment.
19791 2014-01-16  Marek Polacek  <polacek@redhat.com>
19793         PR middle-end/59827
19794         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
19795         it is error_mark_node.
19797 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
19799         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
19800         VALID_AVX256_REG_OR_OI_MODE.
19802 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
19804         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
19805         current procedure should be profiled.
19807 2014-01-15  Andrew Pinski  <apinski@cavium.com>
19809         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
19810         of moving from/to the STACK_REG register class.
19812 2014-01-15  Richard Henderson  <rth@redhat.com>
19814         PR debug/54694
19815         * reginfo.c (global_regs_decl): Globalize.
19816         * rtl.h (global_regs_decl): Declare.
19817         * ira.c (do_reload): Diagnose frame_pointer_needed and it
19818         reserved via global_regs.
19820 2014-01-15  Teresa Johnson  <tejohnson@google.com>
19822         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
19824 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
19826         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
19827         and vmulosh rather than call gen_vec_widen_smult_*.
19828         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
19829         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
19830         (vec_widen_smult_even_v16qi): Likewise.
19831         (vec_widen_umult_even_v8hi): Likewise.
19832         (vec_widen_smult_even_v8hi): Likewise.
19833         (vec_widen_umult_odd_v16qi): Likewise.
19834         (vec_widen_smult_odd_v16qi): Likewise.
19835         (vec_widen_umult_odd_v8hi): Likewise.
19836         (vec_widen_smult_odd_v8hi): Likewise.
19837         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
19838         vmuloub rather than call gen_vec_widen_umult_*.
19839         (vec_widen_umult_lo_v16qi): Likewise.
19840         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
19841         vmulosb rather than call gen_vec_widen_smult_*.
19842         (vec_widen_smult_lo_v16qi): Likewise.
19843         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
19844         rather than call gen_vec_widen_umult_*.
19845         (vec_widen_umult_lo_v8hi): Likewise.
19846         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
19847         rather than call gen_vec_widen_smult_*.
19848         (vec_widen_smult_lo_v8hi): Likewise.
19850 2014-01-15  Jeff Law  <law@redhat.com>
19852         PR tree-optimization/59747
19853         * ree.c (find_and_remove_re): Properly handle case where a second
19854         eliminated extension requires widening a copy created for elimination
19855         of a prior extension.
19856         (combine_set_extension): Ensure that the number of hard regs needed
19857         for a destination register does not change when we widen it.
19859 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
19861         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
19862         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
19863         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
19864         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
19865         (avr-*-rtems*): Likewise.
19866         (bfin*-rtems*): Likewise.
19867         (moxie-*-rtems*): Likewise.
19868         (h8300-*-rtems*): Likewise.
19869         (i[34567]86-*-rtems*): Likewise.
19870         (lm32-*-rtems*): Likewise.
19871         (m32r-*-rtems*): Likewise.
19872         (m68k-*-rtems*): Likewise.
19873         (microblaze*-*-rtems*): Likewise.
19874         (mips*-*-rtems*): Likewise.
19875         (powerpc-*-rtems*): Likewise.
19876         (sh-*-rtems*): Likewise.
19877         (sparc-*-rtems*): Likewise.
19878         (sparc64-*-rtems*): Likewise.
19879         (v850-*-rtems*): Likewise.
19880         (m32c-*-rtems*): Likewise.
19882 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
19884         PR rtl-optimization/59511
19885         * ira.c (ira_init_register_move_cost): Use memory costs for some
19886         cases of register move cost calculations.
19887         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
19888         instead of BB frequency.
19889         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
19890         * lra-assigns.c (find_hard_regno_for): Ditto.
19892 2014-01-15  Richard Biener  <rguenther@suse.de>
19894         PR tree-optimization/59822
19895         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
19896         (vectorizable_load): Use it to hoist defs of uses of invariant
19897         loads out of the loop.
19899 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
19900             Kugan Vivekanandarajah  <kuganv@linaro.org>
19902         PR target/59695
19903         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
19904         truncation.
19906 2014-01-15  Richard Biener  <rguenther@suse.de>
19908         PR rtl-optimization/59802
19909         * lcm.c (compute_available): Use inverted postorder to seed
19910         the initial worklist.
19912 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19914         PR target/59803
19915         * config/s390/s390.c (s390_preferred_reload_class): Don't return
19916         ADDR_REGS for invalid symrefs in non-PIC code.
19918 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
19920         PR other/58712
19921         * builtins.c (determine_block_size): Initialize *probable_max_size
19922         even if len_rtx is CONST_INT.
19924 2014-01-14  Andrew Pinski  <apinski@cavium.com>
19926         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
19927         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
19928         (cortexa53_tunings): Likewise.
19929         (aarch64_sched_issue_rate): New function.
19930         (TARGET_SCHED_ISSUE_RATE): Define.
19932 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
19934         * ira-costs.c (find_costs_and_classes): Add missed
19935         ira_init_register_move_cost_if_necessary.
19937 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
19939         PR target/59787
19940         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
19942 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
19944         PR target/59794
19945         * config/i386/i386.c (type_natural_mode): Add a bool parameter
19946         to indicate if type is used for function return value.  Warn ABI
19947         change if the vector mode isn't available for function return value.
19948         (ix86_function_arg_advance): Pass false to type_natural_mode.
19949         (ix86_function_arg): Likewise.
19950         (ix86_gimplify_va_arg): Likewise.
19951         (function_arg_32): Don't warn ABI change.
19952         (ix86_function_value): Pass true to type_natural_mode.
19953         (ix86_return_in_memory): Likewise.
19954         (ix86_struct_value_rtx): Removed.
19955         (TARGET_STRUCT_VALUE_RTX): Likewise.
19957 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
19959         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
19960         converting a conditional jump into a conditional return.
19962 2014-01-14  Richard Biener  <rguenther@suse.de>
19964         PR tree-optimization/58921
19965         PR tree-optimization/59006
19966         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
19967         hoisting invariant stmts.
19968         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
19969         invariant loads on the preheader edge if possible.
19971 2014-01-14  Joey Ye  <joey.ye@arm.com>
19973         * doc/plugin.texi (Building GCC plugins): Update to C++.
19975 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
19977         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
19978         (_mm_rcp28_round_ss): Ditto.
19979         (_mm_rsqrt28_round_sd): Ditto.
19980         (_mm_rsqrt28_round_ss): Ditto.
19981         (_mm_rcp28_sd): Ditto.
19982         (_mm_rcp28_ss): Ditto.
19983         (_mm_rsqrt28_sd): Ditto.
19984         (_mm_rsqrt28_ss): Ditto.
19985         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
19986         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
19987         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
19988         (IX86_BUILTIN_RCP28SD): Ditto.
19989         (IX86_BUILTIN_RCP28SS): Ditto.
19990         (IX86_BUILTIN_RSQRT28SD): Ditto.
19991         (IX86_BUILTIN_RSQRT28SS): Ditto.
19992         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
19993         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
19994         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
19995         (ix86_expand_special_args_builtin): Expand new FTYPE.
19996         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
19997         (srcp14<mode>): Make insn unary.
19998         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
19999         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
20000         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
20001         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
20002         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
20003         Fix rounding: make it SAE only.
20004         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
20005         Ditto.
20006         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
20007         Ditto.
20008         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
20009         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
20010         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
20011         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
20012         (round_saeonly_mask_scalar_operand4): Ditto.
20013         (round_saeonly_mask_scalar_op3): Ditto.
20014         (round_saeonly_mask_scalar_op4): Ditto.
20016 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20018         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
20019         Implement -maltivec=be for vec_insert and vec_extract.
20021 2014-01-10  DJ Delorie  <dj@redhat.com>
20023         * config/msp430/msp430.md (call_internal): Don't allow memory
20024         references with SP as the base register.
20025         (call_value_internal): Likewise.
20026         * config/msp430/constraints.md (Yc): New.  For memory references
20027         that don't use SP as a base register.
20029         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
20030         "an integer without a # prefix"
20031         * config/msp430/msp430.md (epilogue_helper): Use it.
20033 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
20035         PR target/59617
20036         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
20037         AVX512F gather builtins.
20038         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
20039         on gather decls with INTEGER_TYPE masktype.
20040         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
20041         directly into the builtin rather than hoisting it before loop.
20043         PR tree-optimization/59387
20044         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
20045         (scev_const_prop): If folded_casts and type has undefined overflow,
20046         use force_gimple_operand instead of force_gimple_operand_gsi and
20047         for each added stmt if it is assign with
20048         arith_code_with_undefined_signed_overflow, call
20049         rewrite_to_defined_overflow.
20050         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
20051         gimple-fold.h instead.
20052         (arith_code_with_undefined_signed_overflow,
20053         rewrite_to_defined_overflow): Moved to ...
20054         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
20055         rewrite_to_defined_overflow): ... here.  No longer static.
20056         Include gimplify-me.h.
20057         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
20058         rewrite_to_defined_overflow): New prototypes.
20060 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20062         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
20064 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
20066         * builtins.c (get_object_alignment_2): Minor tweak.
20067         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
20069 2014-01-13  Christian Bruel  <christian.bruel@st.com>
20071         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
20072         optimized non constant lengths.
20074 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
20076         PR libgomp/59194
20077         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
20078         load as __atomic_load_N if possible.
20080 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
20082         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
20083         target parameter.
20084         (rs6000_expand_builtin): Adjust call.
20086 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
20088         PR target/58115
20089         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
20090         * config/rs6000/rs6000.c: Include target-globals.h.
20091         (rs6000_set_current_function): Instead of doing target_reinit
20092         unconditionally, use save_target_globals_default_opts and
20093         restore_target_globals.
20095         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
20096         FPSCR.
20097         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
20098         (rs6000_expand_builtin): Handle mffs and mtfsf.
20099         (rs6000_init_builtins): Define mffs and mtfsf.
20100         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
20101         (rs6000_mffs): New pattern.
20102         (rs6000_mtfsf): New pattern.
20104 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
20106         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
20107         Start narrowing with START.  Apply candidate-use pair
20108         and check overall cost in narrowing.
20109         (iv_ca_prune): Pass new argument.
20111 2014-01-10  Jeff Law  <law@redhat.com>
20113         PR middle-end/59743
20114         * ree.c (combine_reaching_defs): Ensure the defining statement
20115         occurs before the extension when optimizing extensions with
20116         different source and destination hard registers.
20118 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
20120         PR ipa/58585
20121         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
20122         vtables into the type inheritance graph.
20124 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
20126         PR rtl-optimization/59754
20127         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
20128         modes in the REGNO != REGNO case.
20130 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20132         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
20134 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
20136         PR tree-optimization/59745
20137         * tree-predcom.c (tree_predictive_commoning_loop): Call
20138         free_affine_expand_cache if giving up because components is NULL.
20140         * target-globals.c (save_target_globals): Allocate < 4KB structs using
20141         GC in payload of target_globals struct instead of allocating them on
20142         the heap and the larger structs separately using GC.
20143         * target-globals.h (struct target_globals): Make regs, hard_regs,
20144         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
20145         of GTY((skip)) and change type to void *.
20146         (reset_target_globals): Cast loads from those fields to corresponding
20147         types.
20149 2014-01-10  Steve Ellcey  <sellcey@mips.com>
20151         PR plugins/59335
20152         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
20153         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
20154         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
20156 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
20158         PR target/59744
20159         * aarch64-modes.def (CC_Zmode): New flags mode.
20160         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
20161         represents an equality.
20162         (aarch64_get_condition_code): Handle CC_Zmode.
20163         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
20165 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20167         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
20168         extraction in good case.
20170 2014-01-10  Richard Biener  <rguenther@suse.de>
20172         PR tree-optimization/59374
20173         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
20174         checking after SLP discovery.  Mark stmts not participating
20175         in any SLP instance properly.
20177 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20179         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
20180         when handling a SET rtx.
20182 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20184         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
20185         (cortex-a57): Likewise.
20186         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
20188 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20190         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
20191         non-iwmmxt builtins.
20193 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
20195         PR ipa/58252
20196         PR ipa/59226
20197         * ipa-devirt.c record_target_from_binfo): Take as argument
20198         stack of binfos and lookup matching one for virtual inheritance.
20199         (possible_polymorphic_call_targets_1): Update.
20201 2014-01-10  Huacai Chen  <chenhc@lemote.com>
20203         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
20204         kernel strings for Loongson-2E/2F/3A.
20206 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
20208         PR middle-end/59670
20209         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
20210         is_gimple_call before calling gimple_call_internal_p.
20212 2014-01-09  Steve Ellcey  <sellcey@mips.com>
20214         * Makefile.in (TREE_FLOW_H): Remove.
20215         (TREE_SSA_H): Add file names from tree-flow.h.
20216         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
20217         * tree.h: Remove tree-flow.h reference.
20218         * hash-table.h: Remove tree-flow.h reference.
20219         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
20220         reference with tree-ssa-loop.h.
20222 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20224         * doc/invoke.texi: Add -maltivec={be,le} options, and document
20225         default element-order behavior for -maltivec.
20226         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
20227         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
20228         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
20229         when targeting big endian, at least for now.
20230         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
20232 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
20234         PR middle-end/47735
20235         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
20236         var satisfies use_register_for_decl, just take into account type
20237         alignment, rather than decl alignment.
20239         PR tree-optimization/59622
20240         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
20241         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
20242         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
20243         Don't devirtualize for inplace at all.  For targets.length () == 1,
20244         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
20246 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
20248         * config/i386/i386.md (cpu): Remove the unused btver1.
20250 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
20252         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
20254 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
20256         PR target/58115
20257         * tree-core.h (struct target_globals): New forward declaration.
20258         (struct tree_target_option): Add globals field.
20259         * tree.h (TREE_TARGET_GLOBALS): Define.
20260         (prepare_target_option_nodes_for_pch): New prototype.
20261         * target-globals.h (struct target_globals): Define even if
20262         !SWITCHABLE_TARGET.
20263         * tree.c (prepare_target_option_node_for_pch,
20264         prepare_target_option_nodes_for_pch): New functions.
20265         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
20266         * config/i386/i386.c: Include target-globals.h.
20267         (ix86_set_current_function): Instead of doing target_reinit
20268         unconditionally, use save_target_globals_default_opts and
20269         restore_target_globals.
20271 2014-01-09  Richard Biener  <rguenther@suse.de>
20273         PR tree-optimization/59715
20274         * tree-cfg.h (split_critical_edges): Declare.
20275         * tree-cfg.c (split_critical_edges): Export.
20276         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
20278 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
20280         * cfgexpand.c (expand_stack_vars): Optionally disable
20281         asan stack protection.
20282         (expand_used_vars): Likewise.
20283         (partition_stack_vars): Likewise.
20284         * asan.c (asan_emit_stack_protection): Optionally disable
20285         after return stack usage.
20286         (instrument_derefs): Optionally disable memory access instrumentation.
20287         (instrument_builtin_call): Likewise.
20288         (instrument_strlen_call): Likewise.
20289         (asan_protect_global): Optionally disable global variables protection.
20290         * doc/invoke.texi: Added doc for new options.
20291         * params.def: Added new options.
20292         * params.h: Likewise.
20294 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
20296         PR rtl-optimization/59724
20297         * ifcvt.c (cond_exec_process_if_block): Don't call
20298         flow_find_head_matching_sequence with 0 longest_match.
20299         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
20300         non-active insns if !stop_after.
20301         (try_head_merge_bb): Revert 2014-01-07 changes.
20303 2014-01-08  Jeff Law  <law@redhat.com>
20305         * ree.c (get_sub_rtx): New function, extracted from...
20306         (merge_def_and_ext): Here.
20307         (combine_reaching_defs): Use get_sub_rtx.
20309 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
20311         * cgraph.h (varpool_variable_node): Do not choke on null node.
20313 2014-01-08  Catherine Moore  <clm@codesourcery.com>
20315         * config/mips/mips.md (simple_return): Attempt to use JRC
20316         for microMIPS.
20317         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
20319 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
20321         PR rtl-optimization/59137
20322         * reorg.c (steal_delay_list_from_target): Call update_block for
20323         elided insns.
20324         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
20326 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20328         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
20329         two duplicate entries.
20331 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
20333         Revert:
20334         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
20336         * config/mips/mips.c (mips_truncated_op_cost): New function.
20337         (mips_rtx_costs): Adjust test for BADDU.
20338         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
20340         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
20342         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
20343         (*baddu_si): ...this new pattern.
20345 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
20347         PR ipa/59722
20348         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
20350 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20352         PR middle-end/57748
20353         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
20354         inner_reference_p.
20355         (expand_expr, expand_normal): Adjust.
20356         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
20357         inner_reference_p. Use inner_reference_p to expand inner references.
20358         (store_expr): Adjust.
20359         * cfgexpand.c (expand_call_stmt): Adjust.
20361 2014-01-08  Rong Xu  <xur@google.com>
20363         * gcov-io.c (gcov_var): Move from gcov-io.h.
20364         (gcov_position): Ditto.
20365         (gcov_is_error): Ditto.
20366         (gcov_rewrite): Ditto.
20367         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
20368         only part to libgcc/libgcov.h.
20370 2014-01-08  Marek Polacek  <polacek@redhat.com>
20372         PR middle-end/59669
20373         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
20375 2014-01-08  Marek Polacek  <polacek@redhat.com>
20377         PR sanitizer/59667
20378         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
20380 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
20382         PR rtl-optimization/59649
20383         * stor-layout.c (get_mode_bounds): For BImode return
20384         0 and STORE_FLAG_VALUE.
20386 2014-01-08  Richard Biener  <rguenther@suse.de>
20388         PR middle-end/59630
20389         * gimple.h (is_gimple_builtin_call): Remove.
20390         (gimple_builtin_call_types_compatible_p): New.
20391         (gimple_call_builtin_p): New overload.
20392         * gimple.c (is_gimple_builtin_call): Remove.
20393         (validate_call): Rename to ...
20394         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
20395         check return types.
20396         (validate_type): New static function.
20397         (gimple_call_builtin_p): New overload and adjust.
20398         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
20399         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
20400         (gimple_fold_stmt_to_constant_1): Likewise.
20401         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
20403 2014-01-08  Richard Biener  <rguenther@suse.de>
20405         PR middle-end/59471
20406         * gimplify.c (gimplify_expr): Gimplify register-register type
20407         VIEW_CONVERT_EXPRs to separate stmts.
20409 2014-01-07  Jeff Law  <law@redhat.com>
20411         PR middle-end/53623
20412         * ree.c (combine_set_extension): Handle case where source
20413         and destination registers in an extension insn are different.
20414         (combine_reaching_defs): Allow source and destination registers
20415         in extension to be different under limited circumstances.
20416         (add_removable_extension): Remove restriction that the
20417         source and destination registers in the extension are the same.
20418         (find_and_remove_re): Emit a copy from the extension's
20419         destination to its source after the defining insn if
20420         the source and destination registers are different.
20422         PR middle-end/59285
20423         * ifcvt.c (merge_if_block): If we are merging a block with more than
20424         one successor with a block with no successors, remove any BARRIER
20425         after the second block.
20427 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
20429         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
20431 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
20433         PR target/59652
20434         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
20435         for 14-bit register offsets when INT14_OK_STRICT is false.
20437 2014-01-07  Roland Stigge  <stigge@antcom.de>
20438             Michael Meissner  <meissner@linux.vnet.ibm.com>
20440         PR 57386/target
20441         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
20442         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
20444 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
20446         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
20447         -mcpu.
20449 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
20451         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
20452         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
20453         rtx is const0_rtx or not.
20455 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
20457         PR target/58115
20458         * target-globals.c (save_target_globals): Remove this_fn_optab
20459         handling.
20460         * toplev.c: Include optabs.h.
20461         (target_reinit): Temporarily restore the global options if another
20462         set of options are in force.
20464 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
20466         PR rtl-optimization/58668
20467         * cfgcleanup.c (flow_find_cross_jump): Don't count
20468         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
20469         to determine what is counted.
20470         (flow_find_head_matching_sequence): Use active_insn_p to determine
20471         what is counted.
20472         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
20473         counting change.
20474         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
20475         determine what is counted.
20477         PR tree-optimization/59643
20478         * tree-predcom.c (split_data_refs_to_components): If one dr is
20479         read and one write, determine_offset fails and the write isn't
20480         in the bad component, just put the read into the bad component.
20482 2014-01-07  Mike Stump  <mikestump@comcast.net>
20483             Jakub Jelinek  <jakub@redhat.com>
20485         PR pch/59436
20486         * tree-core.h (struct tree_optimization_option): Change optabs
20487         type from unsigned char * to void *.
20488         * optabs.c (init_tree_optimization_optabs): Adjust
20489         TREE_OPTIMIZATION_OPTABS initialization.
20491 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
20493         PR target/59644
20494         * config/i386/i386.h (struct machine_function): Add
20495         no_drap_save_restore field.
20496         * config/i386/i386.c (ix86_save_reg): Use
20497         !cfun->machine->no_drap_save_restore instead of
20498         crtl->stack_realign_needed.
20499         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
20500         this function clears frame_pointer_needed.  Set
20501         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
20502         and DRAP reg is needed.
20504 2014-01-06  Marek Polacek  <polacek@redhat.com>
20506         PR c/57773
20507         * doc/implement-c.texi: Mention that other integer types are
20508         permitted as bit-field types in strictly conforming mode.
20510 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
20512         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
20513         is newly allocated.
20515 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
20517         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
20519 2014-01-06  Martin Jambor  <mjambor@suse.cz>
20521         PR ipa/59008
20522         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
20523         to int.
20524         * ipa-prop.c (ipa_print_node_params): Fix indentation.
20526 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
20528         PR debug/59350
20529         PR debug/59510
20530         * var-tracking.c (add_stores): Preserve the value of the source even if
20531         we don't record the store.
20533 2014-01-06  Terry Guo  <terry.guo@arm.com>
20535         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
20537 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
20539         PR bootstrap/59541
20540         * config/darwin.c (darwin_function_section): Adjust return values to
20541         correspond to optimisation changes made in r206070.
20543 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
20545         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
20546         from prefetch_block tune setting.
20547         (nocona_cost): Correct size of prefetch block to 64.
20549 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
20551         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
20552         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
20553         used to save the static chain register in the computation of the offset
20554         from which the FP registers need to be restored.
20556 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
20558         PR tree-optimization/59519
20559         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
20560         ICE if get_current_def (current_new_name) is already non-NULL, as long
20561         as it is a phi result of some other phi in *new_exit_bb that has
20562         the same argument.
20564         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
20565         or vmovdqu* for misaligned_operand.
20566         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
20567         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
20568         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
20569         aligned_mem for AVX512F masked aligned load and store builtins and for
20570         non-temporal moves.
20572 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
20574         PR tree-optimization/59651
20575         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
20576         Address range for negative step should be added by TYPE_SIZE_UNIT.
20578 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
20580         * config/m68k/m68k.c (handle_move_double): Handle pushes with
20581         overlapping registers also for registers other than the stack pointer.
20583 2014-01-03  Marek Polacek  <polacek@redhat.com>
20585         PR other/59661
20586         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
20587         __builtin_FILE.
20589 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
20591         PR target/59625
20592         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
20593         asm goto as jump.
20595         * config/i386/i386.md (MODE_SIZE): New mode attribute.
20596         (push splitter): Use <P:MODE_SIZE> instead of
20597         GET_MODE_SIZE (<P:MODE>mode).
20598         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
20599         (mov -1, reg peephole2): Likewise.
20600         * config/i386/sse.md (*mov<mode>_internal,
20601         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
20602         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
20603         *<code><mode>3, *andnot<mode>3<mask_name>,
20604         <mask_codefor><code><mode>3<mask_name>): Likewise.
20605         * config/i386/subst.md (mask_mode512bit_condition,
20606         sd_mask_mode512bit_condition): Likewise.
20608 2014-01-02  Xinliang David Li  <davidxl@google.com>
20610         PR tree-optimization/59303
20611         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
20612         (dump_predicates): Better output format.
20613         (pred_equal_p): New function.
20614         (is_neq_relop_p): Ditto.
20615         (is_neq_zero_form_p): Ditto.
20616         (pred_expr_equal_p): Ditto.
20617         (pred_neg_p): Ditto.
20618         (simplify_pred): Ditto.
20619         (simplify_preds_2): Ditto.
20620         (simplify_preds_3): Ditto.
20621         (simplify_preds_4): Ditto.
20622         (simplify_preds): Ditto.
20623         (push_pred): Ditto.
20624         (push_to_worklist): Ditto.
20625         (get_pred_info_from_cmp): Ditto.
20626         (is_degenerated_phi): Ditto.
20627         (normalize_one_pred_1): Ditto.
20628         (normalize_one_pred): Ditto.
20629         (normalize_one_pred_chain): Ditto.
20630         (normalize_preds): Ditto.
20631         (normalize_cond_1): Remove function.
20632         (normalize_cond): Ditto.
20633         (is_gcond_subset_of): Ditto.
20634         (is_subset_of_any): Ditto.
20635         (is_or_set_subset_of): Ditto.
20636         (is_and_set_subset_of): Ditto.
20637         (is_norm_cond_subset_of): Ditto.
20638         (pred_chain_length_cmp): Ditto.
20639         (convert_control_dep_chain_into_preds): Type change.
20640         (find_predicates): Ditto.
20641         (find_def_preds): Ditto.
20642         (destroy_predicates_vecs): Ditto.
20643         (find_matching_predicates_in_rest_chains): Ditto.
20644         (use_pred_not_overlap_with_undef_path_pred): Ditto.
20645         (is_pred_expr_subset): Ditto.
20646         (is_pred_chain_subset_of): Ditto.
20647         (is_included_in): Ditto.
20648         (is_superset_of): Ditto.
20650 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
20652         Update copyright years.
20654 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
20656         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
20657         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
20658         config/arc/arc.md, config/arc/arc.opt,
20659         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
20660         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
20661         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
20662         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
20663         config/linux-protos.h, config/linux.c, config/winnt-c.c,
20664         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
20665         vtable-verify.c, vtable-verify.h: Use the standard form for the
20666         copyright notice.
20668 2014-01-02  Tobias Burnus  <burnus@net-b.de>
20670         * gcc.c (process_command): Update copyright notice dates.
20671         * gcov-dump.c: Ditto.
20672         * gcov.c: Ditto.
20673         * doc/cpp.texi: Bump @copying's copyright year.
20674         * doc/cppinternals.texi: Ditto.
20675         * doc/gcc.texi: Ditto.
20676         * doc/gccint.texi: Ditto.
20677         * doc/gcov.texi: Ditto.
20678         * doc/install.texi: Ditto.
20679         * doc/invoke.texi: Ditto.
20681 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20683         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
20685 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
20687         * config/i386/sse.md (*mov<mode>_internal): Guard
20688         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
20690         PR rtl-optimization/59647
20691         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
20692         new_rtx into UNSIGNED_FLOAT rtxes.
20694 Copyright (C) 2014 Free Software Foundation, Inc.
20696 Copying and distribution of this file, with or without modification,
20697 are permitted in any medium without royalty provided the copyright
20698 notice and this notice are preserved.