re PR target/61853 (ICE: SIGSEGV in store_field)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
2
3         PR target/61853
4         * config/pa/pa.c (pa_function_value): Directly handle aggregates
5         that fit exactly in a word or double word.
6
7 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
8
9         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
10         zmm/k regs support.
11
12 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14             Anna Tikhonova  <anna.tikhonova@intel.com>
15             Ilya Tocar  <ilya.tocar@intel.com>
16             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17             Ilya Verbin  <ilya.verbin@intel.com>
18             Kirill Yukhin  <kirill.yukhin@intel.com>
19             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20
21         * config/i386/i386.c
22         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
23         * config/i386/sse.md
24         (define_mode_iterator VI48F_256): New.
25         (define_mode_attr extract_type): Ditto.
26         (define_mode_attr extract_suf): Ditto.
27         (define_mode_iterator AVX512_VEC): Ditto.
28         (define_expand
29         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
30         AVX512_VEC.
31         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
32         (define_insn
33         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
34         Ditto.
35         (define_mode_attr extract_type_2): Ditto.
36         (define_mode_attr extract_suf_2): Ditto.
37         (define_mode_iterator AVX512_VEC_2): Ditto.
38         (define_expand
39         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
40         AVX512_VEC_2 mode iterator.
41         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
42         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
43         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
44         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
45         (define_split for V16FI mode): Ditto.
46         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
47         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
48         (define_split for VI8F_256 mode): Ditto.
49         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
50         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
51         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
52         (define_split for VI4F_256 mode): Ditto.
53         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
54         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
55         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
56         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
57         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
58         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
59         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
60         Update `type' attribute, remove explicit `memory' attribute calculation.
61
62 2014-09-16  Kito Cheng  <kito@0xlab.org>
63
64         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
65         ira_spilled_reg_stack_slots_num if using lra.
66         (do_reload): Remove release ira_spilled_reg_stack_slots part.
67         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
68         make sure not using lra.
69         (ira_reuse_stack_slot): Likewise.
70         (ira_mark_new_stack_slot): Likewise.
71
72 2014-09-15  Andi Kleen  <ak@linux.intel.com>
73
74         * function.c (allocate_struct_function): Force
75         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
76         profiling is disabled.
77
78 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
79     
80         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
81         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
82         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
83         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
84         macro with statically checked member functions.
85         * rtl.h (rtx_insn::deleted): New method.
86         (rtx_insn::set_deleted): Likewise.
87         (rtx_insn::set_undeleted): Likewise.
88         (INSN_DELETED_P): Remove.
89
90 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
91
92         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
93         result of emit_jump_insn_before to a new variable.
94         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
95         (mark_jump_label_1): Likewise.
96         (mark_jump_label_asm): Likewise.
97         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
98         * rtl.h (mark_jump_label): Adjust.
99
100 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
101
102         * Makefile.in (dg_target_exps): Remove.
103         (check_gcc_parallelize): Change to just an upper bound number.
104         (check-%-subtargets): Always print the non-parallelized goals.
105         (check_p_vars, check_p_comma, check_p_subwork): Remove.
106         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
107         check_p_numbers3, check_p_numbers4, check_p_numbers5,
108         check_p_numbers6): New variables.
109         (check_p_numbers): Set to sequence from 1 to 9999.
110         (check_p_subdirs): Set to sequence from 1 to minimum of
111         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
112         or 128.
113         (check-%, check-parallel-%): Rewritten so that for parallelized
114         testing each job runs all the *.exp files, with
115         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
116
117 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
118
119         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
120         rtx to rtx_insn *.
121         (arc_sets_cc_p): Likewise.
122         * config/arc/arc.c (arc_print_operand): Use methods of
123         "final_sequence" for clarity, and to enable strengthening of
124         locals "jump" and "delay" from rtx to rtx_insn *.
125         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
126         rtx_insn *; use method of rtx_sequence for typesafety.
127         (arc_get_insn_variants): Use insn method of rtx_sequence for
128         typesafety.
129         (arc_pad_return): Likewise.
130         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
131         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
132         dyn_cast to rtx_sequence *, using insn method for typesafety.
133         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
134         rtx_sequence * and use insn method when invoking get_attr_length.
135         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
136         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
137         rtx_sequence *, introducing a local "seq", using its insn method
138         from typesafety and clarity.
139         (add_sched_insns_for_speculation): Strengthen local "next" from
140         rtx to rtx_insn *.
141         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
142         (predicate_insn): Likewise.
143         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
144         second param.
145         * config/cris/cris.c (cris_notice_update_cc): Likewise.
146         * config/epiphany/epiphany-protos.h
147         (extern void epiphany_insert_mode_switch_use): Likewise for param
148         "insn".
149         (get_attr_sched_use_fpu): Likewise for param.
150         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
151         Likewise for param "insn".
152         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
153         param "insn" of "target_insert_mode_switch_use" callback.
154         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
155         (frv_issues_to_branch_unit_p): Likewise.
156         (frv_pack_insn_p): Likewise.
157         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
158         const rtx * (i.e. mutable rtx_def * const *) to
159         rtx_insn * const *.
160         * config/i386/i386-protos.h (standard_sse_constant_opcode):
161         Strengthen first param from rtx to rtx_insn *.
162         (output_fix_trunc): Likewise.
163         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
164         (output_fix_trunc): Likewise.
165         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
166         local "insn".
167         (min_insn_size): Likewise for param "insn".
168         (get_mem_group): Likewise.
169         (is_cmp): Likewise.
170         (get_insn_path): Likewise.
171         (get_insn_group): Likewise.
172         (count_num_restricted): Likewise.
173         (fits_dispatch_window): Likewise.
174         (add_insn_window): Likewise.
175         (add_to_dispatch_window): Likewise.
176         (debug_insn_dispatch_info_file): Likewise.
177         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
178         first param.
179         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
180         "cmp" and local "prev".
181         (m32c_output_compare): Likewise for param "insn".
182         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
183         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
184         (define_predicate "large_insn_p"): Likewise.
185         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
186         param from rtx to rtx_insn *.
187         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
188         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
189         (m68k_sched_attr_size): Likewise.
190         (sched_get_opxy_mem_type): Likewise for param "insn".
191         (m68k_sched_attr_op_mem): Likewise.
192         (sched_mem_operand_p): Likewise.
193         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
194         * config/mep/mep.c (mep_multi_slot): Likewise.
195         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
196         first param.
197         (mips_sync_loop_insns): Likewise.
198         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
199         method of "final_sequence" for typesafety.
200         (mips_process_sync_loop): Strengthen param "insn" from rtx to
201         rtx_insn *.
202         (mips_output_sync_loop): Likewise.
203         (mips_sync_loop_insns): Likewise.
204         (mips_74k_agen_init): Likewise.
205         (mips_sched_init): Use NULL rather than NULL_RTX when working with
206         insns.
207         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
208         Strengthen param "insn" from rtx to rtx_insn *.
209         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
210         local "insn".
211         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
212         param.
213         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
214         "insn".  Use method of rtx_sequence for typesafety.
215         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
216         rtx_insn *.
217         (branch_needs_nop_p): Likewise.
218         (use_skip_p): Likewise.
219         (pa_insn_refs_are_delayed): Likewise.
220         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
221         for locals "insn", "ninsn".
222         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
223         "insn".
224         (is_cracked_insn): Likewise.
225         (is_branch_slot_insn): Likewise.
226         (is_nonpipeline_insn): Likewise.
227         (insn_terminates_group_p): Likewise.
228         (insn_must_be_first_in_group): Likewise.
229         (insn_must_be_last_in_group): Likewise.
230         (force_new_group): Likewise for param "next_insn".
231         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
232         "insn".
233         (s390_sched_score): Likewise.
234         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
235         (rtx sfunc_uses_reg): Likewise for sole param.
236         * config/sh/sh.c (sh_print_operand): Use insn method of
237         final_sequence for typesafety.
238         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
239         Use insn method of final_sequence for typesafety.
240         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
241         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
242         for param.
243         (eligible_for_return_delay): Likewise.
244         (eligible_for_sibcall_delay): Likewise.
245         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
246         (eligible_for_return_delay): Likewise.
247         (eligible_for_sibcall_delay): Likewise.
248         * config/stormy16/stormy16-protos.h
249         (xstormy16_output_cbranch_hi): Likewise for final param.
250         (xstormy16_output_cbranch_si): Likewise.
251         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
252         (xstormy16_output_cbranch_si): Likewise.
253         * config/v850/v850-protos.h (notice_update_cc): Likewise.
254         * config/v850/v850.c (notice_update_cc): Likewise.
255
256         * final.c (get_attr_length_1): Strengthen param "insn" and param
257         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
258         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
259         (get_attr_min_length): Likewise.
260         (shorten_branches): Likewise for signature of locals "length_fun"
261         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
262         from a checked cast and use its methods for clarity and to enable
263         strengthening local "inner_insn" from rtx to rtx_insn *.
264         * genattr.c (gen_attr): When writing out the prototypes of the
265         various generated "get_attr_" functions, strengthen the params of
266         the non-const functions from rtx to rtx_insn *.
267         Similarly, strengthen the params of insn_default_length,
268         insn_min_length, insn_variable_length_p, insn_current_length.
269         (main): Similarly, strengthen the param of num_delay_slots,
270         internal_dfa_insn_code, insn_default_latency, bypass_p,
271         insn_latency, min_issue_delay, print_reservation,
272         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
273         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
274         to hook_int_rtx_insn_unreachable.
275         * genattrtab.c (write_attr_get): When writing out the generated
276         "get_attr_" functions, strengthen the param "insn" from rtx to
277         rtx_insn *, eliminating a checked cast.
278         (make_automaton_attrs): When writing out prototypes of
279         "internal_dfa_insn_code_", "insn_default_latency_" functions
280         and the "internal_dfa_insn_code" and "insn_default_latency"
281         callbacks, strengthen their params from rtx to rtx_insn *
282         * genautomata.c (output_internal_insn_code_evaluation): When
283         writing out code, add a checked cast from rtx to rtx_insn * when
284         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
285         (output_dfa_insn_code_func): Strengthen param of generated
286         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
287         (output_trans_func): Likewise for generated function
288         "state_transition".
289         (output_internal_insn_latency_func): When writing out generated
290         function "internal_insn_latency", rename params from "insn" and
291         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
292         locals "insn" and "insn2" as rtx_insn * with checked casts once
293         we've proven that we're not dealing with const0_rtx.
294         (output_insn_latency_func):  Strengthen param of generated
295         function "insn_latency" from rtx to rtx_insn *.
296         (output_print_reservation_func): Likewise for generated function
297         "print_reservation".
298         (output_insn_has_dfa_reservation_p): Likewise for generated
299         function "insn_has_dfa_reservation_p".
300         * hooks.c (hook_int_rtx_unreachable): Rename to...
301         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
302         from rtx to rtx_insn *.
303         * hooks.h (hook_int_rtx_unreachable): Likewise.
304         (extern int hook_int_rtx_insn_unreachable): Likewise.
305         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
306         (get_attr_min_length): Likewise.
307         * recog.c (get_enabled_alternatives): Likewise.
308         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
309         * reorg.c (find_end_label): Introduce local rtx "pat" and
310         strengthen local "insn" from rtx to rtx_insn *.
311         (redundant_insn): Use insn method of "seq" rather than element for
312         typesafety; strengthen local "control" from rtx to rtx_insn *.
313         * resource.c (mark_referenced_resources): Add checked cast to
314         rtx_insn * within INSN/JUMP_INSN case.
315         (mark_set_resources): Likewise.
316         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
317         rtx to rtx_insn *.
318
319 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
320
321         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
322         param "label" from rtx to rtx_insn *.
323         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
324         and local "op".
325         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
326         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
327         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
328         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
329         * final.c (default_label_align_after_barrier_max_skip): Strengthen
330         param from rtx to rtx_insn *.
331         (default_loop_align_max_skip): Likewise.
332         (default_label_align_max_skip): Likewise.
333         (default_jump_align_max_skip): Likewise.
334         * target.def (label_align_after_barrier_max_skip): Likewise.
335         (loop_align_max_skip): Likewise.
336         (label_align_max_skip): Likewise.
337         (jump_align_max_skip): Likewise.
338         * targhooks.h (default_label_align_after_barrier_max_skip):
339         Likewise.
340         (default_loop_align_max_skip): Likewise.
341         (default_label_align_max_skip): Likewise.
342         (default_jump_align_max_skip): Likewise.
343
344 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
345
346         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
347         from const_rtx to const rtx_insn *.  Update union members from rtx
348         to rtx_insn *.
349         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
350         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
351         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
352         strengthen both params from const_rtx to const rtx_insn *.
353         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
354         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
355         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
356         rtx_insn *.
357         * target.def (can_follow_jump): Strengthen both params from
358         const_rtx to const rtx_insn *, and update default implementation
359         from hook_bool_const_rtx_const_rtx_true to
360         hook_bool_const_rtx_insn_const_rtx_insn_true.
361
362 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
363
364         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
365         "insn" from rtx to rtx_insn *.
366         * sched-int.h (deps_start_bb): Likewise for 2nd param.
367
368 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
369             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
370             Anna Tikhonova  <anna.tikhonova@intel.com>
371             Ilya Tocar  <ilya.tocar@intel.com>
372             Andrey Turetskiy  <andrey.turetskiy@intel.com>
373             Ilya Verbin  <ilya.verbin@intel.com>
374             Kirill Yukhin  <kirill.yukhin@intel.com>
375             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
376
377         * config/i386/sse.md
378         (define_insn "vcvtph2ps<mask_name>"): Add masking.
379         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
380         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
381         (define_expand "vcvtps2ph_mask"): New.
382         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
383         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
384         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
385
386 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
387             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
388             Anna Tikhonova  <anna.tikhonova@intel.com>
389             Ilya Tocar  <ilya.tocar@intel.com>
390             Andrey Turetskiy  <andrey.turetskiy@intel.com>
391             Ilya Verbin  <ilya.verbin@intel.com>
392             Kirill Yukhin  <kirill.yukhin@intel.com>
393             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
394
395         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
396         New.
397         (define_mode_iterator VI24_AVX512BW_1): Ditto.
398         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
399         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
400         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
401         also for TARGET_AVX512VL.
402         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
403
404 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
405
406         * doc/install.texi (Options specification): add 
407         --disable-libsanitizer item.
408
409 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
410             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
411
412         PR target/61407
413         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
414         and above.
415         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
416         kernel version check to avoid incrementing it after every major OS X
417         release.
418         (darwin_default_min_version): Avoid static memory buffer.
419
420 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
421
422         * tree.c (need_assembler_name_p): Store C++ type mangling only
423         for aggregates.
424
425 2014-09-13  Marek Polacek  <polacek@redhat.com>
426
427         * tree.c (protected_set_expr_location): Don't check whether T is
428         non-null here.
429
430 2014-09-12  DJ Delorie  <dj@redhat.com>
431
432         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
433         (extend_and_shift1_hipsi2): Likewise.
434         (extend_and_shift2_hipsi2): Likewise.
435
436 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
437
438         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
439         with NULL when dealing with an insn.
440         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
441         from rtx to rtx_insn *.
442         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
443         const_rtx to const rtx_insn *.
444         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
445
446 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
447
448         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
449         assert.
450
451 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
452
453         * target.def (libgcc_floating_mode_supported_p): New hook.
454         * targhooks.c (default_libgcc_floating_mode_supported_p): New
455         function.
456         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
457         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
458         (LIBGCC2_HAS_TF_MODE): Remove.
459         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
460         * doc/tm.texi: Regenerate.
461         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
462         machine mode.
463         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
464         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
465         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
466         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
467         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
468         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
469         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
470         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
471         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
472         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
473         function.
474         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
475         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
476         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
477         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
478         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
479         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
480         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
481         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
482         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
483         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
484         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
485         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
486         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
487         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
488         Remove.
489         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
490         New macro.
491         (ia64_libgcc_floating_mode_supported_p): New function.
492         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
493         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
494         (IA64_NO_LIBGCC_TFMODE): Define.
495         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
496         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
497         macro.
498         (pdp11_scalar_mode_supported_p): New function.
499         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
500         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
501
502 2014-09-12  Richard Biener  <rguenther@suse.de>
503
504         PR middle-end/63237
505         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
506
507 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
508
509         * tree.c (integer_each_onep): New function.
510         * tree.h (integer_each_onep): Declare it.
511         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
512         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
513         (X & 1) == 0 for vector and complex.
514
515 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
516
517         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
518         for A57.
519         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
520         cost to spilling from integer to FP registers.
521
522 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
523
524         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
525         move handling.
526         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
527         are now handled correctly.
528
529 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
530
531         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
532         handling of CALLER_SAVE_REGS and POINTER_REGS.
533
534 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
535
536         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
537         the number of hard registers.
538
539 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
540             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
541             Anna Tikhonova  <anna.tikhonova@intel.com>
542             Ilya Tocar  <ilya.tocar@intel.com>
543             Andrey Turetskiy  <andrey.turetskiy@intel.com>
544             Ilya Verbin  <ilya.verbin@intel.com>
545             Kirill Yukhin  <kirill.yukhin@intel.com>
546             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
547
548         * config/i386/sse.md
549         (define_mode_iterator VI48_AVX512VL): New.
550         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
551         "avx512f_vternlog<mode>_maskz" and update mode iterator.
552         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
553         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
554         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
555         "avx512f_vternlog<mode>_mask" and update mode iterator.
556         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
557         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
558         iterator.
559         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
560         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
561         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
562         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
563         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
564         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
565
566 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
567             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
568             Anna Tikhonova  <anna.tikhonova@intel.com>
569             Ilya Tocar  <ilya.tocar@intel.com>
570             Andrey Turetskiy  <andrey.turetskiy@intel.com>
571             Ilya Verbin  <ilya.verbin@intel.com>
572             Kirill Yukhin  <kirill.yukhin@intel.com>
573             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
574
575         * config/i386/sse.md (VI128_256): Delete.
576         (define_mode_iterator VI124_256): New.
577         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
578         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
579         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
580         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
581         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
582         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
583         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
584         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
585         iterator.
586         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
587         in presence of AVX-512.
588
589 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
590             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
591             Anna Tikhonova  <anna.tikhonova@intel.com>
592             Ilya Tocar  <ilya.tocar@intel.com>
593             Andrey Turetskiy  <andrey.turetskiy@intel.com>
594             Ilya Verbin  <ilya.verbin@intel.com>
595             Kirill Yukhin  <kirill.yukhin@intel.com>
596             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
597
598         * config/i386/sse.md
599         (define_expand "<avx512>_gathersi<mode>"): Rename from
600         "avx512f_gathersi<mode>".
601         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
602         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
603         (define_expand "<avx512>_gatherdi<mode>"): Rename from
604         "avx512f_gatherdi<mode>".
605         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
606         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
607         wide versions.
608         (define_expand "<avx512>_scattersi<mode>"): Rename from
609         "avx512f_scattersi<mode>".
610         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
611         (define_expand "<avx512>_scatterdi<mode>"): Rename from
612         "avx512f_scatterdi<mode>".
613         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
614
615 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
616
617         * ira.h (ira_finish_once): Delete.
618         * ira-int.h (target_ira_int::~target_ira_int): Declare.
619         (target_ira_int::free_ira_costs): Likewise.
620         (target_ira_int::free_register_move_costs): Likewise.
621         (ira_finish_costs_once): Delete.
622         * ira.c (free_register_move_costs): Replace with...
623         (target_ira_int::free_register_move_costs): ...this new function.
624         (target_ira_int::~target_ira_int): Define.
625         (ira_init): Call free_register_move_costs as a member function rather
626         than a global function.
627         (ira_finish_once): Delete.
628         * ira-costs.c (free_ira_costs): Replace with...
629         (target_ira_int::free_ira_costs): ...this new function.
630         (ira_init_costs): Call free_ira_costs as a member function rather
631         than a global function.
632         (ira_finish_costs_once): Delete.
633         * target-globals.c (target_globals::~target_globals): Call the
634         target_ira_int destructor.
635         * toplev.c: Include lra.h.
636         (finalize): Call lra_finish_once rather than ira_finish_once.
637
638 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
639
640         * common.opt (flto-odr-type-merging): New flag.
641         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
642         (types_same_for_odr): Likewise.
643         (odr_subtypes_equivalent_p): Likewise.
644         (add_type_duplicate): Do not walk type variants.
645         (register_odr_type): New function.
646         * ipa-utils.h (register_odr_type): Declare.
647         (odr_type_p): New function.
648         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
649         TYPE_DECLs
650         * doc/invoke.texi (-flto-odr-type-merging): Document.
651         * tree.c (need_assembler_name_p): Compute ODR names when asked
652         for it.
653         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
654
655 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
656
657         PR target/63228
658         * config/i386/i386.c (ix86_option_override_internal): Also turn
659         off OPTION_MASK_ABI_X32 for -m16.
660
661 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
662
663         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
664         GPR instead of P.
665
666 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
667
668         PR target/58757
669         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
670         Directly forward to __*_DENORM_MIN__.
671
672 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
673
674         * rtl.h (LABEL_REF_LABEL): New macro.
675
676         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
677         of XEXP (, 0), where we know that we have a LABEL_REF.
678         * cfgbuild.c (make_edges): Likewise.
679         (purge_dead_tablejump_edges): Likewise.
680         * cfgexpand.c (convert_debug_memory_address): Likewise.
681         * cfgrtl.c (patch_jump_insn): Likewise.
682         * combine.c (distribute_notes): Likewise.
683         * cse.c (hash_rtx_cb): Likewise.
684         (exp_equiv_p): Likewise.
685         (fold_rtx): Likewise.
686         (check_for_label_ref): Likewise.
687         * cselib.c (rtx_equal_for_cselib_1): Likewise.
688         (cselib_hash_rtx): Likewise.
689         * emit-rtl.c (mark_label_nuses): Likewise.
690         * explow.c (convert_memory_address_addr_space): Likewise.
691         * final.c (output_asm_label): Likewise.
692         (output_addr_const): Likewise.
693         * gcse.c (add_label_notes): Likewise.
694         * genconfig.c (walk_insn_part): Likewise.
695         * genrecog.c (validate_pattern): Likewise.
696         * ifcvt.c (cond_exec_get_condition): Likewise.
697         (noce_emit_store_flag): Likewise.
698         (noce_get_alt_condition): Likewise.
699         (noce_get_condition): Likewise.
700         * jump.c (maybe_propagate_label_ref): Likewise.
701         (mark_jump_label_1): Likewise.
702         (redirect_exp_1): Likewise.
703         (rtx_renumbered_equal_p): Likewise.
704         * lra-constraints.c (operands_match_p): Likewise.
705         * reload.c (operands_match_p): Likewise.
706         (find_reloads): Likewise.
707         * reload1.c (set_label_offsets): Likewise.
708         * reorg.c (get_branch_condition): Likewise.
709         * rtl.c (rtx_equal_p_cb): Likewise.
710         (rtx_equal_p): Likewise.
711         * rtlanal.c (reg_mentioned_p): Likewise.
712         (rtx_referenced_p): Likewise.
713         (get_condition): Likewise.
714         * sched-vis.c (print_value): Likewise.
715         * varasm.c (const_hash_1): Likewise.
716         (compare_constant): Likewise.
717         (const_rtx_hash_1): Likewise.
718         (output_constant_pool_1): Likewise.
719
720 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
721
722         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
723         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
724         instead of minus.
725         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
726         cr6_test_for_lt_reverse): Ditto.
727
728 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
729
730         PR c++/61489
731         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
732
733 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
734
735         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
736         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
737         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
738         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
739         Delete.
740
741         (aarch64_fold_builtin): Remove all reinterpret cases.
742
743         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
744
745         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
746
747         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
748         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
749         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
750         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
751         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
752         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
753         aarch64_reinterpretv2df<mode>): Delete.
754
755         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
756
757         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
758         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
759         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
760         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
761         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
762         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
763         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
764         vreinterpret_u32_f64): Use cast.
765
766         * config/aarch64/iterators.md (VD_RE): Delete.
767
768 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
769
770         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
771         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
772         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
773         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
774         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
775         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
776         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
777         Replace inline assembler with __aarch64_vset_lane_any.
778
779 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
780
781         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
782         types.
783         (vmull_high_lane_s32): Likewise.
784         (vmull_high_lane_u16): Likewise.
785         (vmull_high_lane_u32): Likewise.
786
787 2014-09-11  Jason Merrill  <jason@redhat.com>
788
789         PR c++/58678
790         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
791
792 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
793
794         PR target/63223
795         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
796         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
797         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
798
799 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
800             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
801             Anna Tikhonova  <anna.tikhonova@intel.com>
802             Ilya Tocar  <ilya.tocar@intel.com>
803             Andrey Turetskiy  <andrey.turetskiy@intel.com>
804             Ilya Verbin  <ilya.verbin@intel.com>
805             Kirill Yukhin  <kirill.yukhin@intel.com>
806             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
807
808         * config/i386/sse.md
809         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
810         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
811         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
812         New.
813         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
814         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
815         iterator.
816         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
817         New.
818         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
819         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
820         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
821         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
822         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
823         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
824         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
825         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
826         iterator.
827         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
828         New.
829         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
830         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
831         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
832
833 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
834
835         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
836         to access removed nodes.
837
838 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
839
840         PR tree-optimization/63186
841         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
842         (mark_nonssa_use): Likewise.
843         (verify_non_ssa_vars): Verify all header blocks for label
844         definitions.
845
846 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
847             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
848             Anna Tikhonova  <anna.tikhonova@intel.com>
849             Ilya Tocar  <ilya.tocar@intel.com>
850             Andrey Turetskiy  <andrey.turetskiy@intel.com>
851             Ilya Verbin  <ilya.verbin@intel.com>
852             Kirill Yukhin  <kirill.yukhin@intel.com>
853             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
854
855         * config/i386/sse.md
856         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
857         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
858         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
859         "<avx2_avx512f>_permvar<mode><mask_name>".
860         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
861         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
862         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
863         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
864         Ditto.
865         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
866         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
867         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
868         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
869
870 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
871
872         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
873         V2DF, V4SF, DF, and DI modes.
874         (vsx_fmav2df2): Likewise.
875         (vsx_float_fix_<mode>2): Likewise.
876         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
877
878 2014-09-10  Xinliang David Li  <davidxl@google.com>
879
880         PR target/63209
881         * config/arm/arm.md (movcond_addsi): Handle case where source
882         and target operands are the same.
883
884 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
885
886         * final.c (this_is_asm_operands): Strengthen this variable from
887         rtx to const rtx_insn *.
888         * output.h (this_is_asm_operands): Likewise.
889         * rtl-error.c (location_for_asm): Strengthen param "insn" from
890         const_rtx to const rtx_insn *.
891         (diagnostic_for_asm): Likewise.
892         * rtl-error.h (error_for_asm): Likewise.
893         (warning_for_asm): Likewise.
894
895 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
896
897         * genextract.c (print_header): When writing out insn_extract to
898         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
899         * recog.h (insn_extract): Strengthen the param from rtx to
900         rtx_insn *.
901
902 2014-09-10  Mike Stump  <mikestump@comcast.net>
903
904         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
905         8.6.1.
906
907 2014-09-10  Martin Jambor  <mjambor@suse.cz>
908
909         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
910         (analyze): Do not set analyze flag if expand_thunk returns false;.
911         (create_wrapper): Likewise.
912         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
913
914 2014-09-10  Martin Jambor  <mjambor@suse.cz>
915
916         PR ipa/61654
917         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
918         new decl properly.  Analyze the new thunk if it is expanded.
919
920 2014-09-10  Andreas Schwab  <schwab@suse.de>
921
922         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
923         [USED_FOR_TARGET]: Define.
924
925 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
926
927         * config/mips/mips.c (mips_secondary_reload_class): Handle
928         regno < 0 case.
929
930 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
931
932         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
933         assignment.
934
935 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
936
937         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
938         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
939         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
940         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
941         flag_delete_null_pointer_checks for them.
942         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
943         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
944         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
945         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
946         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
947         stmt's iterator.
948         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
949         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
950         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
951         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
952         * doc/invoke.texi (-fsanitize=nonnull-attribute,
953         -fsanitize=returns-nonnull-attribute): Document.
954
955         * ubsan.h (struct ubsan_mismatch_data): Removed.
956         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
957         * ubsan.c (ubsan_source_location): For unknown locations,
958         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
959         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
960         Allow more than one location and arbitrary extra arguments passed
961         in ... instead of through MISMATCH pointer.
962         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
963         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
964         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
965         callers.
966
967 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
968             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
969             Anna Tikhonova  <anna.tikhonova@intel.com>
970             Ilya Tocar  <ilya.tocar@intel.com>
971             Andrey Turetskiy  <andrey.turetskiy@intel.com>
972             Ilya Verbin  <ilya.verbin@intel.com>
973             Kirill Yukhin  <kirill.yukhin@intel.com>
974             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
975
976         * config/i386/sse.md
977         (define_mode_iterator VI48F): New.
978         (define_insn "<avx512>_compress<mode>_mask"): Rename from
979         "avx512f_compress<mode>_mask" and update mode iterator.
980         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
981         "avx512f_compressstore<mode>_mask" and update mode iterator.
982         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
983         "avx512f_expand<mode>_maskz" and update mode iterator.
984         (define_insn "<avx512>_expand<mode>_mask"): Rename from
985         "avx512f_expand<mode>_mask" and update mode iterator.
986
987 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
988             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
989             Anna Tikhonova  <anna.tikhonova@intel.com>
990             Ilya Tocar  <ilya.tocar@intel.com>
991             Andrey Turetskiy  <andrey.turetskiy@intel.com>
992             Ilya Verbin  <ilya.verbin@intel.com>
993             Kirill Yukhin  <kirill.yukhin@intel.com>
994             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
995
996         * config/i386/i386.c
997         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
998         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
999         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
1000         avx512dq_rangepv4sf_mask.
1001         * config/i386/sse.md
1002         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
1003         UNSPEC_RANGE.
1004         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
1005         (define_insn "reduces<mode>"): Ditto.
1006         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
1007         Ditto.
1008         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
1009         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
1010         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
1011
1012 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1013             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1014             Anna Tikhonova  <anna.tikhonova@intel.com>
1015             Ilya Tocar  <ilya.tocar@intel.com>
1016             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1017             Ilya Verbin  <ilya.verbin@intel.com>
1018             Kirill Yukhin  <kirill.yukhin@intel.com>
1019             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1020
1021         * config/i386/i386.c
1022         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
1023         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
1024         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
1025         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
1026         avx512vl_getmantv2df_mask.
1027         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
1028         avx512f_vgetmantv4sf_round.
1029         * config/i386/sse.md
1030         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
1031         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
1032         mode iterator.
1033         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
1034         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
1035         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
1036         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
1037         iterator..
1038         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
1039         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
1040         update mode iterator.
1041         (define_expand
1042         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
1043         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
1044         mode iterator.
1045         (define_insn
1046         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
1047         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
1048         update mode iterator.
1049         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
1050         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
1051         iterator..
1052         (define_insn
1053         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
1054         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
1055         mode iterator..
1056         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
1057         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
1058         update mode iterator.
1059         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
1060         "avx512f_getmant<mode><round_saeonly_name>".
1061
1062 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
1063
1064         PR ipa/63166
1065         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
1066
1067 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1068             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1069             Anna Tikhonova  <anna.tikhonova@intel.com>
1070             Ilya Tocar  <ilya.tocar@intel.com>
1071             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1072             Ilya Verbin  <ilya.verbin@intel.com>
1073             Kirill Yukhin  <kirill.yukhin@intel.com>
1074             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1075
1076         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
1077         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
1078         (define_mode_iterator FMAMODE_AVX512): New.
1079         (define_mode_iterator FMAMODE): Remove conditions.
1080         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
1081         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
1082         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
1083         mode iterator.
1084         (define_mode_iterator FMAMODE_NOVF512): Remove.
1085         (define_insn "*fma_fmadd_<mode>"): Rename from
1086         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
1087         FMAMODE mode iterator.
1088         (define_mode_iterator VF_SF_AVX512VL): New.
1089         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
1090         Use VF_SF_AVX512VL mode iterator.
1091         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
1092         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
1093         iterator.
1094         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
1095         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1096         iterator.
1097         (define_insn "*fma_fmsub_<mode>"): Rename from
1098         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
1099         FMAMODE mode iterator.
1100         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
1101         Use VF_SF_AVX512VL mode iterator.
1102         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
1103         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
1104         iterator.
1105         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
1106         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1107         iterator.
1108         (define_insn "*fma_fnmadd_<mode>"): Rename from
1109         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
1110         use FMAMODE mode iterator.
1111         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
1112         Use VF_SF_AVX512VL mode iterator.
1113         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
1114         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
1115         iterator.
1116         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
1117         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1118         iterator.
1119         (define_insn "*fma_fnmsub_<mode>"): Rename from
1120         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
1121         FMAMODE mode iterator.
1122         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
1123         Use VF_SF_AVX512VL mode iterator.
1124         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
1125         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
1126         iterator.
1127         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
1128         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1129         iterator.
1130         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
1131         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
1132         use VF_AVX512VL mode iterator.
1133         (define_insn "*fma_fmaddsub_<mode>"): Rename from
1134         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
1135         remove subst usage.
1136         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
1137         Use VF_SF_AVX512VL mode iterator.
1138         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
1139         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
1140         iterator.
1141         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
1142         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1143         iterator.
1144         (define_insn "*fma_fmsubadd_<mode>"): Rename from
1145         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
1146         remove usage of subst.
1147         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
1148         Use VF_SF_AVX512VL mode iterator.
1149         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
1150         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
1151         iterator.
1152         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
1153         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1154         iterator.
1155
1156 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
1157
1158         Revert r213751:
1159         * calls.c (precompute_arguments): Check
1160          promoted_for_signed_and_unsigned_p and set the promoted mode.
1161         (promoted_for_signed_and_unsigned_p): New function.
1162         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
1163         and set the promoted mode.
1164         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
1165         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
1166         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
1167
1168 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1169
1170         * opth-gen.awk: Generate mapping from cpp message reasons to the
1171         options that enable them.
1172         * doc/options.texi (CppReason): Document.
1173
1174 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1175
1176         * doc/invoke.texi (Wnormalized=): Update.
1177
1178 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
1179
1180         PR target/63195
1181         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
1182         operands.  Split off the constant operand alternative to ...
1183         (*bool<mode>3_imm): New.
1184
1185 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1186
1187         * rtl.h (single_set_2): Strengthen first param from const_rtx to
1188         const rtx_insn *, and move prototype to above...
1189         (single_set): ...this.  Convert this from a macro to an inline
1190         function, enforcing the requirement that the param is a const
1191         rtx_insn *.
1192         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
1193
1194         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
1195         Strengthen both params from rtx to rtx_insn *.
1196         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
1197         Likewise; introduce locals "producer_set", "consumer_set", using
1198         them in place of "producer" and "consumer" when dealing with SET
1199         rather than insn.
1200         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
1201         when invoking single_set in region guarded by INSN_P.
1202         (avr_out_bitop): Likewise.
1203         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
1204         region guarded by GET_CODE check, using methods to strengthen
1205         local "this_insn" from rtx to rtx_insn *, and for clarity.
1206         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
1207         Strengthen local "insn" from rtx to rtx_insn *.
1208         (define_insn_and_split "xload<mode>_A"): Likewise.
1209         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
1210         "insn".
1211         (find_load): Likewise for return type.
1212         (workaround_speculation): Likewise for both locals named
1213         "load_insn".
1214         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
1215         local "cc0_user".
1216         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
1217         for local "prev".
1218         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
1219         param 2.
1220         * config/h8300/h8300.c (notice_update_cc): Likewise.
1221         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
1222         "insn" and "dep_insn".
1223         (exact_store_load_dependency): Likewise for both params.
1224         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
1225         since this now clashes with inline function.  Instead, delay
1226         calling single_set until the point where its needed, and then
1227         assign the result to "compare_set" and rework the conditional that
1228         follows.
1229         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
1230         local "last" from rtx to rtx_insn *.
1231         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
1232         second param.
1233         (mips_store_data_bypass_p): Likewise for both params.
1234         * config/mips/mips.c (mips_load_store_insns): Likewise for second
1235         param.
1236         (mips_store_data_bypass_p): Likewise for both params.
1237         (mips_orphaned_high_part_p): Likewise for param "insn".
1238         * config/mn10300/mn10300.c (extract_bundle): Likewise.
1239         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
1240         Introduce local rtx "insn2_pat".
1241         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
1242         "ninsn".
1243         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
1244         Introduce local rtx "set", using it in place of "insn" for the
1245         result of single_set.  This appears to fix a bug, since the call
1246         to find_regno_note on a SET does nothing.
1247         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
1248         params from rtx to rtx_insn *.
1249         (set_to_load_agen): Likewise.
1250         * config/s390/s390.c (s390_label_align): Likewise for local
1251         "prev_insn".  Introduce new rtx locals "set" and "src", using
1252         them in place of "prev_insn" for the results of single_set
1253         and SET_SRC respectively.
1254         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
1255         Introduce new rtx local "set" using in place of "jump" for the
1256         result of single_set.  Use SET_SRC (set) rather than plain
1257         XEXP (set, 1).
1258         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
1259         rtx to rtx_insn *.
1260         (noncall_uses_reg): Likewise.
1261         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
1262         guarded by GET_CODE check, using its methods for clarity, and to
1263         enable strengthening local "this_insn" from rtx to rtx_insn *.
1264         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
1265         "insn" from rtx to rtx_insn *.
1266         (define_expand "umulhisi3"): Likewise.
1267         (define_expand "smulsi3_highpart"): Likewise.
1268         (define_expand "umulsi3_highpart"): Likewise.
1269         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
1270         local "after".  Replace GET_CODE check with a dyn_cast,
1271         introducing new local rtx_sequence * "seq", using insn method for
1272         typesafety.
1273
1274         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
1275         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
1276         place of "insn" once we're dealing with patterns rather than the
1277         input insn.
1278         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
1279         (scan_trace): Likewise for local "elt", updating lookups within
1280         sequence to use insn method rather than element method.
1281         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
1282         to rtx_insn *.
1283         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
1284         * ifcvt.c (noce_try_abs): Likewise for local "insn".
1285         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
1286         invoking single_set.
1287         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
1288         "insn" from rtx to rtx_insn *.
1289         (skip_usage_debug_insns): Likewise for return type, adding a
1290         checked cast.
1291         (check_secondary_memory_needed_p): Likewise for local "insn".
1292         (inherit_reload_reg): Likewise.
1293         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
1294         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
1295         checked casts.
1296         (store_data_bypass_p): Likewise for both params.
1297         (if_test_bypass_p): Likewise.
1298         * recog.h (store_data_bypass_p): Likewise for both params.
1299         (if_test_bypass_p): Likewise.
1300         * reload.c (find_equiv_reg): Likewise for local "where".
1301         * reorg.c (delete_jump): Likewise for param "insn".
1302         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
1303         to const rtx_insn *.
1304         * store-motion.c (replace_store_insn): Likewise for param "del".
1305         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
1306         and use its methods for clarity, and to strengthen local "del"
1307         from rtx to rtx_insn *.
1308         (build_store_vectors): Use insn method of "st" when calling
1309         replace_store_insn for typesafety and clarity.
1310
1311 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1312
1313         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
1314         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
1315         on how to make it legal in future.
1316
1317 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1318
1319         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
1320         to rtx_insn *.
1321         (restinsn): Likewise.
1322         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
1323         Likewise for param.
1324         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
1325         Likewise.
1326         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
1327         first param.
1328         (arc_hazard): Likewise for both params.
1329         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
1330         checked casts to rtx_sequence * and uses of the insn method for
1331         type-safety.
1332         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
1333         (arc_adjust_insn_length): Likewise for param "insn".
1334         (struct insn_length_parameters_s): Likewise for first param of
1335         "get_variants" callback field.
1336         (arc_get_insn_variants): Likewise for first param and local
1337         "inner".  Replace a check of GET_CODE with a dyn_cast to
1338         rtx_sequence *, using methods for type-safety and clarity.
1339         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
1340         rtx_sequence * and uses of the insn method for type-safety when
1341         invoking arc_adjust_insn_length.
1342         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
1343         for param.
1344         (arm_address_offset_is_imm): Likewise.
1345         (struct tune_params): Likewise for params 1 and 3 of the
1346         "sched_adjust_cost" callback field.
1347         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
1348         params 1 and 3 ("insn" and "dep").
1349         (xscale_sched_adjust_cost): Likewise.
1350         (fa726te_sched_adjust_cost): Likewise.
1351         (cortexa7_older_only): Likewise for param "insn".
1352         (cortexa7_younger): Likewise.
1353         (arm_attr_length_move_neon): Likewise.
1354         (arm_address_offset_is_imm): Likewise.
1355         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
1356         * config/avr/avr.c (avr_notice_update_cc): Likewise.
1357         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
1358         (workaround_speculation): Likewise for local "last_condjump".
1359         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
1360         (shadow_or_blockage_p): Likewise.
1361         (get_unit_reqs): Likewise.
1362         (get_unit_operand_masks): Likewise.
1363         (c6x_registers_update): Likewise.
1364         (returning_call_p): Likewise.
1365         (can_use_callp): Likewise.
1366         (convert_to_callp): Likewise.
1367         (find_last_same_clock): Likwise for local "t".
1368         (reorg_split_calls): Likewise for local "shadow".
1369         (hwloop_pattern_reg): Likewise for param "insn".
1370         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
1371         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
1372         (frv_extract_membar): Likewise.
1373         (frv_optimize_membar_local): Strengthen param "last_membar" from
1374         rtx * to rtx_insn **.
1375         (frv_optimize_membar_global): Strengthen param "membar" from rtx
1376         to rtx_insn *.
1377         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
1378         to rtx_insn **.
1379         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
1380         both params from rtx to rtx_insn *.
1381         (ia64_ld_address_bypass_p): Likewise.
1382         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
1383         "insn".
1384         (ia64_safe_type): Likewise.
1385         (group_barrier_needed): Likewise.
1386         (safe_group_barrier_needed): Likewise.
1387         (ia64_single_set): Likewise.
1388         (is_load_p): Likewise.
1389         (record_memory_reference): Likewise.
1390         (get_mode_no_for_insn): Likewise.
1391         (important_for_bundling_p): Likewise.
1392         (unknown_for_bundling_p): Likewise.
1393         (ia64_st_address_bypass_p): Likewise for both params.
1394         (ia64_ld_address_bypass_p): Likewise.
1395         (expand_vselect): Introduce new local rtx_insn * "insn", using it
1396         in place of rtx "x" after the emit_insn call.
1397         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
1398         Strengthen param from rtx to rtx_insn *.
1399         (ix86_agi_dependent): Likewise for both params.
1400         (ix86_attr_length_immediate_default): Likewise for param 1.
1401         (ix86_attr_length_address_default): Likewise for param.
1402         (ix86_attr_length_vex_default): Likewise for param 1.
1403         * config/i386/i386.c (ix86_attr_length_immediate_default):
1404         Likewise for param "insn".
1405         (ix86_attr_length_address_default): Likewise.
1406         (ix86_attr_length_vex_default): Likewise.
1407         (ix86_agi_dependent): Likewise for both params.
1408         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
1409         (vselect_insn): Likewise for this variable.
1410         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
1411         for param 1.
1412         (m68k_sched_attr_opy_type): Likewise.
1413         * config/m68k/m68k.c (sched_get_operand): Likewise.
1414         (sched_attr_op_type): Likewise.
1415         (m68k_sched_attr_opx_type): Likewise.
1416         (m68k_sched_attr_opy_type): Likewise.
1417         (sched_get_reg_operand): Likewise.
1418         (sched_get_mem_operand): Likewise.
1419         (m68k_sched_address_bypass_p): Likewise for both params.
1420         (sched_get_indexed_address_scale): Likewise.
1421         (m68k_sched_indexed_address_bypass_p): Likewise.
1422         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
1423         (m68k_sched_indexed_address_bypass_p): Likewise.
1424         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
1425         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
1426         removing another.
1427         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
1428         params from rtx to rtx_insn *.
1429         (mips_fmadd_bypass): Likewise.
1430         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
1431         (mips_linked_madd_p): Likewise.
1432         (mips_macc_chains_last_hilo): Likewise for this variable.
1433         (mips_macc_chains_record): Likewise for param.
1434         (vr4130_last_insn): Likewise for this variable.
1435         (vr4130_swap_insns_p): Likewise for both params.
1436         (mips_ls2_variable_issue): Likewise for param.
1437         (mips_need_noat_wrapper_p): Likewise for param "insn".
1438         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
1439         in place of "x" after the emit_insn.
1440         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
1441         params from rtx to rtx_insn *.
1442         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
1443         (pa_combine_instructions): Introduce local "par" for result of
1444         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
1445         to make_insn_raw.
1446         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
1447         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
1448         (rl78_alloc_physical_registers_op1): Likewise.
1449         (rl78_alloc_physical_registers_op2): Likewise.
1450         (rl78_alloc_physical_registers_ro1): Likewise.
1451         (rl78_alloc_physical_registers_cmp): Likewise.
1452         (rl78_alloc_physical_registers_umul): Likewise.
1453         (rl78_alloc_address_registers_macax): Likewise.
1454         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
1455         * config/s390/predicates.md (execute_operation): Likewise for
1456         local "insn".
1457         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
1458         params.
1459         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
1460         (addr_generation_dependency_p): Likewise for param "insn".
1461         (s390_agen_dep_p): Likewise for both params.
1462         (s390_fpload_toreg): Likewise for param "insn".
1463         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
1464         * config/sh/sh.c (sh_loop_align): Likewise for param and local
1465         "next".
1466         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
1467         * config/sh/sh_treg_combine.cc
1468         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
1469         and local "i".
1470         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
1471         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
1472         "and_insn", "load", "shift".
1473         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
1474         "insn".
1475         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
1476         for XEXP (note, 0) of the REG_CC_SETTER note.
1477         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
1478         rtx_insn *, eliminating a checked cast made redundant by this.
1479         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
1480         to rtx_insn *.
1481         * genattr.c (main): When writing out the prototype to
1482         const_num_delay_slots, strengthen the param from rtx to
1483         rtx_insn *.
1484         * genattrtab.c (write_const_num_delay_slots): Likewise when
1485         writing out the implementation of const_num_delay_slots.
1486         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
1487         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
1488         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
1489         favor of new rtx locals "src" and "set" and new local rtx_insn *
1490         "insn" and "seq".
1491         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
1492         to rtx_insn *.
1493         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
1494         locals "cond", "if_then_else", "set" and new rtx_insn * locals
1495         "insn" and "seq".
1496         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
1497         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
1498         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
1499         the top-level scope, replacing with new more tightly-scoped rtx
1500         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
1501         "new_insn", "copy_of_insn_b", and make local rtx "set" more
1502         tightly-scoped.
1503         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
1504         rtx_insn *.
1505         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
1506         "move_insn".
1507         (ira_setup_alts): Likewise for param "insn".
1508         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
1509         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
1510         and an rtx_insn *.
1511         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
1512         new more-tightly scoped rtx locals "add3_insn", "insn",
1513         "add2_insn" and rtx_insn * "move_insn".
1514         * postreload-gcse.c (eliminate_partially_redundant_load): Add
1515         checked cast on result of gen_move_insn when invoking
1516         extract_insn.
1517         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
1518         rtx_insn *.
1519         (verify_changes): Add a checked cast on "object" when invoking
1520         insn_invalid_p.
1521         (extract_insn_cached): Strengthen param "insn" from rtx to
1522         rtx_insn *.
1523         (extract_constrain_insn_cached): Likewise.
1524         (extract_insn): Likewise.
1525         * recog.h (insn_invalid_p): Likewise for param 1.
1526         (recog_memoized): Likewise for param.
1527         (extract_insn): Likewise.
1528         (extract_constrain_insn_cached): Likewise.
1529         (extract_insn_cached): Likewise.
1530         * reload.c (can_reload_into): Likewise for local "test_insn".
1531         * reload.h (cleanup_subreg_operands): Likewise for param.
1532         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
1533         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
1534         result of emit_insn.  Remove a checked cast made redundant by this
1535         change.
1536         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
1537         rtx to rtx_insn *.
1538         * sel-sched.c (get_reg_class): Likewise.
1539
1540 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1541         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1542
1543          * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
1544          * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
1545         Define.
1546         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
1547
1548 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1549
1550         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
1551         const rtx_insn *, and from rtx to rtx_insn * for the other
1552         overloaded variant.
1553         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
1554         INSN_LOCATION, since we know INSN_P holds.
1555         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
1556         (insn_file): Likewise.
1557         (insn_scope): Likewise.
1558         (insn_location): Likewise.
1559
1560         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
1561         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
1562         for the result of gen_load_const_gp.
1563         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
1564         param from rtx to rtx_insn *.
1565         * config/rs6000/rs6000.c (output_call): Likewise.
1566         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
1567         introducing a checked cast to rtx_sequence * and use of the insn
1568         method.
1569         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
1570         from rtx to rtx_insn *.
1571         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
1572         (insn_line): Likewise.
1573         (insn_file): Likewise.
1574         (insn_location): Likewise.
1575         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
1576         from rtx to rtx_insn *.
1577         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
1578         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
1579         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
1580         via a checked cast.
1581         * reorg.c (relax_delay_slots): Strengthen locals named "after"
1582         from rtx to rtx_insn *; use methods of "pat" for type-safety.
1583
1584 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1585
1586         * combine.c (try_combine): Eliminate checked cast on result of
1587         gen_rtx_INSN.
1588         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
1589         autogenerated one by strengthening the return type and params 2 and 3
1590         from rtx to rtx_insn *, and by naming the params.
1591         * gengenrtl.c (special_rtx): Add INSN to those that are
1592         special-cased.
1593         * rtl.h (gen_rtx_INSN): New prototype.
1594
1595 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1596
1597         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
1598         than NULL_RTX.
1599         (no_equiv): Likewise.
1600         (update_equiv_regs): Likewise.
1601         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
1602         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
1603         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
1604         clarity.
1605         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
1606         from rtx to rtx_insn_list *.
1607         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
1608         rtx_insn_list * and use methods for clarity and typesafety.
1609         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
1610         "list".
1611         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
1612         redundant check on INSN_P (insns): this cannot hold, as "insns" is
1613         an INSN_LIST, not an insn.
1614         (reverse_equiv_p): Strengthen local "insns" from rtx to
1615         rtx_insn_list * and use methods for clarity and typesafety.
1616         (contains_reloaded_insn_p): Likewise for local "list".
1617
1618 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
1619
1620         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
1621         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
1622         (arm_builtin_vectorized_function): Likewise.
1623         * config/arm/arm_neon_builtins.def: New macro for copysignf.
1624         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
1625
1626 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
1627
1628         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
1629         * builtins.h (default_target_builtins): Likewise.
1630         * gcse.h (default_target_gcse): Likewise.
1631         * target-globals.h (target_globals): Add a destructor.  Convert
1632         void-pointer fields back to their real type and change from
1633         GTY((atomic)) to GTY((skip)).
1634         (restore_target_globals): Remove casts accordingly.
1635         * target-globals.c (save_target_globals): Use XCNEW rather than
1636         ggc_internal_cleared_alloc to allocate non-GC structures.
1637         Use ggc_cleared_alloc to allocate the target_globals structure
1638         itself.
1639         (target_globals::~target_globals): Define.
1640
1641 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1642
1643         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
1644         mnemonic instead of fldmfdd.
1645         * config/arm/arm.c (vfp_output_fstmd): Rename to...
1646         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
1647         Output vpush when address register is SP.
1648         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
1649         (vfp_output_vstmd): ... This.
1650         * config/arm/vfp.md (push_multi_vfp): Update call to
1651         vfp_output_vstmd.
1652
1653 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1654
1655         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
1656
1657 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1658
1659         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
1660         (*sqrtdf2_vfp): Likewise.
1661         (*cmpsf_vfp): Likewise.
1662         (*cmpsf_trap_vfp): Likewise.
1663         (*cmpdf_vfp): Likewise.
1664         (*cmpdf_trap_vfp): Likewise.
1665
1666 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1667
1668         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
1669         (*truncdfsf2_vfp): Likewise.
1670         (*truncsisf2_vfp): Likewise.
1671         (*truncsidf2_vfp): Likewise.
1672         (fixuns_truncsfsi2): Likewise.
1673         (fixuns_truncdfsi2): Likewise.
1674         (*floatsisf2_vfp): Likewise.
1675         (*floatsidf2_vfp): Likewise.
1676         (floatunssisf2): Likewise.
1677         (floatunssidf2): Likewise.
1678
1679 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1680
1681         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
1682         (*muldf3_vfp): Likewise.
1683         (*mulsf3negsf_vfp): Likewise.
1684         (*muldf3negdf_vfp): Likewise.
1685         (*mulsf3addsf_vfp): Likewise.
1686         (*muldf3adddf_vfp): Likewise.
1687         (*mulsf3subsf_vfp): Likewise.
1688         (*muldf3subdf_vfp): Likewise.
1689         (*mulsf3negsfaddsf_vfp): Likewise.
1690         (*fmuldf3negdfadddf_vfp): Likewise.
1691         (*mulsf3negsfsubsf_vfp): Likewise.
1692         (*muldf3negdfsubdf_vfp): Likewise.
1693
1694 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1695
1696         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
1697         (*absdf2_vfp): Likewise.
1698         (*negsf2_vfp): Likewise.
1699         (*negdf2_vfp): Likewise.
1700         (*addsf3_vfp): Likewise.
1701         (*adddf3_vfp): Likewise.
1702         (*subsf3_vfp): Likewise.
1703         (*subdf3_vfp): Likewise.
1704         (*divsf3_vfp): Likewise.
1705         (*divdf3_vfp): Likewise.
1706
1707 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1708
1709         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
1710         multiple.
1711         (arm_print_operand): Don't convert real values to decimal
1712         representation in default case.
1713         (fp_immediate_constant): Delete.
1714         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
1715         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
1716         syntax.
1717         (*thumb2_movsi_vfp): Likewise.
1718         (*movdi_vfp): Likewise.
1719         (*movdi_vfp_cortexa8): Likewise.
1720         (*movhf_vfp_neon): Likewise.
1721         (*movhf_vfp): Likewise.
1722         (*movsf_vfp): Likewise.
1723         (*thumb2_movsf_vfp): Likewise.
1724         (*movdf_vfp): Likewise.
1725         (*thumb2_movdf_vfp): Likewise.
1726         (*movsfcc_vfp): Likewise.
1727         (*thumb2_movsfcc_vfp): Likewise.
1728         (*movdfcc_vfp): Likewise.
1729         (*thumb2_movdfcc_vfp): Likewise.
1730
1731 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
1732
1733         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
1734         (-mtune): Likewise.
1735         (-mcpu): Likewise.
1736
1737 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1738
1739         PR target/61749
1740         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
1741         Use qualifier_immediate for last operand.  Rename to...
1742         (aarch64_types_ternop_lane_qualifiers): ... This.
1743         (TYPES_QUADOP): Rename to...
1744         (TYPES_TERNOP_LANE): ... This.
1745         (aarch64_simd_expand_args): Return const0_rtx when encountering user
1746         error.  Change return of 0 to return of NULL_RTX.
1747         (aarch64_crc32_expand_builtin): Likewise.
1748         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
1749         ICE when expanding unknown builtin.
1750         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
1751         TERNOP_LANE qualifiers.
1752         (sqdmlsl_lane): Likewise.
1753         (sqdmlal_laneq): Likewise.
1754         (sqdmlsl_laneq): Likewise.
1755         (sqdmlal2_lane): Likewise.
1756         (sqdmlsl2_lane): Likewise.
1757         (sqdmlal2_laneq): Likewise.
1758         (sqdmlsl2_laneq): Likewise.
1759
1760 2014-09-09  Nick Clifton  <nickc@redhat.com>
1761
1762         * doc/invoke.texi (Optimization Options): Add missing @gol to the
1763         end of a line.
1764         (S/390 and zSeries Options): Remove superfluous word from the
1765         description of the -mhotpatch option.
1766
1767 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
1768
1769         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
1770         * ira.c: #include "shrink-wrap.h"
1771         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
1772         * ifcvt.c: #include "shrink-wrap.h"
1773         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
1774
1775 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
1776
1777         * common/config/picochip/picochip-common.c: Remove.
1778         * config.gcc: Remove support for picochip.
1779         * config/picochip/constraints.md: Remove.
1780         * config/picochip/dfa_space.md: Remove.
1781         * config/picochip/dfa_speed.md: Remove.
1782         * config/picochip/picochip-protos.h: Remove.
1783         * config/picochip/picochip.c: Remove.
1784         * config/picochip/picochip.h: Remove.
1785         * config/picochip/picochip.md: Remove.
1786         * config/picochip/picochip.opt: Remove.
1787         * config/picochip/predicates.md: Remove.
1788         * config/picochip/t-picochip: Remove.
1789         * doc/md.texi: Don't document picochi.
1790
1791 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
1792
1793         * basic-block.h (control_flow_insn_p): Strengthen param from
1794         const_rtx to const rtx_insn *.
1795         * cfgbuild.c (control_flow_insn_p): Likewise.
1796
1797 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
1798
1799         * gcse.c (modify_mem_list): Strengthen this variable from
1800         vec<rtx> * to vec<rtx_insn *> *.
1801         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
1802         vec<rtx_insn *>.
1803         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
1804         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
1805         (record_last_mem_set_info): Strengthen param "insn" from rtx to
1806         rtx_insn *.
1807         (record_last_set_info): Likewise for local "last_set_insn".
1808
1809 2014-09-08  DJ Delorie  <dj@redhat.com>
1810
1811         * doc/invoke.texi (MSP430 Options): Add -minrt.
1812
1813 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1814
1815         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
1816         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
1817         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
1818         handling SH_SPLAT.
1819         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
1820         of extracted lane.
1821         (adjust_splat): New function.
1822         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
1823         (dump_swap_insn_table): Add case for SH_SPLAT.
1824
1825 2014-09-08  Richard Biener  <rguenther@suse.de>
1826
1827         PR ipa/63196
1828         * tree-inline.c (copy_loops): The source loop header should
1829         always be non-NULL.
1830         (tree_function_versioning): If loops need fixup after removing
1831         unreachable blocks fix them.
1832         * omp-low.c (simd_clone_adjust): Do not add incr block to
1833         loop under construction.
1834
1835 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
1836
1837         * config/aarch64/aarch64-builtins.c
1838         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
1839
1840 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
1841
1842         * config/i386/cygming.h (TF_SIZE): Remove.
1843         * config/i386/darwin.h (TF_SIZE): Remove.
1844         * config/i386/dragonfly.h (TF_SIZE): Remove.
1845         * config/i386/freebsd.h (TF_SIZE): Remove.
1846         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
1847         * config/i386/openbsdelf.h (TF_SIZE): Remove.
1848         * config/i386/sol2.h (TF_SIZE): Remove.
1849         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
1850         * config/ia64/linux.h (TF_SIZE): Remove.
1851         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
1852         * doc/tm.texi: Regenerate.
1853         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
1854
1855 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
1856
1857         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
1858         Remove.
1859         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
1860         Remove.
1861         * doc/tm.texi: Regenerate.
1862         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
1863         Poison.
1864         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
1865         * config/cris/cris.h (__make_dp): Remove.
1866
1867 2014-09-08  Richard Biener  <rguenther@suse.de>
1868
1869         PR bootstrap/63204
1870         * cfgloop.c (mark_loop_for_removal): Track former header
1871         unconditionally.
1872         * cfgloop.h (struct loop): Add former_header member unconditionally.
1873         * loop-init.c (fix_loop_structure): Enable bogus loop removal
1874         diagnostic unconditionally.
1875
1876 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
1877
1878         PR target/63190
1879         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
1880         constraint for operand0 and remove write only modifier from operand3.
1881
1882 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
1883
1884         PR rtl-optimization/62208
1885         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
1886         rather than const0_rtx in eq/ne-xor simplifications.
1887
1888 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
1889
1890         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
1891         (arc_output_mi_thunk): Likewise.
1892
1893         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
1894         arguments to silence bogus warning.
1895
1896 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
1897
1898         PR middle-end/63171
1899         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
1900
1901 2014-09-06  Tom de Vries  <tom@codesourcery.com>
1902
1903         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
1904         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
1905         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
1906
1907 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
1908
1909         PR target/63188
1910         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
1911         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
1912
1913 2014-09-05  Easwaran Raman  <eraman@google.com>
1914
1915         PR rtl-optimization/62146
1916         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
1917         hoisted instruction unconditional.
1918
1919 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
1920
1921         PR target/63187
1922         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
1923         Do not allow any_mask_operand for operands[2].
1924         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
1925
1926 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
1927
1928         * config/arc/arc.c (arc_print_operand): Use insn method of
1929         final_sequence for type-safety.
1930         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
1931         "insn" from rtx to rtx_insn *.
1932         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
1933         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
1934         Likewise for locals "branch", "label".
1935         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
1936         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
1937         (same_cmp_following_p): Likewise for locals "i2", "i3".
1938         * config/sh/sh_optimize_sett_clrt.cc
1939         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
1940         param "cbranch_insn".
1941         * function.c (convert_jumps_to_returns): Likewis for local "jump".
1942         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
1943         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
1944         const rtx_insn *.
1945         (condjump_p): Likewise.
1946         (condjump_in_parallel_p): Likewise.
1947         (pc_set): Likewise.
1948         (any_uncondjump_p): Likewise.
1949         (any_condjump_p): Likewise.
1950         (condjump_label): Likewise.
1951         (returnjump_p): Strengthen param "insn" from rtx to
1952         const rtx_insn *.
1953         (onlyjump_p): Strengthen param "insn" from const_rtx to
1954         const rtx_insn *.
1955         (jump_to_label_p): Likewise.
1956         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
1957         (invert_jump): Likewise.
1958         * reorg.c (simplejump_or_return_p): Add checked cast when calling
1959         simplejump_p.
1960         (get_jump_flags): Strengthen param "insn" from rtx to
1961         const rtx_insn *.
1962         (get_branch_condition): Likewise.
1963         (condition_dominates_p): Likewise.
1964         (make_return_insns): Move declaration of local "pat" earlier, to
1965         after we've handled NONJUMP_INSN_P and non-sequences, using its
1966         methods to simplify the code and for type-safety.
1967         * rtl.h (find_constant_src): Strengthen param from const_rtx to
1968         const rtx_insn *.
1969         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
1970         (condjump_p): Strengthen param from const_rtx to
1971         const rtx_insn *.
1972         (any_condjump_p): Likewise.
1973         (any_uncondjump_p): Likewise.
1974         (pc_set): Likewise.
1975         (condjump_label): Likewise.
1976         (simplejump_p): Likewise.
1977         (returnjump_p): Likewise.
1978         (onlyjump_p): Likewise.
1979         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
1980         (invert_jump): Likewise.
1981         (condjump_in_parallel_p): Strengthen param from const_rtx to
1982         const rtx_insn *.
1983         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
1984         to const rtx_insn *.
1985         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
1986         to const rtx_insn *.
1987         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
1988
1989 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
1990
1991         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
1992         above the conditional, and convert the check on GET_CODE to a
1993         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
1994         the conditional.  Simplify the conditional by using methods of
1995         "trial_seq".
1996
1997 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
1998
1999         * haifa-sched.c (check_clobbered_conditions): Strengthen local
2000         "link" from rtx to rtx_insn_list *, and use its methods for
2001         clarity and type-safety.
2002         (toggle_cancelled_flags): Likewise.
2003         (restore_last_backtrack_point): Likewise.
2004         (queue_to_ready): Use insn method of "link" in one place.
2005         (schedule_block): Strengthen local "link" from rtx to
2006         rtx_insn_list *, and use its methods for clarity and type-safety.
2007
2008 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2009
2010         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
2011         param "insn" from const_rtx to const rtx_insn *.
2012         (sched_get_reverse_condition_uncached): Likewise.
2013         (sched_get_condition_with_rev): Likewise.
2014         (sched_has_condition_p): Likewise.
2015         (sched_insns_conditions_mutex_p): Likewise for both params.
2016         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
2017         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
2018         (setup_insn_reg_uses): Move local "list" to be more tightly
2019         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
2020         its methods for clarity and type-safety.
2021         (sched_analyze_1): Strengthen local "pending" from rtx to
2022         rtx_insn_list *, and local "pending_mem" from rtx to
2023         rtx_expr_list *.  Use methods of each for clarity and type-safety.
2024         (sched_analyze_2): Likewise.
2025         (sched_analyze_insn): Likewise.
2026
2027         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
2028         param from const_rtx to const rtx_insn *.
2029         (sched_insns_conditions_mutex_p): Likewise for both params.
2030         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
2031         param.
2032
2033         * system.h (CONST_CAST_RTX_INSN): New macro.
2034
2035 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2036
2037         * recog.c (peep2_attempt): Strengthen return type from rtx to
2038         rtx_insn *.
2039         (peep2_update_life): Likewise for params "last", "prev", removing
2040         a checked cast made redundant by this.
2041         (peephole2_optimize): Likewise for local "last".
2042
2043 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2044
2045         * basic-block.h (set_block_for_insn): Eliminate this macro in
2046         favor of...
2047         * rtl.h (set_block_for_insn): New inline function, imposing the
2048         requirement that the "insn" param is an rtx_insn *.
2049
2050 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2051
2052         * caller-save.c (setup_save_areas): Strengthen local "insn" from
2053         rtx to rtx_insn *.
2054         * final.c (get_call_reg_set_usage): Likewise for first param,
2055         eliminating a checked cast.
2056         * regs.h (get_call_reg_set_usage): Likewise for first param.
2057         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
2058         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
2059         cast, replacing references to "x" with "call_insn" where
2060         appropriate.
2061         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
2062         rtx_insn *, adding a checked cast.
2063
2064 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2065
2066         * output.h (final_scan_insn): Strengthen first param from rtx to
2067         rtx_insn *.
2068
2069         * final.c (final_scan_insn): Likewise, renaming it back from
2070         "uncast_insn" to "insn", eliminating the checked cast.
2071
2072         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
2073         "vec" with an rtx_sequence * "seq", taking a copy of
2074         "final_sequence", and using methods of "seq" for clarity, and for
2075         type-safety in the calls to final_scan_insn.
2076         * config/mips/mips.c (mips_output_conditional_branch): Use methods
2077         of "final_sequence" for clarity, and for type-safety in the call to
2078         final_scan_insn.
2079         * config/sh/sh.c (print_slot): Strengthen param from rtx to
2080         rtx_sequence * and rename from "insn" to "seq".
2081
2082 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2083
2084         * jump.c (delete_related_insns): Introduce a new local "table" by
2085         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
2086         get_labels method of "table" to simplify access to the labels in
2087         the jump table.
2088
2089 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2090
2091         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
2092         f_minmaxs, f_minmaxd types.
2093
2094 2014-09-05  Richard Biener  <rguenther@suse.de>
2095
2096         * cfgloop.c (mark_loop_for_removal): Record former header
2097         when ENABLE_CHECKING.
2098         * cfgloop.h (strut loop): Add former_header member when
2099         ENABLE_CHECKING.
2100         * loop-init.c (fix_loop_structure): Sanity check loops
2101         marked for removal if they re-appeared.
2102
2103 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2104
2105         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
2106         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
2107
2108         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
2109         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
2110         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
2111         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
2112         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
2113         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
2114         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
2115         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
2116         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
2117         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
2118         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
2119         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
2120         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
2121         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
2122         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
2123         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
2124         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
2125         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
2126         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
2127         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
2128         with int{32,16,8}_t.
2129
2130 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2131
2132         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
2133         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
2134         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
2135         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
2136         Remove temporary __asm__ and reimplement.
2137
2138 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2139
2140         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
2141         handling cmge, cmgt, cmeq, cmtst.
2142
2143         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
2144         cmlt, cmgeu, cmgtu, cmtst): Remove.
2145
2146         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
2147         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
2148         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
2149         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
2150
2151 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2152
2153         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
2154         TYPES_TST): Define.
2155         (aarch64_fold_builtin): Update pattern for cmtst.
2156
2157         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
2158         Declare.
2159
2160         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
2161
2162         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
2163         Switch operands, separate out more cases, refactor.
2164
2165         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
2166
2167         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
2168         argument; rename old version to...
2169         (aarch64_const_vec_all_same_in_range_p): ...this.
2170         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
2171
2172         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
2173
2174 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2175
2176         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
2177         Remove qualifier_const_pointer, update comment.
2178
2179 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2180
2181         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
2182
2183 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2184
2185         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
2186         varargs with pointer parameter.
2187         (aarch64_simd_expand_builtin): pass pointer into previous.
2188
2189 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2190
2191         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
2192         alus_ext.
2193
2194 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2195
2196         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
2197         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
2198         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
2199         Replace temporary asm with call to builtin.
2200         (vrbit_p8, vrbitq_p8): New functions.
2201
2202 2014-09-05  Richard Biener  <rguenther@suse.de>
2203
2204         * cfgloop.c (mark_loop_for_removal): New function.
2205         * cfgloop.h (mark_loop_for_removal): Declare.
2206         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
2207         (merge_blocks): Likewise.
2208         (duplicate_block): Likewise.
2209         * except.c (sjlj_emit_dispatch_table): Likewise.
2210         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
2211         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
2212         (thread_through_loop_header): Likewise.
2213
2214 2014-09-05  Richard Biener  <rguenther@suse.de>
2215
2216         PR middle-end/63148
2217         * fold-const.c (try_move_mult_to_index): Remove.
2218         (fold_binary_loc): Do not call it.
2219         * tree-data-ref.c (dr_analyze_indices): Strip conversions
2220         from the base object again.
2221
2222 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
2223
2224         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
2225         DImode.
2226
2227 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
2228
2229         PR target/55701
2230         * config/arm/arm.md (setmem): New pattern.
2231         * config/arm/arm-protos.h (struct tune_params): New fields.
2232         (arm_gen_setmem): New prototype.
2233         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
2234         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
2235         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
2236         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
2237         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
2238         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
2239         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
2240         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
2241         (arm_const_inline_cost): New function.
2242         (arm_block_set_max_insns): New function.
2243         (arm_block_set_non_vect_profit_p): New function.
2244         (arm_block_set_vect_profit_p): New function.
2245         (arm_block_set_unaligned_vect): New function.
2246         (arm_block_set_aligned_vect): New function.
2247         (arm_block_set_unaligned_non_vect): New function.
2248         (arm_block_set_aligned_non_vect): New function.
2249         (arm_block_set_vect, arm_gen_setmem): New functions.
2250
2251 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
2252
2253         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
2254
2255 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
2256
2257         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
2258
2259 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2260
2261         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
2262         an rtx.
2263         * valtrack.h: Adjust.
2264
2265 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2266
2267         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
2268         an rtx.
2269         (emit_jump_insn_before_noloc): Likewise.
2270         (emit_call_insn_before_noloc): Likewise.
2271         (emit_label_before): Likewise.
2272         (emit_label_after): Likewise.
2273         (emit_insn_before_setloc): Likewise.
2274         (emit_jump_insn_before_setloc): Likewise.
2275         (emit_call_insn_before_setloc): Likewise.
2276         (emit_call_insn_before): Likewise.
2277         * rtl.h: Adjust.
2278
2279 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2280
2281         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
2282         rtx_insn *, eliminating a checked cast.
2283
2284 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2285
2286         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
2287         const_rtx to const rtx_insn *.
2288         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
2289         cast.
2290
2291 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2292
2293         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
2294         fixup_args_size_notes.
2295         * expr.c (fixup_args_size_notes): Strengthen first two params from
2296         rtx to rtx_insn *, eliminating a checked cast.
2297         * rtl.h (fixup_args_size_notes): Strengthen first two params from
2298         rtx to rtx_insn *.
2299
2300 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2301
2302         * haifa-sched.c (get_ready_element): Strengthen return type from
2303         rtx to rtx_insn *.
2304         * sched-int.h (get_ready_element): Likewise.
2305
2306 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
2307
2308         PR target/63165
2309         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
2310         indexed_or_indirect_operand instead of memory_operand.
2311         (floatsi<mode>2_lfiwzx_mem): Ditto.
2312
2313 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2314
2315         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
2316         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
2317         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
2318
2319 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2320
2321         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
2322         rtx.
2323         (get_last_nonnote_insn): Likewise.
2324         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
2325         * resource.c (find_basic_block): Likewise.
2326         * rtl.h: Adjust.
2327         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
2328         const_rtx.
2329
2330 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
2331
2332         * genattr.c (main): Within the prototype of insn_latency written
2333         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
2334         * genautomata.c (output_internal_maximal_insn_latency_func):
2335         Within the implementation of insn_latency written out to
2336         insn-automata.c, strengthen both params from rtx to rtx_insn *,
2337         eliminating a pair of checked casts.
2338
2339 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
2340
2341         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
2342         rtx_insn *.
2343
2344         * rtl.h (eh_returnjump_p): Likewise.
2345
2346 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
2347
2348         * Makefile.in (TAGS): Handle constructs in timevar.def.
2349
2350 2014-09-04  Guozhi Wei  <carrot@google.com>
2351
2352         PR target/62040
2353         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
2354         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
2355         it into two patterns.
2356         (move_lo_quad_internal_be_<mode>): Likewise.
2357
2358 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2359
2360         * doc/options.texi: Document that Var and Init are required if CPP
2361         is given.
2362         * optc-gen.awk: Require Var and Init if CPP is given.
2363         * common.opt (Wpedantic): Use Init.
2364
2365 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2366
2367         * config/rs6000/rs6000.c (special_handling_values): Add
2368         SH_EXTRACT.
2369         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
2370         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
2371         as swappable with special handling SH_EXTRACT.  Remove
2372         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
2373         optimization.
2374         (adjust_extract): New function.
2375         (handle_special_swappables): Add default to case statement; add
2376         case for SH_EXTRACT that calls adjust_extract.
2377         (dump_swap_insn_table): Handle SH_EXTRACT.
2378
2379 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2380
2381         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
2382         selection of 0th memory doubleword, regardless of endianness.
2383
2384 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2385
2386         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
2387
2388 2014-09-04  Alan Modra  <amodra@gmail.com>
2389
2390         PR debug/60655
2391         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
2392         can't be output.
2393
2394 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
2395
2396         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
2397         * targhooks.c (default_dwarf_frame_reg_mode): New function.
2398         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
2399         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
2400         * doc/tm.texi: Regenerate.
2401         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
2402         selection logic to default_dwarf_frame_reg_mode.
2403
2404 2014-09-03  Marek Polacek  <polacek@redhat.com>
2405
2406         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
2407         by -Wall.
2408
2409 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
2410
2411         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
2412         the automodified register.
2413
2414 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
2415
2416         * output.h (get_some_local_dynamic_name): Declare.
2417         * final.c (some_local_dynamic_name): New variable.
2418         (get_some_local_dynamic_name): New function.
2419         (final_end_function): Clear some_local_dynamic_name.
2420         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
2421         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
2422         (print_operand): Report an error if '%&' is used inappropriately.
2423         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
2424         (get_some_local_dynamic_name_1): Delete.
2425         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
2426         (rs6000_get_some_local_dynamic_name): Delete.
2427         (rs6000_get_some_local_dynamic_name_1): Delete.
2428         (print_operand): Report an error if '%&' is used inappropriately.
2429         * config/s390/s390.c (machine_function): Remove some_ld_name.
2430         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
2431         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
2432         * config/sparc/sparc.c: Include rtl-iter.h.
2433         (machine_function): Remove some_ld_name.
2434         (sparc_print_operand): Report an error if '%&' is used inappropriately.
2435         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
2436
2437 2014-09-03  Richard Henderson  <rth@redhat.com>
2438
2439         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
2440         (aarch64_popwb_pair_reg): Remove.
2441         (aarch64_set_frame_expr): Remove.
2442         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
2443         the restore ops performed by the insns generated.
2444         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
2445         insn.  Perform the calls_eh_return addition later; do not attempt to
2446         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
2447         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
2448         special markup at all.  Load cfun->machine->frame.hard_fp_offset
2449         into a local variable.
2450         (aarch64_frame_pointer_required): Don't check calls_alloca.
2451
2452 2014-09-03  Richard Biener  <rguenther@suse.de>
2453
2454         * opts.c (default_options_optimization): Adjust
2455         max-combine-insns to 2 for -Og.
2456
2457 2014-09-03  Martin Jambor  <mjambor@suse.cz>
2458
2459         PR ipa/62015
2460         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
2461         pass-trough jump functions correctly.
2462
2463 2014-09-03  Martin Jambor  <mjambor@suse.cz>
2464
2465         PR ipa/61986
2466         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
2467         created replacements in ascending order of offsets.
2468         (known_aggs_to_agg_replacement_list): Likewise.
2469
2470 2014-09-03  Martin Liska  <mliska@suse.cz>
2471
2472         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
2473         is set to set uninitialized value for vnresult.
2474
2475 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2476
2477         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
2478         for TARGET_MUST_PASS_IN_STACK.
2479
2480 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2481
2482         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
2483         for TARGET_ARG_PARTIAL_BYTES.
2484
2485 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2486
2487         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
2488         instructions for varargs implementation.
2489         (nds32_expand_epilogue): Emit stack adjustment instructions for
2490         varargs implementation.
2491
2492 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2493
2494         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
2495         optimization detection.
2496
2497 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2498
2499         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
2500         arguments.
2501         (nds32_function_arg_advance): Deal with nameless arguments.
2502         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
2503         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
2504         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
2505
2506 2014-09-03  Richard Biener  <rguenther@suse.de>
2507
2508         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
2509         (struct bb_bitmap_sets): Remove deferred member.
2510         (BB_DEFERRED): Remove.
2511         (defer_or_phi_translate_block): Remove.
2512         (compute_antic_aux): Remove deferring of blocks, assert
2513         proper iteration order.
2514         (compute_antic): Do not set BB_DEFERRED.
2515         (eliminate): Allocate el_avail of proper size initially.
2516
2517 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2518
2519         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
2520         according to the value of crtl->args.pretend_args_size.
2521
2522 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2523
2524         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
2525         varargs information.
2526
2527 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2528
2529         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
2530         implementation for TARGET_SETUP_INCOMING_VARARGS.
2531         (nds32_strict_argument_naming): Refine comment.
2532         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
2533         Define for future implementation.
2534
2535 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
2536
2537         * config/i386/adxintrin.h (_subborrow_u32): New.
2538         (_addcarry_u32): Ditto.
2539         (_subborrow_u64): Ditto.
2540         (_addcarry_u64): Ditto.
2541         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
2542         IX86_BUILTIN_SBB64.
2543         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
2544         __builtin_ia32_sbb_u64
2545
2546 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2547
2548         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
2549         GPR-specific stuff.
2550         (nds32_function_arg_advance): Likewise.
2551         (nds32_init_cumulative_args): Likewise.
2552         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
2553         (NDS32_FIRST_GPR_REGNUM): Define.
2554         (NDS32_LAST_GPR_REGNUM): Define.
2555         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
2556         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
2557         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
2558         (machine_function): Use GRP-specific stuff.
2559
2560 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2561
2562         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
2563         (nds32_expand_epilogue): Likewise.
2564         (nds32_expand_prologue_v3push): Likewise.
2565         (nds32_expand_epilogue_v3pop): Likewise.
2566
2567 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2568
2569         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
2570         v3push/v3pop for variadic function.
2571         * config/nds32/nds32.md (prologue, epilogue): Likewise.
2572
2573 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2574
2575         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
2576         Check rtx for varargs implementation.
2577         (nds32_output_stack_pop): Likewise.
2578         * config/nds32/nds32-protos.h: Have a rtx argument for
2579         nds32_output_stack_push and nds32_output_stack_pop.
2580         * config/nds32/nds32.md: Likewise.
2581
2582 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2583
2584         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
2585         to check if FUNC is an interrupt service routine.
2586         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
2587
2588 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2589
2590         * config/nds32/nds32.h (machine_function): Add some fields for variadic
2591         arguments implementation.
2592
2593 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2594
2595         * config/nds32/nds32-predicates.c
2596         (nds32_valid_stack_push_pop): Rename to ...
2597         (nds32_valid_stack_push_pop_p): ... this.
2598         * config/nds32/nds32-protos.h: Likewise.
2599         * config/nds32/predicates.md: Likewise.
2600
2601 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2602
2603         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
2604         (nds32_emit_stack_v3push): ... this.
2605         (nds32_gen_stack_v3pop): Rename to ...
2606         (nds32_emit_stack_v3pop): ... this and consider CFA restore
2607         information.
2608
2609 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2610
2611         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
2612         (nds32_emit_stack_push_multiple): ... this.
2613         (nds32_gen_stack_pop_multiple): Rename to ...
2614         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
2615         information.
2616
2617 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2618
2619         PR target/61078
2620         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
2621         and add a second splitter to handle the remaining cases.
2622
2623 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2624
2625         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
2626
2627 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
2628
2629         * cfgexpand.c (label_rtx_for_bb): Change type to
2630         hash_map<basic_block, rtx_code_label *> *.
2631         (expand_gimple_basic_block): Adjust.
2632         (pass_expand::execute): Likewise.
2633
2634 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
2635
2636         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
2637         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
2638         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
2639         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
2640         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
2641         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
2642         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
2643         of rtx.
2644
2645 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
2646
2647         * alloc-pool.c: Include coretypes.h.
2648         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
2649         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
2650         hash_set instead of htab.
2651         * ggc-page.c (in_gc): New variable.
2652         (ggc_free): Do nothing if a collection is taking place.
2653         (ggc_collect): Set in_gc appropriately.
2654         * ggc.h (gt_ggc_mx(const char *)): New function.
2655         (gt_pch_nx(const char *)): Likewise.
2656         (gt_ggc_mx(int)): Likewise.
2657         (gt_pch_nx(int)): Likewise.
2658         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
2659         (hash_map::hash_entry::pch_nx): Likewise.
2660         (hash_map::hash_entry::pch_nx_helper): Likewise.
2661 (hash_map::hash_map): Adjust.
2662 (hash_map::create_ggc): New function.
2663 (gt_ggc_mx): Likewise.
2664 (gt_pch_nx): Likewise.
2665         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
2666 (default_hashset_traits::pch_nx): Likewise.
2667 (hash_set::hash_entry::ggc_mx): Likewise.
2668 (hash_set::hash_entry::pch_nx): Likewise.
2669 (hash_set::hash_entry::pch_nx_helper): Likewise.
2670 (hash_set::hash_set): Adjust.
2671 (hash_set::create_ggc): New function.
2672 (hash_set::elements): Likewise.
2673 (gt_ggc_mx): Likewise.
2674 (gt_pch_nx): Likewise.
2675         * hash-table.h (hash_table::hash_table): Adjust.
2676 (hash_table::m_ggc): New member.
2677         (hash_table::~hash_table): Adjust.
2678         (hash_table::expand): Likewise.
2679         (hash_table::empty): Likewise.
2680 (gt_ggc_mx): New function.
2681         (hashtab_entry_note_pointers): Likewise.
2682 (gt_pch_nx): Likewise.
2683
2684 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2685
2686         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
2687         built-in definition.
2688         (XVCVUXDDP_SCALE): Likewise.
2689         (XVCVDPSXDS_SCALE): Likewise.
2690         (XVCVDPUXDS_SCALE): Likewise.
2691         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
2692         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
2693         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
2694         VSX_BUILTIN_XVCVDPUXDS_SCALE.
2695         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
2696         prototype.
2697         * config/rs6000/rs6000.c (real.h): New include.
2698         (rs6000_scale_v2df): New function.
2699         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
2700         (UNSPEC_VSX_XVCVUXDDP): Likewise.
2701         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
2702         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
2703         (vsx_xvcvsxddp_scale): New define_expand.
2704         (vsx_xvcvsxddp): New define_insn.
2705         (vsx_xvcvuxddp_scale): New define_expand.
2706         (vsx_xvcvuxddp): New define_insn.
2707         (vsx_xvcvdpsxds_scale): New define_expand.
2708         (vsx_xvcvdpsxds): New define_insn.
2709         (vsx_xvcvdpuxds_scale): New define_expand.
2710         (vsx_xvcvdpuxds): New define_insn.
2711         * doc/extend.texi (vec_ctf): Add new prototypes.
2712         (vec_cts): Likewise.
2713         (vec_ctu): Likewise.
2714         (vec_splat): Likewise.
2715         (vec_div): Likewise.
2716         (vec_mul): Likewise.
2717
2718 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2719
2720         PR target/62275
2721         * config/arm/neon.md
2722         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
2723         <v_cmp_result>): New pattern.
2724         * config/arm/iterators.md (NEON_VCVT): New int iterator.
2725         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
2726         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
2727         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
2728         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
2729         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
2730
2731 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2732
2733         PR target/62275
2734         * config/arm/iterators.md (FIXUORS): New code iterator.
2735         (VCVT): New int iterator.
2736         (su_optab): New code attribute.
2737         (su): Likewise.
2738         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
2739
2740 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2741
2742         * config/aarch64/predicates.md (aarch64_comparison_operation):
2743         New special predicate.
2744         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
2745         aarch64_comparison_operation instead of matching an operator.
2746         Update operand numbers.
2747         (csinc3<mode>_insn): Likewise.
2748         (*csinv3<mode>_insn): Likewise.
2749         (*csneg3<mode>_insn): Likewise.
2750         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
2751         * config/aarch64/aarch64.c (aarch64_get_condition_code):
2752         Return -1 instead of aborting on invalid condition codes.
2753         (aarch64_print_operand): Update aarch64_get_condition_code callsites
2754         to assert that the returned condition code is valid.
2755         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
2756
2757 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
2758
2759         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
2760         tree.def, and gimple.def
2761
2762 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
2763             Balaji V. Iyer  <balaji.v.iyer@intel.com>
2764             Igor Zamyatin  <igor.zamyatin@intel.com>
2765
2766         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
2767         (__cilkrts_cilk_for_64): Likewise.
2768         * cilk-common.c (declare_cilk_for_builtin): New function.
2769         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
2770         __cilkrts_cilk_for_64 bultins.
2771         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
2772         CILK_TI_F_LOOP_64.
2773         (cilk_for_32_fndecl): New define.
2774         (cilk_for_64_fndecl): Likewise.
2775         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
2776         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
2777         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
2778         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
2779         GF_OMP_FOR_COMBINED_INTO.
2780         * gimplify.c (gimplify_scan_omp_clauses): Added
2781         OMP_CLAUSE__CILK_FOR_COUNT_ case.
2782         (gimplify_adjust_omp_clauses): Ditto.
2783         (gimplify_omp_for): Added CILK_FOR case.
2784         (gimplify_expr): Ditto.
2785         * omp-low.c: Include cilk.h.
2786         (extract_omp_for_data): Set appropriate kind for
2787         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
2788         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
2789         (create_omp_child_function_name): Added second argument to handle
2790         cilk_for case.
2791         (cilk_for_check_loop_diff_type): New function.
2792         (expand_cilk_for_call): Likewise.
2793         (expand_cilk_for): Likewise.
2794         (create_omp_child_function): Set cilk_for_count; handle the cases when
2795         it is true; call create_omp_child_function_name with second argument.
2796         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
2797         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
2798         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
2799         * tree-nested.c (convert_nonlocal_omp_clauses): Added
2800         OMP_CLAUSE__CILK_FOR_COUNT_ case.
2801         (convert_local_omp_clauses): Ditto.
2802         * tree-pretty-print.c (dump_omp_clause): Added
2803         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
2804         (dump_generic_node): Added CILK_FOR case.
2805         * tree.c (omp_clause_num_ops): New element
2806         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
2807         (omp_clause_code_name): New element _Cilk_for_count_.
2808         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
2809         * tree.def: Add tree code for CILK_FOR.
2810
2811 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
2812
2813         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
2814         (ppc403-compare): Add "exts with dot" case.
2815         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
2816         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
2817         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
2818         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
2819         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
2820         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
2821         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
2822         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
2823         cell-cmp-microcoded): Similarly.
2824         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
2825         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
2826         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
2827         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
2828         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
2829         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
2830         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
2831         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
2832         (power6-compare): Add "exts with dot" case.
2833         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
2834         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
2835         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
2836
2837         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
2838         if avoiding Cell microcode.
2839         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
2840         (is_cracked_insn): Ditto.
2841         (insn_must_be_first_in_group): Ditto.
2842         * config/rs6000/rs6000.md (dot): Adjust comment.
2843         (cell_micro): Handle exts+dot.
2844         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
2845         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
2846         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
2847         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
2848         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
2849         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
2850         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
2851
2852 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
2853
2854         * config/rs6000/rs6000.md (QHSI): Delete.
2855         (EXTQI, EXTHI, EXTSI): New mode iterators.
2856         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
2857         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
2858         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
2859         9 anonymous instructions, and 8 splitters): Delete.
2860         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
2861         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
2862         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
2863         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
2864         *zero_extendsi<mode>2_dot2): New.
2865
2866 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
2867
2868         * config/rs6000/rs6000.md (any_extend): New code iterator.
2869         (u, su): New code attributes.
2870         (dmode, DMODE): New mode attributes.
2871         (<su>mul<mode>3_highpart): New.
2872         (*<su>mul<mode>3_highpart): New.
2873         (<su>mulsi3_highpart_le): New.
2874         (<su>muldi3_highpart_le): New.
2875         (<su>mulsi3_highpart_64): New.
2876         (<u>mul<mode><dmode>3): New.
2877         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
2878         splitters): Delete.
2879         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
2880         splitters): Delete.
2881
2882 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
2883
2884         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
2885         *mulsi3_internal2, and two splitters): Delete.
2886         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
2887         Delete.
2888         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
2889
2890 2014-09-02  Richard Biener  <rguenther@suse.de>
2891
2892         PR tree-optimization/62695
2893         * tree-ssa-structalias.c (find_func_clobbers): Add missing
2894         vector truncate.
2895
2896 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
2897
2898         PR target/62312
2899         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
2900
2901 2014-09-01  Andi Kleen  <ak@linux.intel.com>
2902
2903         * file-find.c (add_prefix_begin): Add.
2904         (do_add_prefix): Rename from add_prefix with first argument.
2905         (add_prefix): Add new wrapper.
2906         * file-find.h (add_prefix_begin): Add.
2907         * gcc-ar.c (main): Support -B option.
2908
2909 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
2910
2911         * genemit.c: Include dumpfile.h.
2912         (gen_split): Print name of splitter function to dump file.
2913
2914 2014-09-01  Richard Biener  <rguenther@suse.de>
2915
2916         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
2917         Use stack auto_vecs for constraint expressions.
2918         (find_func_aliases_for_call): Likewise.
2919         (find_func_aliases): Likewise.
2920         (find_func_clobbers): Likewise.
2921
2922 2014-09-01  Richard Biener  <rguenther@suse.de>
2923
2924         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
2925         operands vector in most cases.  Remove redundant code.
2926
2927 2014-09-01  Olivier Hainque  <hainque@adacore.com>
2928
2929         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
2930         $WIND_BASE instead of designating a harcoded arbitrary home dir.
2931         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
2932
2933 2014-09-01  Richard Biener  <rguenther@suse.de>
2934
2935         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
2936         copy_reference_ops_from_call, vn_nary_op_compute_hash,
2937         vn_reference_compute_hash, vn_reference_insert): Remove.
2938         (vn_reference_lookup_call): New function.
2939         * tree-ssa-sccvn.c (vn_reference_compute_hash,
2940         copy_reference_ops_from_ref, copy_reference_ops_from_call,
2941         vn_reference_insert, vn_nary_op_compute_hash): Make static.
2942         (create_reference_ops_from_call): Remove.
2943         (vn_reference_lookup_3): Properly update shared_lookup_references.
2944         (vn_reference_lookup_pieces): Assert that we updated
2945         shared_lookup_references properly.
2946         (vn_reference_lookup): Likewise.
2947         (vn_reference_lookup_call): New function.
2948         (visit_reference_op_call): Use it.  Avoid re-building the
2949         reference ops.
2950         (visit_reference_op_load): Remove redundant lookup.
2951         (visit_reference_op_store): Perform special tail-merging work
2952         only when possibly doing tail-merging.
2953         (visit_use): Likewise.
2954         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
2955
2956 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
2957
2958         PR target/62025
2959         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
2960         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
2961         (find_inc): Revert 2014-08-13 change.
2962
2963 2014-09-01  Marek Polacek  <polacek@redhat.com>
2964
2965         PR middle-end/61903
2966         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
2967         Change the type of V to unsigned HOST_WIDE_INT.
2968
2969 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2970
2971         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
2972         the size of byte markers.
2973         (do_shift_rotate): Fix confusion between host, target and marker byte
2974         size.
2975         (verify_symbolic_number_p): Likewise.
2976         (find_bswap_or_nop_1): Likewise.
2977         (find_bswap_or_nop): Likewise.
2978
2979 2014-09-01  Olivier Hainque  <hainque@adacore.com>
2980
2981         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
2982         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
2983
2984 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
2985
2986         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
2987         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
2988         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
2989
2990 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
2991
2992         PR sanitizer/61897
2993         PR sanitizer/62140
2994         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
2995         (build_check_stmt): Likewise.
2996         (instrument_strlen_call): Likewise.
2997         (asan_expand_check_ifn): Likewise and fix types.
2998         (maybe_cast_to_ptrmode): New function.
2999
3000 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3001
3002         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
3003
3004 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
3005
3006         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
3007
3008 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
3009
3010         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
3011         prefix to function labels when generating fast indirect calls.
3012
3013 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
3014
3015         PR bootstrap/62304
3016
3017         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
3018         param back from rtx_insn * to rtx.  Rename param from "label" to
3019         "label_or_return", reintroducing "label" as an rtx_insn * after
3020         we've ensured it's not a RETURN.
3021         (first_active_target_insn): Likewise for return type and param;
3022         add a checked cast to rtx_insn * once we've ensured "insn" is not
3023         a RETURN.
3024         (steal_delay_list_from_target): Convert param "pnew_thread" back
3025         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
3026         with JUMP_LABEL.
3027         (own_thread_p): Convert param "thread" back from an rtx_insn * to
3028         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
3029         cast once we've established we're not dealing with a RETURN,
3030         renaming subsequent uses of "thread" to "thread_insn".
3031         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
3032         to JUMP_LABEL.
3033         (follow_jumps): Convert return type and param "label" from
3034         rtx_insn * back to rtx.  Move initialization of "value" to after
3035         the handling for ANY_RETURN_P, adding a checked cast there to
3036         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
3037         rename to "this_label_or_return", reintroducing "this_label" as
3038         an rtx_insn * once we've handled the case where it could be an
3039         ANY_RETURN_P.
3040         (fill_slots_from_thread): Rename param "thread" to
3041         "thread_or_return", converting from an rtx_insn * back to an rtx.
3042         Reintroduce name "thread" as an rtx_insn * local with a checked
3043         cast once we've handled the case of it being an ANY_RETURN_P.
3044         Convert local "new_thread" from an rtx_insn * back to an rtx.
3045         Add a checked cast when assigning to "trial" from "new_thread".
3046         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
3047         checked cast to rtx_insn * from "new_thread" when invoking
3048         get_label_before.
3049         (fill_eager_delay_slots): Convert locals "target_label",
3050         "insn_at_target" from rtx_insn * back to rtx.
3051         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
3052         (relax_delay_slots): Convert locals "trial", "target_label" from
3053         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
3054         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
3055         invoking update_block.
3056         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
3057         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
3058
3059         * resource.h (mark_target_live_regs): Undo erroneous conversion
3060         of second param of r214693, converting it back from rtx_insn * to
3061         rtx, since it could be a RETURN.
3062
3063         * resource.c (find_dead_or_set_registers): Similarly, convert
3064         param "jump_target" back from an rtx_insn ** to an rtx *, as we
3065         could be writing back a RETURN.  Rename local rtx_insn * "next" to
3066         "next_insn", and introduce "lab_or_return" as a local rtx,
3067         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
3068         (mark_target_live_regs): Undo erroneous conversion
3069         of second param of r214693, converting it back from rtx_insn * to
3070         rtx, since it could be a RETURN.  Rename it from "target" to
3071         "target_maybe_return", reintroducing the name "target" as a local
3072         rtx_insn * with a checked cast, after we've handled the case of
3073         ANY_RETURN_P.
3074
3075 2014-08-29  DJ Delorie  <dj@redhat.com>
3076
3077         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
3078         pointer size up to a power of two.
3079         * defaults.h (DWARF2_ADDR_SIZE): Round up.
3080         (POINTER_SIZE_UNITS): New, rounded up value.
3081         * dwarf2asm.c (size_of_encoded_value): Use it.
3082         (dw2_output_indirect_constant_1): Likewise.
3083         * expmed.c (init_expmed_one_conv): We now know the sizes of
3084         partial int modes.
3085         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
3086         * optabs.c (expand_float): Use precision, not size.
3087         (expand_fix): Likewise.
3088         * simplify-rtx (simplify_unary_operation_1): Likewise.
3089         * tree-dfa.c (get_ref_base_and_extent): Likewise.
3090         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
3091         (default_assemble_integer) Likewise.
3092         (dump_tm_clone_pairs): Likewise.
3093         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
3094         * var-tracking.c (adjust_mems): Allow partial-int modes also.
3095         (prepare_call_arguments): Likewise.
3096         * stor-layout.c (finalize_type_size): Preserve precision.
3097         (layout_type): Use precision, not size.
3098
3099         * expr.c (convert_move): If the target has an explicit converter,
3100         use it.
3101
3102 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
3103
3104         * gdbinit.in: Skip various inline functions in rtl.h when
3105         stepping.
3106
3107 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
3108
3109         PR bootstrap/62301
3110         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
3111
3112 2014-08-29  Richard Biener  <rguenther@suse.de>
3113
3114         PR tree-optimization/62291
3115         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
3116         exactly the vector size needed and use quick_push.
3117         (phi_translate_1): Adjust comment.
3118         (valid_in_sets): Remove block argument and remove pointless
3119         checking of NAMEs.
3120         (dependent_clean): Adjust for removal of block argument.
3121         (clean): Likewise.
3122         (compute_antic_aux): Likewise.
3123         (compute_partial_antic_aux): Likewise.
3124
3125 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3126             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3127             Anna Tikhonova  <anna.tikhonova@intel.com>
3128             Ilya Tocar  <ilya.tocar@intel.com>
3129             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3130             Ilya Verbin  <ilya.verbin@intel.com>
3131             Kirill Yukhin  <kirill.yukhin@intel.com>
3132             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3133
3134         * config/i386/sse.md
3135         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
3136         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
3137         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
3138         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
3139
3140 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3141             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3142             Anna Tikhonova  <anna.tikhonova@intel.com>
3143             Ilya Tocar  <ilya.tocar@intel.com>
3144             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3145             Ilya Verbin  <ilya.verbin@intel.com>
3146             Kirill Yukhin  <kirill.yukhin@intel.com>
3147             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3148
3149         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
3150         * config/i386/sse.md
3151         (define_mode_iterator VI4_128_8_256): New.
3152         (define_mode_iterator VI2_128_4_256): Ditto.
3153         (define_mode_iterator PMOV_DST_MODE): Rename into
3154         (define_mode_iterator PMOV_DST_MODE_1): this.
3155         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
3156         Use PMOV_DST_MODE_1 mode iterator.
3157         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
3158         Ditto.
3159         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
3160         Ditto.
3161         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
3162         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
3163         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
3164         (define_mode_iterator PMOV_DST_MODE_2): New.
3165         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
3166         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
3167         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
3168         Ditto.
3169         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
3170         (define_mode_attr pmov_dst_3): Ditto.
3171         (define_mode_attr pmov_dst_zeroed_3): Ditto.
3172         (define_mode_attr pmov_suff_3): Ditto.
3173         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
3174         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
3175         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
3176         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
3177         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
3178         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
3179         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
3180         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
3181         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
3182         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
3183         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
3184         (define_mode_attr pmov_dst_4): Ditto.
3185         (define_mode_attr pmov_dst_zeroed_4): Ditto.
3186         (define_mode_attr pmov_suff_4): Ditto.
3187         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
3188         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
3189         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
3190         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
3191         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
3192         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
3193         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
3194         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
3195         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
3196         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
3197         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
3198
3199 2014-08-29  Richard Biener  <rguenther@suse.de>
3200
3201         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
3202         NON_LVALUE_EXPR in gimple.
3203
3204 2014-08-29  Richard Biener  <rguenther@suse.de>
3205
3206         PR middle-end/62292
3207         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
3208         from previous refactoring.
3209         (gimple_fold_builtin_strncpy): Likewise.
3210
3211 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
3212
3213         PR bootstrap/62300
3214         * function.c (assign_parm_setup_reg): Remove erroneous checked
3215         cast to rtx_insn * on result of gen_extend_insn in favor of
3216         introducing a new local rtx "pat".
3217
3218 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3219
3220         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
3221         to silence warning.
3222         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
3223
3224 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3225
3226         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
3227         (next_insn): Likewise.
3228         * emit-rtl.c (next_insn): Likewise.
3229         (previous_insn): Likewise.
3230         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
3231         "insn" and "next" from rtx to rtx_insn *.
3232         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
3233         "insn", "insn1", "vliw_start",  "prologue_end_note",
3234         "last_insn_in_packet".
3235
3236 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3237
3238         * shrink-wrap.h (active_insn_between): Strengthen both params from
3239         rtx to rtx_insn *.
3240         * function.c (active_insn_between): Likewise.
3241
3242 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3243
3244         * genattr.c (main): When writing out insn-attr.h, strengthen param
3245         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
3246         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
3247         writing out the definition of dfa_clear_single_insn_cache to the
3248         generated insn-automata.c
3249
3250 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3251
3252         * resource.h (clear_hashed_info_for_insn): Strengthen param from
3253         rtx to rtx_insn *.
3254         (incr_ticks_for_insn): Likewise.
3255         (init_resource_info): Likewise.
3256
3257         * resource.c (init_resource_info): Likewise.
3258         (clear_hashed_info_for_insn): Likewise.
3259         (incr_ticks_for_insn): Likewise.
3260
3261         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
3262         rtx to rtx_insn *.
3263         (steal_delay_list_from_target): Use methods of "seq".
3264         (try_merge_delay_insns): Use methods of "merged_insns".
3265         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
3266         (reorg_redirect_jump): Likewise for param "jump".
3267
3268 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3269
3270         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
3271         rtx to rtx_insn *.
3272         * config/s390/s390.c (s390_split_branches): Eliminate top-level
3273         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
3274         "set_insn".
3275         (s390_mainpool_finish): In three places, split out a local rtx
3276         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
3277         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
3278          and split another local rtx "insn" out into rtx "pat" and
3279         rtx_insn * "insn".
3280         * config/sh/sh.c (output_branchy_insn): Rather than working
3281         directly on operands[9], introduce local rtx_code_label *
3282         variables named "lab" in two places, working on them, and then
3283         assigning them to operands[9], so that the intervening operations
3284         are known by the type system to be on insns.
3285
3286 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3287
3288         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
3289         const rtx_insn *.
3290
3291         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
3292         in invocation of INSN_HAS_LOCATION.
3293
3294 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3295
3296         * config/rs6000/altivec.h (vec_xl): New #define.
3297         (vec_xst): Likewise.
3298         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
3299         (XXSPLTD_V2DI): Likewise.
3300         (DIV_V2DI): Likewise.
3301         (UDIV_V2DI): Likewise.
3302         (MUL_V2DI): Likewise.
3303         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3304         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
3305         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
3306         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
3307         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
3308         (UNSPEC_VSX_DIVSD): Likewise.
3309         (UNSPEC_VSX_DIVUD): Likewise.
3310         (UNSPEC_VSX_MULSD): Likewise.
3311         (vsx_mul_v2di): New insn-and-split.
3312         (vsx_div_v2di): Likewise.
3313         (vsx_udiv_v2di): Likewise.
3314         (vsx_xxspltd_<mode>): New insn.
3315
3316 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3317
3318         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
3319         NEXT_INSN.
3320         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
3321         (NEXT_INSN): Likewise.
3322         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
3323         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
3324         const rtx_insn *.
3325         (no_labels_between_p): Likewise for both params.
3326
3327         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
3328         cast when using NEXT_INSN on operands[2].
3329         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
3330         "insn" from rtx to rtx_insn *, adding a checked cast.
3331         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
3332         rtx_insn *.
3333         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
3334         for third param.
3335         (arc_text_label): Likewise for param "insn".
3336         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
3337         "insn".
3338         (arc_ccfsm_record_condition): Likewise for param "jump".
3339         (arc_text_label): Likewise for local "label".
3340         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
3341         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
3342         a method for typesafety.  Add a checked cast.
3343         * config/arc/constraints.md (Clb): Add a checked cast when getting
3344         the CODE_LABEL from a LABEL_REF.
3345         * config/arm/arm.c (require_pic_register): Strengthen locals
3346         "seq", "insn" from rtx to rtx_insn *.
3347         (create_fix_barrier): Likewise for locals "selected", "next".
3348         (thumb1_reorg): Likewise for locals "prev", "insn".
3349         (arm_expand_prologue): Likewise for local "last".
3350         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
3351         operands[0].
3352         (thumb2_output_casesi): Likewise for operands[2].
3353         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
3354         strengthen local "insn" from rtx to rtx_insn *.
3355         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
3356         type and param "insn".
3357         (find_prev_insn_start): Likewise.
3358         (hwloop_optimize): Likewise for locals "insn", "last_insn",
3359         "prev".
3360         (gen_one_bundle): Likewise for loal "t".
3361         (find_load): Likewise for param "insn".
3362         (workaround_speculation): Likewise for locals "insn", "next",
3363         "target", "next_tgt".
3364         * config/c6x/c6x.c (assign_reservations): Likewise for both params
3365         and for locals "insn", "within", "last".
3366         (count_unit_reqs): Likewise for params "head", "tail" and local
3367         "insn".
3368         (try_rename_operands): Likewise for params "head", "tail".
3369         (reshuffle_units): Likewise for locals "head", "tail", "insn".
3370         (struct c6x_sched_context): Likewise for fields
3371         "last_scheduled_insn", "last_scheduled_iter0".
3372         (init_sched_state): Replace NULL_RTX with NULL.
3373         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
3374         to rtx_insn *.
3375         (undo_split_delayed_nonbranch): Likewise for param and for local
3376         "prev".
3377         (conditionalize_after_sched): Likewise for local "insn".
3378         (bb_earliest_end_cycle): Likewise.
3379         (filter_insns_above): Likewise for locals "insn", "next".
3380         (hwloop_optimize): Remove redundant checked cast.
3381         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
3382         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
3383         NULL_RTX with NULL.
3384         (cris_simple_epilogue): Likewise.
3385         (cris_expand_prologue): Likewise.
3386         (cris_expand_epilogue): Likewise.
3387         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
3388         local "insn" from rtx to rtx_insn *.
3389         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
3390         (struct frv_packet_group): Likewise for the elements within array
3391         fields "insns", "sorted", and for field "nop".
3392         (frv_packet): Likewise for the elements within array field
3393         "insns".
3394         (frv_add_insn_to_packet): Likewise for param "insn".
3395         (frv_insert_nop_in_packet): Likewise for param "insn" and local
3396         "last".
3397         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
3398         (frv_sort_insn_group_1): Likewise for local "insn".
3399         (frv_optimize_membar_local): Likewise.
3400         (frv_align_label): Likewise for locals "x", "last", "barrier",
3401         "label".
3402         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
3403         local.
3404         (ia64_sched_init): Likewise for local "insn".
3405         (scheduled_good_insn): Likewise for param "last".
3406         (struct _ia64_sched_context): Likewise for field
3407         "last_scheduled_insn".
3408         (ia64_init_sched_context): Replace NULL_RTX with NULL.
3409         (struct bundle_state): Likewise for field "insn".
3410         (issue_nops_and_insn): Likewise for param "insn".
3411         (get_next_important_insn): Likewise for return type and both
3412         params.
3413         (ia64_add_bundle_selector_before): Likewise for param "insn".
3414         (bundling): Likewise for params "prev_head_insn", "tail" and
3415         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
3416         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
3417         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
3418         Strengthen final param from rtx to rtx_insn *.
3419         (iq2000_move_1word): Likewise for second param.
3420         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
3421         param "cur_insn" and local "next_insn".
3422         (iq2000_move_1word): Likewise for param "insn".
3423         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
3424         casts when using NEXT_INSN on operands[1].
3425         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
3426         "insn" from rtx to rtx_insn *.
3427         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
3428         "x", introducing local rtx_insn * "insn" for when working with the
3429         CODE_LABEL of the LABEL_REF.
3430         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
3431         rtx_insn *.
3432         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
3433         param.
3434         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
3435         type.
3436         (conditionalize_block): Likewise for return type and param.
3437         (mcore_is_dead): Likewise for param "first" and local "insn".
3438         (emit_new_cond_insn): Likewise for return type.
3439         (conditionalize_block): Likewise for return type, param, and
3440         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
3441         "newinsn".
3442         (conditionalize_optimization): Likewise for local "insn".
3443         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
3444         using NEXT_INSN.
3445         * config/microblaze/microblaze.md: Add checked casts when using
3446         NEXT_INSN.
3447         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
3448         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
3449         and rtx_insn * "insn".
3450         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
3451         checked cast when using NEXT_INSN on operands[2].
3452         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
3453         local "insn" from rtx to rtx_insn *.
3454         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
3455         Likewise.
3456         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
3457         Add a checked cast when using NEXT_INSN on operands[1].
3458         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
3459         rtx to rtx_insn *.
3460         (pa_output_cbranch): Likewise for final param.
3461         (pa_output_lbranch): Likewise for second param.
3462         (pa_output_bb): Likewise for third param.
3463         (pa_output_bvb): Likewise.
3464         (pa_output_dbra): Likewise for second param.
3465         (pa_output_movb): Likewise.
3466         (pa_output_parallel_movb): Likewise.
3467         (pa_output_parallel_addb): Likewise.
3468         (pa_output_millicode_call): Likewise for first param.
3469         (pa_output_mul_insn): Likewise for second param.
3470         (pa_output_div_insn): Likewise for third param.
3471         (pa_output_mod_insn): Likewise for second param.
3472         (pa_jump_in_call_delay): Likewise for param.
3473         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
3474         (pa_output_div_insn): Likewise.
3475         (pa_output_mod_insn): Likewise.
3476         (pa_output_cbranch): Likewise.
3477         (pa_output_lbranch): Likewise.
3478         (pa_output_bb): Likewise.
3479         (pa_output_bvb): Likewise.
3480         (pa_output_dbra): Likewise.
3481         (pa_output_movb): Likewise.
3482         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
3483         to simplify and for typesafety.
3484         (pa_output_call): Use method of rtx_sequence *.
3485         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
3486         (pa_jump_in_call_delay): Likewise.
3487         (pa_output_parallel_movb): Likewise.
3488         (pa_output_parallel_addb): Likewise.
3489         (pa_following_call): Likewise.
3490         (pa_combine_instructions): Likewise for locals "anchor",
3491         "floater".
3492         (pa_can_combine_p): Likewise for params "anchor", "floater" and
3493         locals "start", "end".
3494         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
3495         param "insn" and local "local_insn".
3496         (picochip_final_prescan_insn): Likewise for local "local_insn".
3497         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
3498         local "insn".
3499         (uses_TOC): Likewise.
3500         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
3501         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
3502         splitting out to more tightly-scoped locals, 3 as rtx and one as
3503         rtx_insn *.
3504         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
3505         to rtx_insn *.
3506         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
3507         where needed.
3508         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
3509         to rtx_insn *.
3510         (fixup_addr_diff_vecs): Likewise.
3511         (reg_unused_after): Likewise for param 2.
3512         (sh_can_redirect_branch): Likewise for both params.
3513         (check_use_sfunc_addr): Likewise for param 1.
3514         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
3515         (find_barrier): Likewise for local "last_got".
3516         (gen_block_redirect): Likewise for return type, param "jump" and
3517         locals "prev", "scan", "next", "insn".
3518         (struct far_branch): Likewise for fields "near_label",
3519         "insert_place", "far_label".
3520         (gen_far_branch): Likewise for local "jump".
3521         (fixup_addr_diff_vecs): Likewise for param "first" and locals
3522         "insn", "prev".
3523         (barrier_align): Likewise for param and for locals "prev", "x".
3524         Introduce local rtx_sequence * "prev_seq" and use insn method for
3525         typesafety and clarity.
3526         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
3527         (get_dest_uid): Likewise for local "dest".
3528         (split_branches): Likewise for locals "next", "beyond", "label",
3529         "block", "far_label".  Add checked casts when assigning to
3530         bp->far_label and "far_label".
3531         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
3532         (sequence_insn_p): Likewise.
3533         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
3534         more loop-scoped rtx "insn" when walking LABEL_REFS.
3535         (sh_can_redirect_branch): Strengthen both params from rtx to
3536         rtx_insn *.
3537         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
3538         new local rtx_sequence * "seq" via a dyn_cast, and use a method
3539         for clarity and typesafety.
3540         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
3541         "insn" from rtx to rtx_insn *.
3542         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
3543         when using NEXT_INSN on the CODE_LABEL in operands[2].
3544         (define_insn "casesi_worker_2"): Likewise.
3545         (define_insn "casesi_shift_media"): Likewise.
3546         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
3547         operands[3].
3548         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
3549         Strengthen field "insn" from rtx to rtx_insn *.
3550         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
3551         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
3552         param "start_insn" and local "start_insn".
3553         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
3554         field "insn".
3555         (find_set_of_reg_bb): Likewise for param "insn".
3556         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
3557         (trace_reg_uses): Likewise for param "start_insn".
3558         (sh_treg_combine::cbranch_trace): Likewise for field
3559         "cbranch_insn".
3560         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
3561         param "insn".
3562         (sh_treg_combine::record_set_of_reg): Likewise for param
3563         "start_insn" and local "i".
3564         (sh_treg_combine::can_remove_cstore): Likewise for local
3565         "prev_insn".
3566         (sh_treg_combine::try_optimize_cbranch): Likewise for param
3567         "insn".
3568         (sh_treg_combine::execute): Likewise for local "i".
3569         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
3570         param.
3571         (sparc_check_64): Likewise for second param.
3572         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
3573         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
3574         dyn_cast, using its insn method for typesafety and clarity.
3575         (empty_delay_slot): Strengthen param "insn" from rtx to
3576         rtx_insn *.
3577         (set_extends): Likewise.
3578         (sparc_check_64): Likewise.
3579         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
3580         for locals "seq", "last_insn".
3581         (combine_bnp): Likewise for param "insn".
3582         (xstormy16_reorg): Likewise for local "insn".
3583         * config/v850/v850.c (substitute_ep_register): Likewise for params
3584         "first_insn", "last_insn" and local "insn".
3585         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
3586         elements of "regs" array, and local "insn".
3587         * except.c (emit_note_eh_region_end): Likewise for param "insn".
3588         * final.c (final_sequence): Strengthen this global from rtx to
3589         rtx_sequence *.
3590         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
3591         rtx_insn *.
3592         (final_scan_insn): Update assignment to "final_sequence" to be
3593         from "seq", the cast version of "body", for type-safety.
3594         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
3595         "insns" from rtx to rtx_insn *.
3596         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
3597         * genattr.c (main): When writing out generated insn-attr.h,
3598         strengthen params 1 and 3 of eligible_for_delay,
3599         eligible_for_annul_true, eligible_for_annul_false from rtx to
3600         rtx_insn *.
3601         * genattrtab.c (write_eligible_delay): Likewise when writing out
3602         generated insn-attrtab.c; also local "insn" the generated
3603         functions.
3604         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
3605         to rtx_insn *.
3606         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
3607         "start_label" from rtx to rtx_insn *.
3608         * ira.c (decrease_live_ranges_number): Likewise for local "p".
3609         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
3610         "insns" and local "insn".
3611         (validate_equiv_mem): Likewise for param "start" and local "insn".
3612         (memref_used_between_p): Likewise for params "start", "end" and
3613         local "insn".
3614         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
3615         final param.
3616         * loop-doloop.c (doloop_optimize): Within region guarded by
3617         INSN_P (doloop_pat), introduce a new local rtx_insn *
3618         "doloop_insn" via a checked cast, and use it for typesafety,
3619         eventually writing the value back into doloop_pat.
3620         * output.h (final_sequence): Strengthen this global from rtx to
3621         rtx_sequence *.
3622         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
3623         reintroducing "insn" as an rtx_insn * via a checked cast.
3624         Strengthen param "attempt" and local "new_insn"from rtx to
3625         rtx_insn *.
3626         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
3627         to rtx_insn *.
3628         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
3629         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
3630         "p" in favor of more tightly-scoped replacements, sometimes rtx
3631         and sometimes rtx_insn *, as appropriate.
3632         (delete_output_reload): Eliminate top-level rtx "i1", splitting
3633         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
3634         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
3635         local "trial" from rtx to rtx_insn *.
3636         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
3637         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
3638         rtx_sequence * and use methods for clarity and typesafety.
3639         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
3640         rtx to rtx_insn *.  Strenghten local "li" from rtx to
3641         rtx_insn_list * and use its methods for clarity and typesafety.
3642         (steal_delay_list_from_target): Strengthen param "insn" from rtx
3643         to rtx_insn *.
3644         (steal_delay_list_from_fallthrough): Likewise.
3645         (try_merge_delay_insns): Likewise for param "thread" and locals
3646         "trial", "next_trial", "delay_insn".
3647         (redundant_insn): Likewise for param "target" and local "trial".
3648         (own_thread_p): Likewise for param "thread" and locals
3649         "active_insn", "insn".
3650         (get_label_before): Likewise for param "insn".
3651         (fill_simple_delay_slots): Likewise for local "new_label"; use
3652         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
3653         (label_before_next_insn): Strengthen return type and local "insn"
3654         from rtx to rtx_insn *.
3655         (relax_delay_slots): Likewise for locals "other", "tmp".
3656         (make_return_insns): Likewise for param "first" and locals "insn",
3657         "jump_insn", "prev".  Move declaration of "pat" to its assignment
3658         and strengthen from rtx to rtx_sequence *.  Use its methods for
3659         clarity and typesafety.
3660         * rtlanal.c (no_labels_between_p): Strengthen params from
3661         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
3662         rtx_insn *.
3663         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
3664         from const_rtx to const rtx_insn *.
3665         (reg_set_between_p): Rename param "from_insn" to
3666         "uncast_from_insn", and reintroduce "from_insn" as a
3667         const rtx_insn * via a checked cast.
3668         (modified_between_p): Likewise for param "start" as "uncast_start".
3669         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
3670         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
3671         "tmp", head" from rtx to rtx_insn *.
3672         (recompute_rev_top_order): Likewise for local "insn".
3673         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
3674         * store-motion.c (build_store_vectors): Likewise for local "insn".
3675         Strengthen local "st" from rtx to rtx_insn_list * and use methods
3676         for clarity and typesafety.
3677         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
3678         rtx to rtx_insn *.
3679         (computation_cost): Likewise for local "seq".
3680         (get_address_cost): Likewise.
3681
3682 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3683
3684         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
3685         const rtx_insn *.
3686         (label_is_jump_target_p): Likewise for second param.
3687
3688         * rtlanal.c (tablejump_p): Likewise for param "insn".
3689         (label_is_jump_target_p): Likewise for param "jump_insn".
3690
3691 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3692
3693         * rtl.h (find_first_parameter_load): Strengthen return type and
3694         both params from rtx to rtx_insn *.
3695         * rtlanal.c (find_first_parameter_load): Strengthen return type,
3696         both params and locals "before", "first_set" from rtx to
3697         rtx_insn *.  Remove now-redundant cast.
3698         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
3699
3700 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3701
3702         * rtl.h (find_last_value): Delete.
3703         * rtlanal.c (find_last_value): Delete.
3704
3705 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3706
3707         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
3708         from rtx to rtx_insn *.
3709         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
3710         rtx "note" with new local rtx_insn * "new_head" when calculating
3711         head insn of new basic block.
3712         * combine.c (combine_split_insns): Strengthen return type and local
3713         "ret" from rtx to rtx_insn *.
3714         (likely_spilled_retval_p): Likewise for locals "use" and "p".
3715         (try_combine): Eliminate local "m_split", splitting into new
3716         locals "m_split_insn" and "m_split_pat".
3717         (find_split_point): Strengthen local "seq" from rtx into
3718         rtx_insn *.
3719         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
3720         locals "label", "branch".
3721         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
3722         for local "insn".
3723         (define_expand "umulsi3_highpart"): Likewise for local "insn".
3724         * dse.c (note_add_store_info): Likewise for fields "first",
3725         "current".
3726         (note_add_store): Likewise for local "insn".
3727         (emit_inc_dec_insn_before): Likewise for locals "insn",
3728         "new_insn", "cur".
3729         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
3730         (replace_read): Likewise for locals "insns", "this_insn".
3731         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
3732         (notice_eh_throw): Likewise for param "insn".
3733         (before_next_cfi_note): Likewise for return type, param, and local
3734         "prev".
3735         (connect_traces): Likewise for local "note".
3736         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
3737         (verify_rtl_sharing): Likewise.
3738         (unshare_all_rtl_in_chain): Likewise for param "insn".
3739         (get_first_nonnote_insn): Likewise for local "insn".
3740         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
3741         "seq" and use its methods to clarify things.
3742         (next_insn): Strengthen return type from rtx to rtx_insn *.
3743         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
3744         local rtx_insn * using a checked cast, dropping a checked cast
3745         made redundant by this change.  Use a cast to and method of
3746         rtx_sequence to clarify the code.
3747         (previous_insn): Rename param "insn" to "uncast_insn" and
3748         reintroduce "insn" as a local rtx_insn * using a checked cast,
3749         dropping a checked cast made redundant by this change.  Use a cast
3750         to and method of rtx_sequence to clarify the code.
3751         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
3752         reintroduce "insn" as a local rtx_insn * using a checked cast,
3753         dropping a checked cast made redundant by this change.
3754         (next_nonnote_insn_bb): Likewise.
3755         (prev_nonnote_insn): Likewise.
3756         (prev_nonnote_insn_bb): Likewise.
3757         (next_nondebug_insn): Likewise.
3758         (prev_nondebug_insn): Likewise.
3759         (next_nonnote_nondebug_insn): Likewise.
3760         (prev_nonnote_nondebug_insn): Likewise.
3761         (next_real_insn): Likewise.
3762         (prev_real_insn): Likewise.
3763         (next_active_insn): Likewise.
3764         (prev_active_insn): Likewise.
3765         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
3766         clarity.
3767         (prev_cc0_setter): Likewise.
3768         (try_split): Rename param "trial" to "uncast_trial" and
3769         reintroduce "insn" as a local rtx_insn * using a checked cast,
3770         dropping checked casts made redundant by this change.
3771         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
3772         rtx to rtx_insn *.
3773         (remove_insn): Rename param "insn" to "uncast_insn" and
3774         reintroduce "insn" as a local rtx_insn * using a checked cast.
3775         (emit_pattern_after_setloc): Likewise for param "after", as
3776         "uncast_after".
3777         (emit_pattern_after): Likewise.  Strengthen local "prev" from
3778         rtx to rtx_insn *.
3779         (emit_pattern_before_setloc): Rename param "before" to
3780         "uncast_before" and reintroduce "before" as a local rtx_insn *
3781         using a checked cast.  Strengthen locals "first", "last" from
3782         rtx to rtx_insn *.
3783         (emit_pattern_before): Likewise rename/cast param "before" to
3784         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
3785         * except.c (copy_reg_eh_region_note_forward): Strengthen param
3786         "first" and local "insn" from rtx to rtx_insn *.
3787         (copy_reg_eh_region_note_backward): Likewise for param "last"
3788         and local "insn".
3789         * expr.c (fixup_args_size_notes): Rename param "last" to
3790         "uncast_last" and reintroduce "last" as a local rtx_insn *
3791         using a checked cast.  Strengthen local "insn" from rtx to
3792         rtx_insn *.
3793         * function.c (set_insn_locations): Strengthen param "insn" from
3794         rtx to rtx_insn *.
3795         (record_insns): Likewise for param "insns" and local "tmp".
3796         (active_insn_between): Rename param "tail" to
3797         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
3798         using a checked cast.
3799         (thread_prologue_and_epilogue_insns): Split out top-level local
3800         rtx "seq" into three different rtx_insn * locals.  Strengthen
3801         local "prologue_seq" from rtx to rtx_insn *.
3802         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
3803         from rtx to rtx_insn *.
3804         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
3805         (priority): Likewise for locals "prev_first", "twin".
3806         (setup_insn_max_reg_pressure): Likewise for param "after".
3807         (sched_setup_bb_reg_pressure_info): Likewise.
3808         (no_real_insns_p): Strengthen params from const_rtx to
3809         const rtx_insn *.
3810         (schedule_block): Strengthen local "next_tail" from rtx to
3811         rtx_insn *.
3812         * ifcvt.c (find_active_insn_before): Strengthen return type and
3813         param "insn" from rtx to rtx_insn *.
3814         (find_active_insn_after): Likewise.
3815         (cond_exec_process_insns): Likewise for param "start" and local "insn".
3816         (cond_exec_process_if_block): Likewise for locals "then_start",
3817         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
3818         (noce_process_if_block): Likewise for local "jump".
3819         (merge_if_block): Likewise for two locals named "end".
3820         (cond_exec_find_if_block): Likewise for local "last_insn".
3821         * jump.c (delete_related_insns): Rename param "insn" to
3822         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
3823         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
3824         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
3825         NULL.
3826         (split_reg): Likewise.
3827         * lra.c (lra_process_new_insns): Likewise.
3828         * modulo-sched.c (permute_partial_schedule): Strengthen param
3829         "last" from rtx to rtx_insn *.
3830         * optabs.c (add_equal_note): Likewise for param "insns" and local
3831         "last_insn".
3832         (expand_binop_directly): Add checked casts to rtx_insn * within
3833         NEXT_INSN (pat) uses.
3834         (expand_unop_direct): Likewise.
3835         (maybe_emit_unop_insn): Likewise.
3836         * recog.c (peep2_attempt): Strengthen locals "last",
3837         "before_try", "x" from rtx to rtx_insn *.
3838         * reorg.c (optimize_skip): Strengthen return type and local
3839         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
3840         and locals "trial", "next_trial" from rtx to rtx_insn *.
3841         * resource.c (next_insn_no_annul): Strengthen return type and
3842         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
3843         rtx_sequence to clarify the code.
3844         (mark_referenced_resources): Add a checked cast to rtx_insn *
3845         within PREV_INSN (x).
3846         (find_dead_or_set_registers): Strengthen return type, param
3847         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
3848         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
3849         to rtx_insn **.
3850         (mark_target_live_regs): Strengthen params "insns" and "target",
3851         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
3852         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
3853         the code.
3854         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
3855         from rtx to rtx_insn *.
3856         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
3857         from rtx to rtx_insn *.
3858         (copy_reg_eh_region_note_backward): Likewise.
3859         (unshare_all_rtl_in_chain): Likewise for sole param.
3860         (dump_rtl_slim): Strengthen second and third params from const_rtx
3861         to const rtx_insn *.
3862         * sched-deps.c (sched_free_deps): Strengthen params "head" and
3863         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
3864         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
3865         "next_tail" from rtx to rtx_insn *.
3866         (begin_move_insn): Likewise for local "next".
3867         * sched-int.h (sched_free_deps): Likewise for first and second
3868         params.
3869         (no_real_insns_p): Strengthen both params from const_rtx to
3870         const rtx_insn *.
3871         (sched_setup_bb_reg_pressure_info): Strengthen second params from
3872         rtx to rtx_insn *.
3873         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
3874         "next_tail".
3875         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
3876         and locals "insn", "tail" from const_rtx to const rtx_insn *.
3877         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
3878         rtx_insn *.
3879         (debug_rtl_slim): Strengthen params "first" and "last" from
3880         const_rtx to const rtx_insn *.
3881         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
3882         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
3883         (convert_to_simple_return): Likewise for param "returnjump".
3884         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
3885         "prologue_seq".
3886         (convert_to_simple_return): Likewise for param "returnjump".
3887         * valtrack.c (propagate_for_debug): Likewise for params
3888         "insn", "last".
3889         * valtrack.h (propagate_for_debug): Likewise for second param.
3890
3891 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3892
3893         * output.h (insn_current_reference_address): Strengthen param
3894         from rtx to rtx_insn *.
3895         * final.c (insn_current_reference_address): Likewise.
3896
3897 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3898
3899         * basic-block.h (inside_basic_block_p): Strengthen param from
3900         const_rtx to const rtx_insn *.
3901         * cfgbuild.c (inside_basic_block_p): Likewise.
3902
3903 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3904
3905         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
3906         rtx_insn *.
3907         (get_trace_info): Likewise for param "insn".
3908         (save_point_p): Likewise.
3909         (maybe_record_trace_start): Likewise for both params.
3910         (maybe_record_trace_start_abnormal): Likewise.
3911         (create_trace_edges): Likewise for sole param and for three of the
3912         locals named "lab".
3913         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
3914         to rtx_insn *, and update a call to pat->element to pat->insn.
3915
3916 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3917
3918         * function.h (struct expr_status): Convert field "x_forced_labels"
3919         from rtx_expr_list * to rtx_insn_list *.
3920
3921         * cfgbuild.c (make_edges): Convert local "x" from an
3922         rtx_expr_list * to an rtx_insn_list *, replacing use of
3923         "element" method with "insn" method.
3924         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
3925         * except.c (sjlj_emit_dispatch_table): Replace use of
3926         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
3927         forced_labels.
3928         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
3929         rtx_expr_list * to an rtx_insn_list *, replacing use of
3930         "element" method with "insn" method.
3931         * reload1.c (set_initial_label_offsets): Likewise for local "x".
3932         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
3933         rtx_insn *, adding a checked cast.  Replace use of
3934         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
3935         forced_labels.
3936         (expand_label): Likewise for local "label_r".
3937
3938 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3939
3940         * function.h (struct rtl_data): Convert field
3941         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
3942         rtx_insn_list *.
3943         * rtl.h (remove_node_from_insn_list): New prototype.
3944
3945         * builtins.c (expand_builtin): When prepending to
3946         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
3947         gen_rtx_EXPR_LIST.
3948         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
3949         to rtx_insn_list *, and use its "insn" method rather than
3950         "element" method.
3951         * cfgrtl.c (delete_insn): Use new function
3952         remove_node_from_insn_list rather than
3953         remove_node_from_expr_list.
3954         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
3955         to rtx_insn_list *, and use its "insn" method rather than
3956         "element" method.
3957         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
3958         * reload1.c (set_initial_label_offsets): Likewise for local "x".
3959         * rtlanal.c (remove_node_from_insn_list): New function, adapted
3960         from remove_node_from_expr_list.
3961         * stmt.c (expand_label): When prepending to
3962         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
3963         gen_rtx_EXPR_LIST.
3964
3965 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3966
3967         * function.h (struct rtl_data): Strengthen fields "x_return_label"
3968         and "x_naked_return_label" from rtx to rtx_code_label *.
3969
3970 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3971
3972         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
3973         (SET_NEXT_INSN): Likewise.
3974         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
3975
3976         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
3977         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
3978         to split out the SEQUENCE from local "bundle", strengthening the
3979         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
3980         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
3981         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
3982         and the type of the elements of the "slot" array from rtx to
3983         rtx_insn *.
3984         (reorg_split_calls): Likewise for locals "insn" and "next", and
3985         the type of the elements of the "slot" array.
3986
3987         * config/frv/frv.c (frv_nops): Likewise for the elements of this
3988         array.
3989         (frv_function_prologue): Likewise for locals "insn", "next",
3990         "last_call".
3991         (frv_register_nop): Introduce a local "nop_insn" to be the
3992         rtx_insn * containing rtx "nop".
3993
3994         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
3995         used as an insn and sometimes as a pattern, so rename it to
3996         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
3997         using it where dealing with the core insn.
3998
3999         * config/picochip/picochip.c (reorder_var_tracking_notes):
4000         Strengthen locals "insn", "next", "last_insn", "queue",
4001         "next_queue", "prev" from rtx to rtx_insn *.
4002
4003         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
4004         the second param is an rtx_insn ** rather than an rtx **.
4005         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
4006         from rtx to rtx_sequence *, and introduce local named "sequence",
4007         using methods of rtx_sequence to clarify the code.
4008         (remove_insn): Introduce local rtx_sequence * named "sequence" and
4009         use its methods.
4010         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
4011         Rename param "after" to "uncast_after", reintroducing "after" as a
4012         local rtx_insn * with a checked cast.
4013         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
4014         reintroducing "after" as a local rtx_insn * with a checked cast.
4015         Strengthen local "last" from rtx to rtx_insn * and remove the
4016         now-redundant checked casts.
4017         (copy_delay_slot_insn): Strengthen return type and param from rtx
4018         to rtx_insn *.
4019
4020         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
4021         "last" from rtx to rtx_insn *.
4022
4023 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4024
4025         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
4026         param from rtx to rtx_insn *.
4027
4028         * emit-rtl.c (copy_delay_slot_insn): Likewise.
4029
4030         * reorg.c (skip_consecutive_labels): Strengthen return type, param
4031         and local "insn" from rtx to rtx_insn *.
4032         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
4033         (unfilled_slots_next): Likewise.
4034         (function_return_label): Strengthen from rtx to rtx_code_label *.
4035         (function_simple_return_label): Likewise.
4036         (first_active_target_insn): Strengthen return type and param from
4037         rtx to rtx_insn *.
4038         (find_end_label): Strengthen return type from rtx to
4039         rtx_code_label *; strengthen locals as appropriate.
4040         (emit_delay_sequence): Strengthen return type, param "insn" and
4041         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
4042         and local "li" from rtx to rtx_insn_list *, using methods of
4043         rtx_insn_list for clarity and typesafety.
4044         (add_to_delay_list): Strengthen return type and param "insn" from
4045         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
4046         rtx_insn_list * and use methods of rtx_insn_list.
4047         (delete_from_delay_slot): Strengthen return type, param "insn",
4048         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
4049         Strengthen local "seq" from rtx to rtx_sequence *, and local
4050         "delay_list" from rtx to rtx_insn_list *, using methods of
4051         rtx_sequence for clarity and type-safety.
4052         (delete_scheduled_jump): Add checked cast when invoking
4053         delete_from_delay_slot.  Strengthen local "trial" from rtx to
4054         rtx_insn *.
4055         (optimize_skip): Strengthen return type and local "delay_list"
4056         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
4057         rtx_insn *.
4058         (steal_delay_list_from_target): Strengthen return type, param
4059         "delay_list" and local "new_delay_list" from rtx to
4060         rtx_insn_list *.  Strengthen param "seq" from rtx to
4061         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
4062         rtx_insn **.
4063         Split out local "temp" into multiple more-tightly scoped locals:
4064         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
4065         of rtx_insn_list and rtx_sequence for clarity and typesafety.
4066         Strengthen locals named "trial" from rtx to rtx_insn *.
4067         (steal_delay_list_from_fallthrough): Strengthen return type and
4068         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
4069         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
4070         Strengthen local "trial" from rtx to rtx_insn *.
4071         (try_merge_delay_insns): Strength local "merged_insns" from rtx
4072         to rtx_insn_list * and use its methods.  Strengthen local "pat"
4073         from rtx to rtx_sequence * and use its methods.  Strengthen locals
4074         "dtrial" and "new_rtx" from rtx to rtx_insn *.
4075         (get_label_before): Strengthen return type and local "label" from
4076         rtx to rtx_insn *.
4077         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
4078         "next_trial", "next", prev".  Strengthen local "delay_list" from
4079         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
4080         rtx_insn **.
4081         (follow_jumps): Strengthen return type, param "label" and locals
4082         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
4083         (fill_slots_from_thread): Strengthen return type, param
4084         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
4085         "insn", "thread", "opposite_thread" and locals "new_thread",
4086         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
4087         "sequence" from a checked cast to rtx_sequence so that we can call
4088         steal_delay_list_from_target and steal_delay_list_from_fallthrough
4089         with an rtx_sequence *.
4090         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
4091         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
4092         Strengthen local "delay_list" from rtx to rtx_insn_list *.
4093         (relax_delay_slots): Strengthen param "first" and locals "insn",
4094         "next", "trial", "delay_insn", "target_label" from rtx to
4095         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
4096         Introduce a local "trial_seq" for PATTERN (trial) of type
4097         rtx_sequence *, in both cases using methods of rtx_sequence.
4098         (dbr_schedule): Strengthen param "first" and locals "insn",
4099         "next", "epilogue_insn" from rtx to rtx_insn *.
4100
4101 2014-08-28  Richard Biener  <rguenther@suse.de>
4102
4103         PR tree-optimization/62283
4104         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4105         Do not peel loops for alignment where the vector loop likely
4106         doesn't run at least VF times.
4107
4108 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
4109
4110         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
4111         important_candidates.  Consider all important candidates if
4112         IVS doesn't give any result.  Remove check on ivs->upto.
4113         (try_add_cand_for): Call iv_ca_add_use only once.
4114
4115 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4116             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4117             Anna Tikhonova  <anna.tikhonova@intel.com>
4118             Ilya Tocar  <ilya.tocar@intel.com>
4119             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4120             Ilya Verbin  <ilya.verbin@intel.com>
4121             Kirill Yukhin  <kirill.yukhin@intel.com>
4122             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4123
4124         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
4125         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
4126         masking.
4127         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
4128         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
4129         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
4130         (define_insn "*mul<mode>3"): Add EVEX version.
4131
4132 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4133             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4134             Anna Tikhonova  <anna.tikhonova@intel.com>
4135             Ilya Tocar  <ilya.tocar@intel.com>
4136             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4137             Ilya Verbin  <ilya.verbin@intel.com>
4138             Kirill Yukhin  <kirill.yukhin@intel.com>
4139             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4140
4141         * config/i386/sse.md
4142         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
4143         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
4144         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
4145         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
4146         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
4147         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
4148         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
4149         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
4150         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
4151         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
4152         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
4153         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
4154         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
4155         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
4156         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
4157         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
4158
4159 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4160             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4161             Anna Tikhonova  <anna.tikhonova@intel.com>
4162             Ilya Tocar  <ilya.tocar@intel.com>
4163             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4164             Ilya Verbin  <ilya.verbin@intel.com>
4165             Kirill Yukhin  <kirill.yukhin@intel.com>
4166             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4167
4168         * config/i386/sse.md
4169         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
4170         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
4171         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
4172
4173 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4174             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4175             Anna Tikhonova  <anna.tikhonova@intel.com>
4176             Ilya Tocar  <ilya.tocar@intel.com>
4177             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4178             Ilya Verbin  <ilya.verbin@intel.com>
4179             Kirill Yukhin  <kirill.yukhin@intel.com>
4180             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4181
4182         * config/i386/sse.md
4183         (define_mode_iterator VI128_256): New.
4184         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
4185
4186 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4187             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4188             Anna Tikhonova  <anna.tikhonova@intel.com>
4189             Ilya Tocar  <ilya.tocar@intel.com>
4190             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4191             Ilya Verbin  <ilya.verbin@intel.com>
4192             Kirill Yukhin  <kirill.yukhin@intel.com>
4193             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4194
4195         * config/i386/sse.md
4196         (define_mode_iterator VI8_256_512): New.
4197         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
4198         Ditto.
4199         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
4200         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
4201         Ditto.
4202         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
4203
4204 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4205
4206         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
4207         pointer to the cumulative reloc value and return the value for
4208         this reloc instead.
4209         (compute_reloc_for_rtx): Take a const_rtx.  Call
4210         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
4211         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
4212         for_each_rtx for the CONST case.
4213
4214 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4215
4216         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
4217         (mark_constants_in_pattern): ...this new function to iterate over
4218         all the subrtxes.
4219         (mark_constants): Update accordingly.
4220
4221 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4222
4223         * varasm.c: Include rtl-iter.h.
4224         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
4225         Remove the pointer to the cumulative hashval_t and just return
4226         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
4227         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4228         Accumulate the hashval_ts here instead of const_rtx_hash_1.
4229
4230 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4231
4232         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
4233         Give real type of data parameter.  Remove return value.
4234         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
4235         to iterate over subrtxes.
4236
4237 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4238
4239         * var-tracking.c (use_narrower_mode_test): Turn from being a
4240         for_each_rtx callback to being a function that examines each
4241         subrtx itself.
4242         (adjust_mems): Update accordingly.
4243
4244 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4245
4246         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
4247         callback to being a function that examines each subrtx itself.
4248         Remove handling of null rtxes.
4249         (add_uses): Update accordingly.
4250
4251 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4252
4253         * var-tracking.c: Include rtl-iter.h.
4254         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
4255         to being a function that examines each subrtx itself.
4256         (use_type): Update accordingly.
4257
4258 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4259
4260         * store-motion.c: Include rtl-iter.h.
4261         (extract_mentioned_regs_1): Delete.
4262         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
4263         for_each_rtx to iterate over subrtxes.
4264
4265 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4266
4267         * sel-sched.c: Include rtl-iter.h
4268         (count_occurrences_1): Delete.
4269         (count_occurrences_equiv): Turn rtxes into const_rtxes.
4270         Use FOR_EACH_SUBRTX rather than for_each_rtx.
4271
4272 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4273
4274         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
4275         * rtlanal.c (tls_referenced_p_1): Delete.
4276         (tls_referenced_p): Take a const_rtx rather than an rtx.
4277         Use FOR_EACH_SUBRTX rather than for_each_rtx.
4278
4279 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4280
4281         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
4282         (for_each_inc_dec): Take an rtx rather than an rtx *.
4283         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
4284         (cselib_record_sets): Likewise.
4285         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
4286         (check_for_inc_dec): Likewise.
4287         * rtlanal.c (for_each_inc_dec_ops): Delete.
4288         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
4289         rather than a pointer to the memory address.  Replace
4290         for_each_inc_dec_ops argument with separate function and data
4291         arguments.  Abort on non-autoinc addresses.
4292         (for_each_inc_dec_find_mem): Delete.
4293         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
4294         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
4295
4296 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4297
4298         * rtl.h (find_all_hard_regs): Declare.
4299         * rtlanal.c (find_all_hard_regs): New function.
4300         (record_hard_reg_uses_1): Delete.
4301         (record_hard_reg_uses): Use find_all_hard_regs.
4302
4303 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4304
4305         * rtl.h (replace_label_data): Delete.
4306         (replace_label): Take the old label, new label and update-nuses flag
4307         as direct arguments.  Return void.
4308         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
4309         * rtlanal.c (replace_label): Update interface as above.  Handle
4310         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
4311         iterator.  Use FOR_EACH_SUBRTX_PTR.
4312
4313 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4314
4315         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
4316         with const_rtx parameters.
4317         * varasm.c (get_pool_constant): Likewise.
4318         * rtlanal.c (rtx_referenced_p_1): Delete.
4319         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4320         Assert that the rtx we're looking for is nonnull.  Allow searches
4321         for constant pool SYMBOL_REFs.
4322
4323 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4324
4325         * reload1.c: Include rtl-iter.h.
4326         (note_reg_elim_costly): Turn from being a for_each_rtx callback
4327         to being a function that examines each subrtx itself.
4328         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
4329
4330 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4331
4332         * regcprop.c (cprop_find_used_regs_1): Delete.
4333         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4334
4335 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4336
4337         * regcprop.c: Include rtl-iter.h.
4338         (kill_value): Take a const_rtx.
4339         (kill_autoinc_value): Turn from being a for_each_rtx callback
4340         to being a function that examines each subrtx itself.
4341         (copyprop_hardreg_forward_1): Update accordingly.
4342
4343 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4344
4345         * reg-stack.c: Include rtl-iter.h.
4346         (subst_stack_regs_in_debug_insn): Delete.
4347         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
4348         instead of for_each_rtx.
4349
4350 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4351
4352         * lower-subreg.c (find_decomposable_subregs): Turn from being
4353         a for_each_rtx callback to being a function that examines each
4354         subrtx itself.  Remove handling of null rtxes.
4355         (decompose_multiword_subregs): Update accordingly.
4356
4357 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4358
4359         * lower-subreg.c (adjust_decomposed_uses): Delete.
4360         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
4361         Remove handling of null rtxes.
4362
4363 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4364
4365         * lower-subreg.c: Include rtl-iter.h.
4366         (resolve_subreg_use): Turn from being a for_each_rtx callback
4367         to being a function that examines each subrtx itself.  Remove
4368         handling of null rtxes.
4369         (resolve_reg_notes, resolve_simple_move): Update accordingly.
4370         (decompose_multiword_subregs): Likewise.
4371
4372 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4373
4374         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
4375         to being a function that examines each subrtx itself.
4376         (simplify_using_condition, simplify_using_initial_values): Update
4377         accordingly.
4378
4379 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4380
4381         * loop-iv.c: Include rtl-iter.h.
4382         (find_single_def_src): New function.
4383         (replace_single_def_regs): Turn from being a for_each_rtx callback
4384         to being a function that examines each subrtx itself.
4385         (replace_in_expr, simplify_using_initial_values): Update accordingly.
4386
4387 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4388
4389         * jump.c (eh_returnjump_p_1): Delete.
4390         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
4391         Remove handling of null rtxes.
4392
4393 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4394
4395         * jump.c: Include rtl-iter.h.
4396         (returnjump_p_1): Delete.
4397         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
4398         Remove handling of null rtxes.
4399
4400 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4401
4402         * ira.c: Include rtl-iter.h.
4403         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
4404         to being a function that examines each subrtx itself.  Remove
4405         handling of null rtxes.
4406         (update_equiv_regs): Update call accordingly.
4407
4408 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4409
4410         * fwprop.c: Include rtl-iter.h.
4411         (varying_mem_p): Turn from being a for_each_rtx callback to being
4412         a function that examines each subrtx itself.
4413         (propagate_rtx): Update accordingly.
4414
4415 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4416
4417         * function.c: Include rtl-iter.h
4418         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
4419         callback to being a function that examines each subrtx itself.
4420         Return the changed flag.
4421         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
4422         (instantiate_virtual_regs): Update calls accordingly.
4423
4424 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4425
4426         * final.c: Include rtl-iter.h.
4427         (mark_symbol_ref_as_used): Delete.
4428         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
4429         for_each_rtx.
4430
4431 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4432
4433         * emit-rtl.c: Include rtl-iter.h.
4434         (find_auto_inc): Turn from being a for_each_rtx callback to being
4435         a function that examines each subrtx itself.  Assume the first operand
4436         to an RTX_AUTOINC is the automodified register.
4437         (try_split): Update call accordingly.
4438
4439 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4440
4441         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
4442         Return a bool, inverting the result so that 0/false means "not ok".
4443         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
4444         subrtxes of a CONST.
4445         (mem_loc_descriptor, add_const_value_attribute)
4446         (resolve_addr_in_expr): Update calls accordingly.
4447
4448 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4449
4450         * dwarf2out.c: Include rtl-iter.h.
4451         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
4452         Remove unused data parameter.  Return a bool, inverting the result
4453         so that 0/false means "not ok".
4454         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
4455         instead of for_each_rtx.
4456
4457 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4458
4459         * dse.c: Include rtl-iter.h.
4460         (check_mem_read_rtx): Change void * parameter to real type.
4461         Remove return value.
4462         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
4463         for_each_rtx.  Don't handle null rtxes.
4464
4465 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4466
4467         * df-problems.c: Include rtl-iter.h.
4468         (find_memory): Turn from being a for_each_rtx callback to being
4469         a function that examines each subrtx itself.  Continue to look for
4470         volatile references even after a nonvolatile one has been found.
4471         (can_move_insns_across): Update calls accordingly.
4472
4473 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4474
4475         * ddg.c (walk_mems_2, walk_mems_1): Delete.
4476         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
4477         to iterate over subrtxes.  Return a bool rather than an int.
4478
4479 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4480
4481         * ddg.c: Include rtl-iter.h.
4482         (mark_mem_use_1): Rename to...
4483         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
4484         instead of for_each_rtx.
4485         (mem_read_insn_p): Update accordingly.
4486
4487 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4488
4489         * cse.c (change_cc_mode_args): Delete.
4490         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
4491         a function that examines each subrtx itself.  Take the fields of
4492         change_cc_mode_args as argument and return void.
4493         (cse_change_cc_mode_insn): Update calls accordingly.
4494
4495 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4496
4497         * cse.c (is_dead_reg): Change argument to const_rtx.
4498         (dead_debug_insn_data): Delete.
4499         (is_dead_debug_insn): Expand commentary.  Turn from being a
4500         for_each_rtx callback to being a function that examines
4501         each subrtx itself.  Take the fields of dead_debug_insn_data
4502         as argument.
4503         (delete_trivially_dead_insns): Update call accordingly.
4504
4505 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4506
4507         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
4508         being a for_each_rtx callback to being a function that examines
4509         each subrtx itself.
4510         (cse_extended_basic_block): Update call accordingly.
4511
4512 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4513
4514         * cse.c (check_dependence_data): Delete.
4515         (check_dependence): Change from being a for_each_rtx callback to being
4516         a function that examines all subrtxes itself.  Don't handle null rtxes.
4517         (invalidate): Update call accordingly.
4518
4519 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4520
4521         * cse.c: Include rtl-iter.h.
4522         (approx_reg_cost_1): Delete.
4523         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4524         Don't handle null rtxes.
4525
4526 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4527
4528         * cfgcleanup.c: Include rtl-iter.h.
4529         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
4530         to being a function that examines each subrtx itself.
4531         (thread_jump): Update accordingly.
4532
4533 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4534
4535         * combine-stack-adj.c: Include rtl-iter.h.
4536         (record_stack_refs_data): Delete.
4537         (record_stack_refs): Turn from being a for_each_rtx callback
4538         to being a function that examines each subrtx itself.
4539         Take a pointer to the reflist.  Invert sense of return value
4540         so that true means success and false means failure.  Don't
4541         handle null rtxes.
4542         (combine_stack_adjustments_for_block): Update accordingly.
4543
4544 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4545
4546         * combine.c (record_truncated_value): Turn from being a for_each_rtx
4547         callback to a function that takes an rtx and returns a bool
4548         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
4549         for_each_rtx.
4550
4551 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4552
4553         * combine.c: Include rtl-iter.h.
4554         (unmentioned_reg_p_1): Delete.
4555         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
4556         Don't handle null rtxes.
4557
4558 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4559
4560         * calls.c: Include rtl-iter.h.
4561         (internal_arg_pointer_based_exp_1): Delete.
4562         (internal_arg_pointer_based_exp): Take a const_rtx.
4563         Use FOR_EACH_SUBRTX to iterate over subrtxes.
4564
4565 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4566
4567         * caller-save.c: Include rtl-iter.h.
4568         (add_used_regs_1): Delete.
4569         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
4570         to iterate over subrtxes.  Assert that any remaining pseudos
4571         have been spilled.
4572
4573 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4574
4575         * bt-load.c: Include rtl-iter.h.
4576         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
4577         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
4578         to iterate over subrtxes.
4579         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
4580         find_btr_use rather than btr_referenced_p.
4581
4582 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4583
4584         * alias.c: Include rtl-iter.h.
4585         (refs_newer_value_cb): Delete.
4586         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4587
4588 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4589
4590         * rtl-iter.h: New file.
4591         * rtlanal.c: Include it.
4592         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
4593         (generic_subrtx_iterator <T>::add_single_to_queue)
4594         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
4595         (generic_subrtx_iterator <T>::free_array): New functions.
4596         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
4597         (generic_subrtx_iterator <const_rtx_accessor>)
4598         (generic_subrtx_iterator <rtx_var_accessor>
4599         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
4600         (setup_reg_subrtx_bounds): New function.
4601         (init_rtlanal): Call it.
4602
4603 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
4604
4605         PR target/62261
4606         * config/sh/sh.md (ashlsi3): Handle negative shift count for
4607         TARGET_SHMEDIA.
4608         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
4609
4610 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
4611
4612         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
4613
4614 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4615
4616         * rtl.h (JUMP_LABEL_AS_INSN): New.
4617
4618 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4619
4620         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
4621         rtx_expr_list **.
4622         (alloc_EXPR_LIST): Strengthen return type from rtx to
4623         rtx_expr_list *.
4624         (remove_free_EXPR_LIST_node): Likewise for param.
4625         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
4626         from rtx to rtx_expr_list *.
4627         * sched-int.h (struct deps_desc): Strengthen fields
4628         "pending_read_mems" and "pending_write_mems" from rtx to
4629         rtx_expr_list *.
4630
4631         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
4632         rtx to rtx_expr_list *.
4633         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
4634         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
4635         rtx_expr_list **.
4636         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
4637         from rtx to rtx_expr_list *.
4638         * loop-iv.c (simplify_using_initial_values): Strengthen local
4639         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
4640         "pnote_next" from rtx * to rtx_expr_list **.
4641         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
4642         param "exprp" from rtx * to rtx_expr_list **.
4643         (add_insn_mem_dependence): Strengthen local "mem_list" from
4644         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
4645         to rtx_expr_list *.
4646         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
4647         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
4648         param "old_mems_p" from rtx * to rtx_expr_list **.
4649         * var-tracking.c (struct adjust_mem_data): Strengthen field
4650         "side_effects" from rtx to rtx_expr_list *.
4651         (adjust_insn): Replace NULL_RTX with NULL when assigning to
4652         rtx_expr_list *.
4653         (prepare_call_arguments): Likewise.
4654
4655 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4656
4657         * function.h (struct rtl_data): Strengthen field
4658         "x_stack_slot_list" from rtx to rtx_expr_list *.
4659
4660         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
4661         when assigning to stack_slot_list.
4662
4663 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4664
4665         * function.h (struct rtl_data): Strengthen field
4666         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
4667         * rtl.h (remove_node_from_expr_list): Strengthen second param from
4668         rtx * to rtx_expr_list **.
4669
4670         * cfgbuild.c (make_edges): In loop over
4671         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
4672         rtx_expr_list *, and use methods of the latter class to clarify
4673         the code.
4674         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
4675         rtx_expr_list *, and use methods of the latter class to clarify
4676         the code.
4677         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
4678         * reload1.c (set_initial_label_offsets): Likewise for local "x".
4679         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
4680         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
4681         to rtx_expr_list *.  Use methods of the latter class to clarify
4682         the code.
4683
4684 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4685
4686         * function.h (struct expr_status): Strengthen field
4687         "x_forced_labels" from rtx to rtx_expr_list *.
4688
4689         * cfgbuild.c (make_edges): Split local "x" into two locals,
4690         strengthening one from rtx to rtx_expr_list *, and using methods
4691         of said class.
4692         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
4693         loop over forced_labels, introduce strengthen it from rtx to
4694         rtx_expr_list *, using methods to clarify the code.
4695         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
4696         to rtx_expr_list *, using methods of said class to clarify the
4697         code.
4698         * reload1.c (set_initial_label_offsets): Split local "x" into two
4699         per-loop variables, strengthening the first from rtx to
4700         rtx_expr_list * and using methods.
4701
4702 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4703
4704         * coretypes.h (class rtx_expr_list): Add forward declaration.
4705         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
4706         * gengenrtl.c (special_rtx): Add EXPR_LIST.
4707         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
4708         invariant: GET_CODE (X) == EXPR_LIST.
4709         (is_a_helper <rtx_expr_list *>::test): New.
4710         (rtx_expr_list::next): New.
4711         (rtx_expr_list::element): New.
4712         (gen_rtx_EXPR_LIST): New.
4713
4714 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4715
4716         * varasm.c (mark_constants): Convert a GET_CODE check into a
4717         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
4718         Use methods of rtx_sequence to clarify the code.
4719
4720 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4721
4722         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
4723         local "seq" via a checked cast, and use methods of rtx_sequence
4724         to simplify the code.
4725
4726 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4727
4728         * resource.c (mark_referenced_resources): Strengthen local
4729         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
4730         using methods of rtx_sequence to clarify the code.
4731         (find_dead_or_set_registers): Within the switch statement, convert
4732         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
4733         the JUMP_P handling, introduce another local "seq", adding a
4734         checked cast to rtx_sequence *.  In both cases, use methods of
4735         rtx_sequence to clarify the code.
4736         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
4737         via a checked cast, and use methods of rtx_sequence to simplify
4738         the code.
4739
4740 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4741
4742         * reorg.c (redundant_insn): In two places in the function, replace
4743         a check of GET_CODE with a dyn_cast, introducing local "seq", and
4744         usings methods of rtx_sequence to clarify the code.
4745
4746 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4747
4748         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
4749         local "seq" with a checked cast, and use methods of rtx_sequence
4750         to clarify the code.
4751
4752 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4753
4754         * function.c (contains): Introduce local "seq" for PATTERN (insn),
4755         with a checked cast, in the region for where we know it's a
4756         SEQUENCE.  Use methods of rtx_sequence.
4757
4758 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4759
4760         * final.c (get_attr_length_1): Replace GET_CODE check with a
4761         dyn_cast, introducing local "seq" and the use of methods of
4762         rtx_sequence.
4763         (shorten_branches): Likewise, introducing local "body_seq".
4764         Strengthen local "inner_insn" from rtx to rtx_insn *.
4765         (reemit_insn_block_notes): Replace GET_CODE check with a
4766         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
4767         Use methods of rtx_sequence.
4768         (final_scan_insn): Likewise, introducing local "seq" for when
4769         "body" is known to be a SEQUENCE, using its methods.
4770
4771 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4772
4773         * except.c (can_throw_external): Strengthen local "seq" from rtx
4774         to rtx_sequence *.  Use methods of rtx_sequence.
4775         (insn_nothrow_p): Likewise.
4776
4777 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4778
4779         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
4780         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
4781         Use methods of rtx_sequence.
4782         (scan_trace): Likewise for local "pat".
4783
4784 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4785
4786         * coretypes.h (class rtx_sequence): Add forward declaration.
4787         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
4788         invariant: GET_CODE (X) == SEQUENCE.
4789         (is_a_helper <rtx_sequence *>::test): New.
4790         (is_a_helper <const rtx_sequence *>::test): New.
4791         (rtx_sequence::len): New.
4792         (rtx_sequence::element): New.
4793         (rtx_sequence::insn): New.
4794
4795 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4796
4797         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
4798         rtx_insn_list **.
4799         (alloc_INSN_LIST): Strengthen return type from rtx to
4800         rtx_insn_list *.
4801         (copy_INSN_LIST): Likewise for return type and param.
4802         (concat_INSN_LIST): Likewise for both params and return type.
4803         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
4804         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
4805         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
4806         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
4807
4808         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
4809         "implicit_sets", "control_uses", "clobbers" from rtx to
4810         rtx_insn_list *.
4811         (struct deps_desc): Likewise for fields "pending_read_insns",
4812         "pending_write_insns", "pending_jump_insns",
4813         "last_pending_memory_flush", "last_function_call",
4814         "last_function_call_may_noreturn", "sched_before_next_call",
4815         "sched_before_next_jump".
4816         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
4817         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
4818
4819         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
4820         from rtx to rtx_insn_list *.
4821         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
4822         rtx_insn_list *.
4823
4824         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
4825         to rtx_insn_list **.
4826         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
4827         rtx_insn_list *.
4828         (queue_insn): Likewise for local "link".
4829         (struct haifa_saved_data): Strengthen field "insn_queue" from
4830         rtx * to rtx_insn_list **.
4831         (save_backtrack_point): Update allocation of save->insn_queue to
4832         reflect the strengthening of elements from rtx to rtx_insn_list *.
4833         (queue_to_ready): Strengthen local "link" from rtx to
4834         rtx_insn_list *; use methods "next" and "insn" when traversing the
4835         list.
4836         (early_queue_to_ready): Likewise for locals "link", "next_link",
4837         "prev_link".
4838         (schedule_block): Update allocation of insn_queue to reflect the
4839         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
4840         local "link" from rtx to rtx_insn_list *, and use methods when
4841         working it.
4842         (add_to_speculative_block): Strengthen locals "twins" and
4843         "next_node" from rtx to rtx_insn_list *, and use methods when
4844         working with them.  Strengthen local "twin" from rtx to
4845         rtx_insn *, eliminating a checked cast.
4846         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
4847         from rtx to rtx_insn_list *, and use methods when working with
4848         them.
4849
4850         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
4851         from rtx to rtx_insn_list *, adding a checked cast.
4852         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
4853         rtx_insn_list **.
4854         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
4855         "newlink" from rtx to rtx_insn_list *.  Strengthen local
4856         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
4857         from rtx to rtx_insn *.
4858         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
4859         from rtx to rtx_insn_list *.  Use methods of the latter class.
4860         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
4861         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
4862         (remove_free_INSN_LIST_node): Strengthen return type and local
4863         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
4864         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
4865         rtx_insn_list *, using "insn" method.
4866
4867         * sched-deps.c (add_dependence_list):  Strengthen param "list"
4868         from rtx to rtx_insn_list *, and use methods when working with it.
4869         (add_dependence_list_and_free):  Strengthen param "listp" from
4870         rtx * to rtx_insn_list **.
4871         (remove_from_dependence_list): Strenghten param "listp" from rtx *
4872         to rtx_insn_list **, and use methods when working with *listp.
4873         (remove_from_both_dependence_lists): Strengthen param "listp" from
4874         rtx * to rtx_insn_list **
4875         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
4876         to rtx_insn_list **.  Eliminate local "link", in favor of two new
4877         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
4878         respectively.
4879         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
4880         by introducing local "cond_deps".
4881         (remove_from_deps): Strengthen param "insn" from rtx to
4882         rtx_insn *.
4883
4884         * sched-rgn.c (concat_insn_mem_list): Strengthen param
4885         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
4886         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
4887         Use methods of rtx_insn_list.
4888
4889         * store-motion.c (struct st_expr): Strengthen fields
4890         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
4891         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
4892         rtx_insn_list *.
4893         (find_moveable_store): Split out "tmp" into multiple more-tightly
4894         scoped locals.  Use methods of rtx_insn_list *.
4895         (compute_store_table): Strengthen local "tmp" from rtx to
4896         rtx_insn *.  Use methods of rtx_insn_list *.
4897
4898 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4899
4900         * coretypes.h (class rtx_insn_list): Add forward declaration.
4901         * rtl.h (class rtx_insn_list): New subclass of rtx_def
4902         (is_a_helper <rtx_insn_list *>::test): New.
4903         (rtx_insn_list::next): New.
4904         (rtx_insn_list::insn): New.
4905         (gen_rtx_INSN_LIST): Add prototype.
4906         * emit-rtl.c (gen_rtx_INSN_LIST): New.
4907         * gengenrtl.c (special_rtx): Add INSN_LIST.
4908
4909 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4910
4911         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
4912         "prev" from rtx to rtx_insn *.
4913
4914 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4915
4916         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
4917         functions.  Require merely an rtx for now, not an rtx_insn *.
4918         (BLOCK_FOR_INSN): Likewise.
4919         (INSN_LOCATION): Likewise.
4920         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
4921
4922 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4923
4924         * rtl.h (PATTERN): Convert this macro into a pair of inline
4925         functions, for now, requiring const_rtx and rtx.
4926
4927 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4928
4929         * target.def (unwind_emit): Strengthen param "insn" from rtx to
4930         rtx_insn *.
4931         (final_postscan_insn): Likewise.
4932         (adjust_cost): Likewise.
4933         (adjust_priority): Likewise.
4934         (variable_issue): Likewise.
4935         (macro_fusion_pair_p): Likewise.
4936         (dfa_post_cycle_insn): Likewise.
4937         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
4938         (first_cycle_multipass_issue): Likewise.
4939         (dfa_new_cycle): Likewise.
4940         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
4941         (speculate_insn): Likewise for param "insn".
4942         (gen_spec_check): Likewise for params "insn" and "label".
4943         (get_insn_spec_ds): Likewise for param "insn".
4944         (get_insn_checked_ds): Likewise.
4945         (dispatch_do): Likewise.
4946         (dispatch): Likewise.
4947         (cannot_copy_insn_p): Likewise.
4948         (invalid_within_doloop): Likewise.
4949         (legitimate_combined_insn): Likewise.
4950         (needed): Likewise.
4951         (after): Likewise.
4952
4953         * doc/tm.texi: Automatically updated to reflect changes to
4954         target.def.
4955
4956         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
4957         working with insn.
4958         (schedule_block): Likewise.
4959         (sched_init): Likewise.
4960         (sched_speculate_insn): Strengthen param "insn" from rtx to
4961         rtx_insn *.
4962         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
4963         working with insn.
4964         * hooks.c (hook_bool_rtx_true): Rename to...
4965         hook_bool_rtx_insn_true): ...this, and strengthen first param from
4966         rtx to rtx_insn *.
4967         (hook_constcharptr_const_rtx_null): Rename to...
4968         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
4969         first param from const_rtx to const rtx_insn *.
4970         (hook_bool_rtx_int_false): Rename to...
4971         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
4972         param from rtx to rtx_insn *.
4973         (hook_void_rtx_int): Rename to...
4974         (hook_void_rtx_insn_int): ...this, and strengthen first param from
4975         rtx to rtx_insn *.
4976
4977         * hooks.h (hook_bool_rtx_true): Rename to...
4978         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
4979         rtx to rtx_insn *.
4980         (hook_bool_rtx_int_false): Rename to...
4981         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
4982         param from rtx to rtx_insn *.
4983         (hook_void_rtx_int): Rename to...
4984         (hook_void_rtx_insn_int): ...this, and strengthen first param from
4985         rtx to rtx_insn *.
4986         (hook_constcharptr_const_rtx_null): Rename to...
4987         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
4988         first param from const_rtx to const rtx_insn *.
4989
4990         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
4991         and local "prev" from rtx to rtx_insn *.
4992
4993         * sched-int.h (sched_speculate_insn): Strengthen first param from
4994         rtx to rtx_insn *.
4995
4996         * sel-sched.c (create_speculation_check): Likewise for local "label".
4997         * targhooks.c (default_invalid_within_doloop): Strengthen param
4998         "insn" from const_rtx to const rtx_insn *.
4999         * targhooks.h (default_invalid_within_doloop): Strengthen param
5000         from const_rtx to const rtx_insn *.
5001
5002         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
5003         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
5004
5005         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
5006         "insn".
5007         (arc_invalid_within_doloop): Likewise, with const.
5008
5009         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
5010         (arm_cannot_copy_insn_p): Likewise for param "insn".
5011         (arm_unwind_emit): Likewise.
5012
5013         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
5014         "dep_insn".
5015
5016         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
5017         (c6x_variable_issue): Likewise.  Removed now-redundant checked
5018         cast.
5019         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
5020
5021         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
5022         Likewise for param "insn".
5023         (epiphany_mode_after): Likewise.
5024         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
5025         params "insn", "dep_insn".
5026         (epiphany_mode_needed): Likewise for param "insn".
5027         (epiphany_mode_after): Likewise.
5028
5029         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
5030         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
5031         (ix86_avx_u128_mode_needed): Likewise.
5032         (ix86_i387_mode_needed): Likewise.
5033         (ix86_mode_needed): Likewise.
5034         (ix86_avx_u128_mode_after): Likewise.
5035         (ix86_mode_after): Likewise.
5036         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
5037         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
5038         (ix86_adjust_priority): Likewise for param "insn".
5039         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
5040         (do_dispatch): Likewise.
5041         (has_dispatch): Likewise.
5042         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
5043
5044         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
5045         reflect renaming of default hook implementation from
5046         hook_constcharptr_const_rtx_null to
5047         hook_constcharptr_const_rtx_insn_null.
5048         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
5049         rtx to rtx_insn *.
5050         (ia64_variable_issue): Likewise for param "insn".
5051         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
5052         (ia64_dfa_new_cycle): Likewise.
5053         (ia64_get_insn_spec_ds): Likewise.
5054         (ia64_get_insn_checked_ds): Likewise.
5055         (ia64_speculate_insn): Likewise.
5056         (ia64_gen_spec_check): Likewise for params "insn", "label".
5057         (ia64_asm_unwind_emit): Likewise for param "insn".
5058
5059         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
5060
5061         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
5062         "insn", "def_insn".
5063         (m68k_sched_variable_issue): Likewise for param "insn".
5064
5065         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
5066         "def_insn".
5067
5068         * config/microblaze/microblaze.c (microblaze_adjust_cost):
5069         Likewise for params "insn", "dep".
5070
5071         * config/mips/mips.c (mips_adjust_cost): Likewise.
5072         (mips_variable_issue): Likewise for param "insn".
5073         (mips_final_postscan_insn): Likewise.
5074
5075         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
5076         for params "insn", "dep".
5077
5078         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
5079         "dep_insn".
5080         (pa_adjust_priority): Likewise for param "insn".
5081
5082         * config/picochip/picochip.c (picochip_sched_adjust_cost):
5083         Likewise for params "insn", "dep_insn".
5084
5085         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
5086         param "insn".
5087         (rs6000_variable_issue): Likewise.
5088         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
5089         (rs6000_debug_adjust_cost): Likewise.
5090         (rs6000_adjust_priority): Likewise for param "insn".
5091         (rs6000_use_sched_lookahead_guard): Likewise.
5092         (get_next_active_insn): Likewise for return type and both params.
5093         (redefine_groups): Likewise for params "prev_head_insn", "tail"
5094         and locals "insn", "next_insn".
5095         (pad_groups): Likewise.
5096
5097         * config/s390/s390.c (s390_adjust_priority): Likewise for param
5098         "insn".
5099         (s390_cannot_copy_insn_p): Likewise.
5100         (s390_sched_variable_issue): Likewise for third param, eliminating
5101         checked cast.
5102         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
5103         default hook implementation from hook_constcharptr_const_rtx_null
5104         to hook_constcharptr_const_rtx_insn_null.
5105
5106         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
5107         from rtx to rtx_insn *.
5108         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
5109         (sh_variable_issue): Likewise for param "insn".
5110         (sh_dfa_new_cycle): Likewise.
5111         (sh_mode_needed): Likewise.
5112         (sh_mode_after): Likewise.
5113
5114         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
5115         params "insn", "dep_insn".
5116         (hypersparc_adjust_cost): Likewise.
5117         (sparc_adjust_cost): Likewise.
5118
5119         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
5120         param, eliminated checked cast.
5121         (spu_sched_adjust_cost): Likewise for first and third params.
5122
5123         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
5124         params "insn" and "dep_insn" from rtx to rtx_insn *.
5125
5126         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
5127
5128 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5129
5130         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
5131         (set_is_load_p): ...this, updating to work on a SET pattern rather
5132         than an insn.
5133         (is_store_insn): Rename to...
5134         (set_is_store_p): ...this, updating to work on a SET pattern
5135         rather than an insn.
5136         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
5137         top of function to where it is needed.  Rewrite the bogus
5138         condition that checks for "insn" and "dep" being PARALLEL to
5139         instead use single_set, introducing locals "insn_set" and
5140         "dep_set".  Given that we only ever returned "cost" for a non-pair
5141         of SETs, bail out early if we don't have a pair of SET.
5142         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
5143         use the new locals "insn_set" and "dep_set", and update calls to
5144         is_load_insn and is_store_insn to be calls to set_is_load_p and
5145         set_is_store_p.
5146
5147 2014-08-27  Guozhi Wei  <carrot@google.com>
5148
5149         PR target/62262
5150         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
5151         amount before using it.
5152
5153 2014-08-27  Richard Biener  <rguenther@suse.de>
5154
5155         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
5156         get_maxval_strlen inside a more useful API.
5157         (gimple_fold_builtin_with_strlen): Remove and fold into ...
5158         (gimple_fold_builtin): ... caller.
5159         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
5160         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
5161         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
5162         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
5163         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
5164         gimple_fold_builtin_sprintf): Adjust to compute maxval
5165         themselves.
5166
5167 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
5168
5169         PR other/62248
5170         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
5171
5172 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5173             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5174             Anna Tikhonova  <anna.tikhonova@intel.com>
5175             Ilya Tocar  <ilya.tocar@intel.com>
5176             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5177             Ilya Verbin  <ilya.verbin@intel.com>
5178             Kirill Yukhin  <kirill.yukhin@intel.com>
5179             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5180
5181         * config/i386/sse.md
5182         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
5183         Use `concat_tg_mode' attribute to determine asm register size.
5184
5185 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5186             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5187             Anna Tikhonova  <anna.tikhonova@intel.com>
5188             Ilya Tocar  <ilya.tocar@intel.com>
5189             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5190             Ilya Verbin  <ilya.verbin@intel.com>
5191             Kirill Yukhin  <kirill.yukhin@intel.com>
5192             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5193
5194         * config/i386/sse.md
5195         (define_mode_iterator VI48_AVX512VL): New.
5196         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
5197         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
5198         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
5199         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5200         with VI1): Change mode iterator.
5201         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5202         with VI_ULOADSTORE_BW_AVX512VL): New.
5203         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5204         with VI_ULOADSTORE_F_AVX512VL): Ditto.
5205         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5206         with VI1): Change mode iterator.
5207         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5208         with VI_ULOADSTORE_BW_AVX512VL): New.
5209         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5210         with VI_ULOADSTORE_F_AVX512VL): Ditto.
5211         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
5212         with VI1): Change mode iterator.
5213         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
5214         with VI_ULOADSTORE_BW_AVX512VL): New.
5215         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
5216         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
5217         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
5218         (define_insn "<avx512>_storedqu<mode>_mask" with
5219         VI48_AVX512VL): New.
5220         (define_insn "<avx512>_storedqu<mode>_mask" with
5221         VI12_AVX512VL): Ditto.
5222
5223 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5224             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5225             Anna Tikhonova  <anna.tikhonova@intel.com>
5226             Ilya Tocar  <ilya.tocar@intel.com>
5227             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5228             Ilya Verbin  <ilya.verbin@intel.com>
5229             Kirill Yukhin  <kirill.yukhin@intel.com>
5230             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5231
5232         * config/i386/sse.md
5233         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
5234         (define_mode_iterator VI48_AVX512BW): New.
5235         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
5236         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
5237         with VI48_AVX2_48_AVX512F): New.
5238         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
5239         with VI2_AVX512VL): Ditto.
5240
5241 2014-08-27  Richard Biener  <rguenther@suse.de>
5242
5243         PR middle-end/62239
5244         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
5245         (fold_builtin_3): Do not fold strcat_chk here.
5246         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
5247         from builtins.c.
5248         (gimple_fold_builtin): Fold strcat_chk here.
5249
5250 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
5251
5252         * dwarf2out.h (dwarf2out_decl): Remove prototype.
5253         * dwarf2out.c (dwarf2out_decl): Make static.
5254
5255 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
5256
5257         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
5258
5259 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5260
5261         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
5262         from rtx to rtx_insn *.
5263         (cselib_lookup_from_insn): Likewise for final param.
5264         (cselib_subst_to_values_from_insn): Likewise.
5265         (cselib_add_permanent_equiv): Likewise.
5266
5267         * cselib.c (cselib_current_insn): Likewise for this variable.
5268         (cselib_subst_to_values_from_insn): Likewise for param "insn".
5269         (cselib_lookup_from_insn): Likewise.
5270         (cselib_add_permanent_equiv): Likewise for param "insn" and local
5271         "save_cselib_current_insn".
5272         (cselib_process_insn): Replace use of NULL_RTX with NULL.
5273
5274         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
5275         from rtx to rtx_insn *.
5276
5277 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5278
5279         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
5280         rtx_insn *.
5281
5282 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5283
5284         * df.h (df_dump_insn_problem_function): Strengthen first param of
5285         this callback from const_rtx to const rtx_insn *.
5286         (struct df_insn_info): Strengthen field "insn" from rtx to
5287         rtx_insn *.
5288         (DF_REF_INSN): Eliminate this function, reinstating the older
5289         macro definition.
5290         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
5291         (df_reg_defined): Likewise.
5292         (df_find_use): Likewise.
5293         (df_reg_used): Likewise.
5294         (df_dump_insn_top): Strengthen param 1 from const_rtx to
5295         const rtx_insn *.
5296         (df_dump_insn_bottom): Likewise.
5297         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
5298         (df_insn_debug_regno): Likewise.
5299         (debug_df_insn): Likewise.
5300         (df_rd_simulate_one_insn): Likewise for param 2.
5301         (df_word_lr_simulate_defs): Likewise for param 1.
5302         (df_word_lr_simulate_uses): Likewise.
5303         (df_md_simulate_one_insn): Likewise for param 2.
5304         (df_simulate_find_noclobber_defs): Likewise for param 1.
5305         (df_simulate_find_defs): Likewise.
5306         (df_simulate_defs): Likewise.
5307         (df_simulate_uses): Likewise.
5308         (df_simulate_one_insn_backwards): Likewise for param 2.
5309         (df_simulate_one_insn_forwards): Likewise.
5310         (df_uses_create): Likewise for param 2.
5311         (df_insn_create_insn_record): Likewise for param 1.
5312         (df_insn_delete): Likewise.
5313         (df_insn_rescan): Likewise.
5314         (df_insn_rescan_debug_internal): Likewise.
5315         (df_insn_change_bb): Likewise.
5316         (df_notes_rescan): Likewise.
5317         * rtl.h (remove_death): Likewise for param 2.
5318         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
5319         const rtx_insn *.
5320         * sched-int.h (reemit_notes): Strengthen param from rtx to
5321         rtx_insn *.
5322         * valtrack.h (propagate_for_debug): Likewise for param 1.
5323
5324         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
5325         local "tmp_rtx" from const_rtx to const rtx_insn *.
5326         * combine.c (remove_death): Strengthen param "insn" from rtx to
5327         rtx_insn *.
5328         (move_deaths): Likewise for local "where_dead".
5329         * cse.c (delete_trivially_dead_insns): Introduce local
5330         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
5331         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
5332         rtx_insn *.
5333         (df_reg_defined): Likewise.
5334         (df_find_use): Likewise.
5335         (df_reg_used): Likewise.
5336         (df_dump_insn_problem_data): Strengthen param "insn" from
5337         const_rtx to const rtx_insn *.
5338         (df_dump_insn_top): Likewise.
5339         (df_dump_insn_bottom): Likewise.
5340         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
5341         (df_insn_debug_regno): Likewise.
5342         (debug_df_insn): Likewise.
5343         (DF_REF_INSN): Delete.
5344         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
5345         from rtx to rtx_insn *.
5346         (df_chain_insn_top_dump): Strengthen param "insn" from
5347         const_rtx to const rtx_insn *.
5348         (df_chain_insn_bottom_dump): Likewise.
5349         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
5350         rtx_insn *.
5351         (df_word_lr_simulate_uses): Likewise.
5352         (df_print_note): Likewise.
5353         (df_remove_dead_and_unused_notes): Likewise.
5354         (df_set_unused_notes_for_mw): Likewise.
5355         (df_set_dead_notes_for_mw): Likewise.
5356         (df_create_unused_note): Likewise.
5357         (df_simulate_find_defs): Likewise.
5358         (df_simulate_find_uses): Likewise.
5359         (df_simulate_find_noclobber_defs): Likewise.
5360         (df_simulate_defs): Likewise.
5361         (df_simulate_uses): Likewise.
5362         (df_simulate_one_insn_backwards): Likewise.
5363         (df_simulate_one_insn_forwards): Likewise.
5364         (df_md_simulate_one_insn): Likewise.
5365         * df-scan.c (df_uses_create): Likewise.
5366         (df_insn_create_insn_record): Likewise.
5367         (df_insn_delete): Likewise.
5368         (df_insn_rescan): Likewise.
5369         (df_insn_rescan_debug_internal): Likewise.
5370         (df_insn_change_bb): Likewise.
5371         (df_notes_rescan): Likewise.
5372         (df_refs_add_to_chains): Likewise.
5373         (df_insn_refs_verify): Likewise.
5374         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
5375         when invoking df_insn_delete.
5376         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
5377         (set_unique_reg_note): Add checked cast.
5378         * final.c (cleanup_subreg_operands): Likewise.
5379         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
5380         "insn" from rtx to rtx_insn *.
5381         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
5382         "last" from rtx to rtx_insn *.
5383         * ira-emit.c (change_regs_in_insn): New function.
5384         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
5385         Invoke change_regs_in_insn rather than change_regs.
5386         * ira.c (update_equiv_regs): Strengthen locals "insn",
5387         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
5388         for_each_rtx_in_insn rather than for_each_rtx.
5389         * recog.c (confirm_change_group): Add checked casts.
5390         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
5391         Add checked cast.
5392         (peep2_fill_buffer): Add checked cast.
5393         * rtlanal.c (remove_note): Likewise.
5394         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
5395         locals "next" "end" from rtx to rtx_insn *.
5396
5397 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5398
5399         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
5400         to rtx_insn *.
5401         (struct reg_use_data): Likewise for field "insn".
5402         (insn_cost): Likewise for param.
5403         (real_insn_for_shadow): Likewise for return type and param.
5404         (increase_insn_priority): Likewise for param 1.
5405         (debug_dependencies): Likewise for both params.
5406
5407         * haifa-sched.c (insn_delay): Likewise for param "insn".
5408         (real_insn_for_shadow): Likewise for return type and param "insn".
5409         (update_insn_after_change): Likewise for param "insn".
5410         (recompute_todo_spec): Likewise for param "next" and locals "pro",
5411         "other".
5412         (insn_cost): Likewise for param "insn".
5413         (increase_insn_priority): Likewise.
5414         (calculate_reg_deaths): Likewise.
5415         (setup_insn_reg_pressure_info): Likewise.
5416         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
5417         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
5418         (model_recompute): Likewise.
5419         (must_restore_pattern_p): Likewise for param "next".
5420         (model_excess_cost): Likewise for param "insn".
5421         (queue_remove): Likewise.
5422         (adjust_priority): Likewise for param "prev".
5423         (update_register_pressure): Likewise for param "insn".
5424         (setup_insn_max_reg_pressure): Likewise for local "insn".
5425         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
5426         (model_add_to_schedule): Likewise.
5427         (model_reset_queue_indices): Likewise for local "insn".
5428         (unschedule_insns_until): Strengthen local "recompute_vec" from
5429         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
5430         "con" from rtx to rtx_insn *.
5431         (restore_last_backtrack_point): Likewise for both locals "x". Add
5432         checked casts.
5433         (estimate_insn_tick): Likewise for param "insn".
5434         (commit_schedule): Likewise for params "prev_head", "tail" and
5435         local "x".
5436         (verify_shadows): Likewise for locals "i1", "i2".
5437         (dump_insn_stream): Likewise for params "head", "tail" and locals
5438         "next_tail", "insn".
5439         (schedule_block): Likewise for locals "insn", "x".  Add a checked
5440         cast.
5441         (fix_inter_tick): Likewise for params "head", "tail".
5442         (create_check_block_twin): Likewise for local "jump".
5443         (haifa_change_pattern): Likewise for param "insn".
5444         (haifa_speculate_insn): Likewise.
5445         (dump_new_block_header): Likewise for params "head", "tail".
5446         (fix_jump_move): Likewise for param "jump".
5447         (move_block_after_check): Likewise.
5448         (sched_init_insn_luid): Likewise for param "insn".
5449         (sched_init_luids): Likewise for local "insn".
5450         (insn_luid): Likewise for param "insn".
5451         (init_h_i_d): Likewise.
5452         (haifa_init_h_i_d): Likewise for local "insn".
5453         (haifa_init_insn): Likewise for param "insn".
5454         * sched-deps.c (add_dependence): Likewise for local "real_pro",
5455         "other".
5456         (create_insn_reg_use): Likewise for param "insn".
5457         (setup_insn_reg_uses): Likewise.  Add a checked cast.
5458         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
5459         "tail" from rtx to rtx_insn *.
5460         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
5461         "insn", "next_tail".
5462
5463 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5464
5465         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
5466         from rtx to rtx_insn *.
5467         (model_add_to_schedule): Likewise for locals "start", "end",
5468         "iter".
5469
5470 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5471
5472         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
5473         rtx_insn *.
5474         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
5475         "to" and locals "insn", "next", "copy".  Remove now-redundant
5476         checked cast.
5477
5478 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5479
5480         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
5481         rtx_insn * and param 4 from rtx * to rtx_insn **.
5482         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
5483         param 2 from rtx * to rtx_insn **.
5484
5485         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
5486         rtx_insn * and final param from rtx * to rtx_insn **.
5487
5488         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
5489         from rtx to rtx_insn *.
5490         (try_head_merge_bb): Likewise for both locals named "move_upto".
5491         * df-problems.c (can_move_insns_across): Likewise for params
5492         "from", "to", "across_from", "across_to" and locals "insn",
5493         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
5494         rtx_insn **.
5495         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
5496         from rtx to rtx_insn *.
5497         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
5498         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
5499         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
5500         rtx_insn *.
5501         (noce_try_abs): Likewise.
5502         (noce_get_condition): Likewise for param "jump".  Strengthen param
5503         "earliest" from rtx * to rtx_insn **.
5504         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
5505         rtx_insn *.
5506         (find_cond_trap): Likewise.
5507         (dead_or_predicable): Likewise for local "earliest".
5508         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
5509         checked cast.
5510         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
5511         and local "prev".  Strengthen param "earliest" from rtx * to
5512         rtx_insn **.
5513         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
5514         Strengthen param "earliest" from rtx * to rtx_insn **.
5515
5516 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5517
5518         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
5519         "to" and local "insn" from rtx to rtx_insn *.
5520
5521 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5522
5523         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
5524         from rtx to rtx_insn *.
5525         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
5526         (code_motion_path_driver): Likewise for local "last_insn".
5527         (simplify_changed_insns): Likewise for local "insn".
5528
5529 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5530
5531         * rtl.h (push_to_sequence): Strengthen param from rtx to
5532         rtx_insn *.
5533         (push_to_sequence2): Likewise for both params.
5534         (delete_insns_since): Likewise for param.
5535         (reorder_insns_nobb): Likewise for all three params.
5536         (set_new_first_and_last_insn): Likewise for both params.
5537
5538         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
5539         rtx_insn *.  Remove now-redundant cast.
5540         (set_last_insn): Likewise.
5541
5542         * builtins.c (expand_builtin_return): Strengthen local
5543         "call_fusage" from rtx to rtx_insn *.
5544         * cfgrtl.c (create_basic_block_structure): Likewise for local
5545         "after".
5546         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
5547         "first", "last" and local "insn".
5548         (delete_insns_since): Likewise for param "from".
5549         (reorder_insns_nobb): Likewise for params "from", "to", "after"
5550         and local "x".
5551         (push_to_sequence): Likewise for param "first" and local "last".
5552         (push_to_sequence2): Likewise for params "first" and "last".
5553         * lra.c (emit_add3_insn): Likewise for local "last".
5554         (lra_emit_add): Likewise.
5555         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
5556         "last_insn".
5557         (process_address_1): Likewise for locals "insn", last".
5558         * modulo-sched.c (ps_first_note): Likewise for return type.
5559         * optabs.c (expand_binop_directly): Likewise for param "last".
5560
5561 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5562
5563         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
5564         to rtx_insn*.
5565         * emit-rtl.c (get_last_insn_anywhere): Likewise.
5566
5567 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5568
5569         * function.h (struct sequence_stack): Strengthen fields "first"
5570         and "last" from rtx to rtx_insn *.
5571         (struct emit_status): Likewise for fields "x_first_insn" and
5572         "x_last_insn".
5573
5574         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
5575         (set_first_insn): Add checked cast.
5576         (get_last_insn): Remove now-redundant checked cast.
5577         (set_last_insn): Add checked cast.
5578
5579         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
5580         "saved_first" and "saved_last" from rtx to rtx_insn *.
5581
5582 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5583
5584         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
5585         (unlink_insn_chain): Strengthen both params from rtx to
5586         rtx_insn *.
5587
5588         * cfgrtl.c (cfg_layout_function_header): Likewise for this
5589         variable.
5590         (unlink_insn_chain): Likewise for params "first" and "last".
5591         Remove now-redundant checked cast.
5592         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
5593         (fixup_reorder_chain): Strengthen local "insn" from rtx to
5594         rtx_insn *.
5595         * emit-rtl.c (link_insn_into_chain): Likewise for all three
5596         params.
5597         (add_insn): Likewise for param "insn" and local "prev".
5598         (add_insn_after_nobb): Likewise for both params and local "next".
5599         (add_insn_before_nobb): Likewise for both params and local "prev".
5600         (add_insn_after): Rename param "after" to "uncast_after",
5601         introducing local "after" with another checked cast.
5602         (add_insn_before): Rename params "insn" and "before", giving them
5603         "uncast_" prefixes, adding the old names back using checked casts.
5604         (emit_note_after): Likewise for param "after".
5605         (emit_note_before): Likewise for param "before".
5606         (emit_label): Add a checked cast.
5607
5608 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5609
5610         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
5611         "insn" from rtx to rtx_insn *.
5612
5613         * cselib.c (cselib_record_sets_hook): Likewise.
5614
5615         * var-tracking.c (add_with_sets): Likewise, renaming back from
5616         "uncast_insn" to "insn" and eliminating the checked cast from rtx
5617         to rtx_insn *.
5618
5619 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5620
5621         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
5622         and "header_" from rtx to rtx_insn *.
5623         (struct basic_block_d): Likewise for field "head_" within "x"
5624         field of union basic_block_il_dependent.
5625         (BB_HEAD): Drop function...
5626         (SET_BB_HEAD): ...and this function in favor of...
5627         (BB_HEAD): ...reinstate macro.
5628         (BB_END): Drop function...
5629         (SET_BB_END): ...and this function in favor of...
5630         (BB_END): ...reinstate macro.
5631         (BB_HEADER): Drop function...
5632         (SET_BB_HEADER): ...and this function in favor of...
5633         (BB_HEADER): ...reinstate macro.
5634
5635         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
5636         (fix_crossing_unconditional_branches): Likewise.
5637         * caller-save.c (save_call_clobbered_regs): Likewise.
5638         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
5639         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
5640         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
5641         (merge_blocks_move_successor_nojumps): Likewise.
5642         (outgoing_edges_match): Update use of for_each_rtx to
5643         for_each_rtx_in_insn.
5644         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
5645         (expand_gimple_cond): Likewise.
5646         (expand_gimple_tailcall): Likewise.
5647         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
5648         SET_BB_END.
5649         (construct_exit_block): Drop use of SET_BB_END.
5650         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
5651         rtx_insn *.
5652         (delete_insn): Rename param "insn" to "uncast_insn", introducing
5653         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
5654         SET_BB_HEAD and SET_BB_END.
5655         (create_basic_block_structure): Drop use of SET_BB_HEAD and
5656         SET_BB_END.
5657         (rtl_delete_block): Drop use of SET_BB_HEAD.
5658         (rtl_split_block): Drop use of SET_BB_END.
5659         (emit_nop_for_unique_locus_between): Likewise.
5660         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
5661         (block_label): Drop use of SET_BB_HEAD.
5662         (fixup_abnormal_edges): Drop use of SET_BB_END.
5663         (record_effective_endpoints): Drop use of SET_BB_HEADER.
5664         (relink_block_chain): Likewise.
5665         (fixup_reorder_chain): Drop use of SET_BB_END.
5666         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
5667         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
5668         rtx_insn **.  Drop use of SET_BB_HEADER.
5669         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
5670         SET_BB_HEAD.
5671         (BB_HEAD): Delete this function.
5672         (SET_BB_HEAD): Likewise.
5673         (BB_END): Likewise.
5674         (SET_BB_END): Likewise.
5675         (BB_HEADER): Likewise.
5676         (SET_BB_HEADER): Likewise.
5677         * emit-rtl.c (add_insn_after):  Rename param "insn" to
5678         "uncast_insn", adding a new local "insn" and a checked cast to
5679         rtx_insn *.  Drop use of SET_BB_END.
5680         (remove_insn): Strengthen locals "next" and "prev" from rtx to
5681         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
5682         (reorder_insns): Drop use of SET_BB_END.
5683         (emit_insn_after_1): Strengthen param "first" and locals "last",
5684         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
5685         (emit_pattern_after_noloc): Add checked cast.
5686         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
5687         (restore_other_notes): Likewise.
5688         (move_insn): Likewise.
5689         (sched_extend_bb): Likewise.
5690         (fix_jump_move): Likewise.
5691         * ifcvt.c (noce_process_if_block): Likewise.
5692         (dead_or_predicable): Likewise.
5693         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
5694         * reg-stack.c (change_stack): Drop use of SET_BB_END.
5695         * sel-sched-ir.c (sel_move_insn): Likewise.
5696         * sel-sched.c (move_nop_to_previous_block): Likewise.
5697
5698         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
5699         SET_BB_END.
5700         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
5701
5702 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5703
5704         * basic-block.h (create_basic_block_structure): Strengthen params
5705         1 "head" and 2 "end" from rtx to rtx_insn *.
5706         * cfgrtl.c (create_basic_block_structure): Likewise.
5707         (rtl_create_basic_block): Update casts from void * to rtx to
5708         rtx_insn *, so that we can pass them as rtx_insn * to
5709         create_basic_block_structure.
5710         * sel-sched-ir.c (sel_create_basic_block): Likewise.
5711
5712 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5713
5714         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
5715         rtx_insn **.
5716         (check_for_inc_dec): Strengthen param "insn" from rtx to
5717         rtx_insn *.
5718
5719         * cselib.h (cselib_process_insn): Likewise.
5720
5721         * cselib.c (cselib_record_sets): Likewise.
5722         (cselib_process_insn): Likewise.
5723
5724         * dse.c (struct insn_info): Likewise for field "insn".
5725         (check_for_inc_dec_1): Likewise for local "insn".
5726         (check_for_inc_dec): Likewise for param "insn".
5727         (scan_insn): Likewise.
5728         (dse_step1): Likewise for local "insn".
5729
5730         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
5731         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
5732
5733 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5734
5735         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
5736         from rtx to rtx_insn *.
5737         (DEP_PRO): Delete this function and...
5738         (SET_DEP_PRO): ...this function in favor of...
5739         (DEP_PRO): ...reinstate this macro.
5740         (DEP_CON): Delete this function and...
5741         (SET_DEP_CON): ...this function in favor of...
5742         (DEP_CON): ...reinstate this old macro.
5743         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
5744         (init_dep): Likewise.
5745         (set_priorities): Likewise for both params.
5746         (sd_copy_back_deps): Likewise for params 1 and 2.
5747
5748         * haifa-sched.c (priority): Likewise for param "insn" and local
5749         "next".
5750         (set_priorities): Likewise for params "head" and "tail" and local
5751         "insn".
5752         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
5753         local "consumer".
5754         (add_to_speculative_block): Add a checked cast.
5755         (create_check_block_twin): Drop use of SET_DEP_CON.
5756         (add_jump_dependencies): Strengthen params "insn" and "jump" from
5757         rtx to rtx_insn *.
5758
5759         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
5760         Drop use of SET_DEP_PRO
5761         (init_dep): Strengthen params "pro" and "con" from rtx to
5762         rtx_insn *.
5763         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
5764         use of SET_DEP_CON.
5765         (DEP_PRO): Delete.
5766         (DEP_CON): Delete.
5767         (SET_DEP_PRO): Delete.
5768         (SET_DEP_CON): Delete.
5769
5770 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5771
5772         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
5773         from rtx to rtx_insn *.
5774         (VINSN_INSN_RTX): Eliminate rvalue function and...
5775         (SET_VINSN_INSN): ...lvalue function in favor of...
5776         (VINSN_INSN_RTX): reinstate this old macro.
5777
5778         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
5779         in favor of VINSN_INSN_RTX.
5780         (VINSN_INSN_RTX): Delete this function.
5781         (SET_VINSN_INSN_RTX): Likewise.
5782
5783 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5784
5785         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
5786         (BND_TO): Delete this function and...
5787         (SET_BND_TO): ...this functions in favor of...
5788         (BND_TO): ...reinstating this macro.
5789         (struct _fence): Strengthen field "executing_insns" from
5790         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
5791         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
5792         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
5793         and param "insn" from rtx to insn_t.
5794         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
5795         rtx_insn *.
5796
5797         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
5798         vec<rtx_insn *> .
5799         (rtx_vec_t): Likewise.
5800         (struct sched_deps_info_def): Strengthen param of "start_insn"
5801         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
5802         "note_mem_dep" callback and first param of "note_dep" callback.
5803
5804         * haifa-sched.c (add_to_speculative_block): Strengthen param
5805         "insn" from rtx to rtx_insn *.
5806         (clear_priorities): Likewise.
5807         (calc_priorities): Likewise for local "insn".
5808
5809         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
5810         Remove redundant checked cast.
5811         (haifa_note_mem_dep): Likewise for param "pending_insn".
5812         (haifa_note_dep): Likewise for param "elem".
5813         (note_mem_dep): Likewise for param "e".
5814         (sched_analyze_1): Add checked casts.
5815         (sched_analyze_2): Likewise.
5816
5817         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
5818         from rtx to rtx_insn *.
5819         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
5820         from vec<rtx> * to vec<rtx_insn *> *.
5821
5822         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
5823         scaffolding.
5824         (flist_add): Strengthen param "executing_insns" from
5825         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
5826         (advance_deps_context): Remove now-redundant checked cast.
5827         (init_fences): Replace uses of NULL_RTX with NULL.
5828         (merge_fences): Strengthen params "last_scheduled_insn" and
5829         "sched_next" from rtx to rtx_insn * and "executing_insns" from
5830         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
5831         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
5832         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
5833         an instruction, rather than doing double-duty as a pattern.
5834         (return_nop_to_pool): Update for change of insn_t.
5835         (deps_init_id): Remove now-redundant checked cast.
5836         (struct sched_scan_info_def): Strengthen param of "init_insn"
5837         callback from rtx to insn_t.
5838         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
5839         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
5840         NULL.
5841         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
5842         "end" from rtx to rtx_insn *.
5843         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
5844         (rtx insn_rtx, bool force_unique_p)
5845         (BND_TO): Delete function.
5846         (SET_BND_TO): Delete function.
5847
5848         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
5849         rtx to rtx_insn *.
5850         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
5851         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
5852         rtx to rtx_insn *.
5853         (undo_transformations): Likewise for param "insn".
5854         (update_liveness_on_insn): Likewise.
5855         (compute_live_below_insn): Likewise for param "insn" and local
5856         "succ".
5857         (update_data_sets): Likewise for param "insn".
5858         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
5859         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
5860         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
5861         rtx_insn *.
5862         (move_cond_jump): Likewise for param "insn".
5863         (move_cond_jump): Drop use of SET_BND_TO.
5864         (compute_av_set_on_boundaries): Likewise.
5865         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
5866         (update_and_record_unavailable_insns): Strengthen local "bb_end"
5867         from rtx to rtx_insn *.
5868         (maybe_emit_renaming_copy): Likewise for param "insn".
5869         (maybe_emit_speculative_check): Likewise.
5870         (handle_emitting_transformations): Likewise.
5871         (remove_insn_from_stream): Likewise.
5872         (code_motion_process_successors): Strengthen local "succ" from rtx
5873         to insn_t.
5874
5875 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5876
5877         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
5878         ilist_t, not _xlist_t;
5879         (ILIST_INSN): Define in terms of new union field "insn".
5880         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
5881         _XLIST_NEXT.
5882         (struct _list_node): Add new field "insn" to the union, of type
5883         insn_t.
5884         (ilist_add): Replace macro with an inline function, requiring an
5885         insn_t.
5886         (ilist_remove): Define this macro directly in terms of
5887         _list_remove, rather than indirectly via _xlist_remove.
5888         (ilist_clear): Likewise, in terms of _list_clear rather than
5889         _xlist_clear.
5890         (ilist_is_in_p): Replace macro with an inline function, requiring
5891         an insn_t.
5892         (_list_iter_cond_insn): New function.
5893         (ilist_iter_remove): Define this macro directly in terms of
5894         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
5895         (ilist_iterator): Define directly in terms of _list_iterator
5896         rather than indirectly through _xlist_iterator.
5897         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
5898         than in terms of _FOR_EACH_X.
5899         (FOR_EACH_INSN_1): Likewise.
5900
5901 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
5902
5903         PR target/60606
5904         PR target/61330
5905         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
5906         DECL_HARD_REGISTER and return for invalid register specifications.
5907         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
5908         DECL_HARD_REGISTER, call expand_one_error_var.
5909         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
5910         CC_REGNUM with non-MODE_CC modes.
5911         (arm_regno_class): Return NO_REGS for PC_REGNUM.
5912
5913 2014-08-26  Marek Polacek  <polacek@redhat.com>
5914
5915         PR c/61271
5916         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
5917
5918 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
5919
5920         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
5921         qi cost; add di cost.
5922         (cortexa57_addrcost_table): Likewise.
5923
5924 2014-08-26  Marek Polacek  <polacek@redhat.com>
5925
5926         PR c/61271
5927         * expr.c (is_aligning_offset): Remove logical not.
5928
5929 2014-08-26  Marek Polacek  <polacek@redhat.com>
5930
5931         PR c/61271
5932         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
5933         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
5934
5935 2014-08-26  Richard Biener  <rguenther@suse.de>
5936
5937         PR tree-optimization/62175
5938         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
5939         expand possibly trapping operations.
5940
5941 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5942
5943         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
5944         "insn" from rtx to rtx_insn *.
5945         (permute_load): Likewise for param "insn".
5946         (permute_store): Likewise.
5947         (handle_special_swappables): Likewise for local "insn".
5948         (replace_swap_with_copy): Likewise for locals "insn" and
5949         "new_insn".
5950         (rs6000_analyze_swaps): Likewise for local "insn".
5951
5952 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
5953
5954         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
5955         to rtx_insn *.
5956
5957 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
5958
5959         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
5960         "note_list" from rtx to rtx_insn *.
5961         (BB_NOTE_LIST): Replace this function and...
5962         (SET_BB_NOTE_LIST): ...this function with...
5963         (BB_NOTE_LIST): ...the former macro implementation.
5964
5965         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
5966         local "from_start" from rtx to rtx_insn *.  Strengthen param
5967         "to_endp" from rtx * to rtx_insn **.
5968
5969         * haifa-sched.c (concat_note_lists): Likewise.
5970         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
5971         BB_NOTE_LIST.
5972         (sel_restore_notes): Likewise.
5973         (move_bb_info): Likewise.
5974         (BB_NOTE_LIST): Delete this function.
5975         (SET_BB_NOTE_LIST): Delete this function.
5976         * sel-sched.c (create_block_for_bookkeeping): Eliminate
5977         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
5978
5979 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
5980
5981         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
5982         from rtx * to rtx_insn **.
5983         (reorder2): Likewise.
5984         (dependencies_evaluation_hook): Strengthen params "head", "tail"
5985         from rtx to rtx_insn *.
5986
5987         * doc/tm.texi: Update mechanically for above change to target.def.
5988
5989         * sched-int.h (note_list): Strengthen this variable from rtx to
5990         rtx_insn *.
5991         (remove_notes): Likewise for both params.
5992         (restore_other_notes): Likewise for return type and first param.
5993         (struct ready_list): Strengthen field "vec" from rtx * to
5994         rtx_insn **.
5995         (struct dep_replacement): Strenghten field "insn" from rtx to
5996         rtx_insn *.
5997         (struct deps_desc): Likewise for fields "last_debug_insn",
5998         "last_args_size".
5999         (struct haifa_sched_info): Likewise for callback field
6000         "can_schedule_ready_p"'s param, for first param of "new_ready"
6001         callback field, for both params of "rank" callback field, for
6002         first field of "print_insn" callback field (with a const), for
6003         both params of "contributes_to_priority" callback, for param
6004         of "insn_finishes_block_p" callback, for fields "prev_head",
6005         "next_tail", "head", "tail", for first param of "add_remove_insn"
6006         callback, for first param of "begin_schedule_ready" callback, for
6007         both params of "begin_move_insn" callback, and for second param
6008         of "advance_target_bb" callback.
6009         (add_dependence): Likewise for params 1 and 2.
6010         (sched_analyze): Likewise for params 2 and 3.
6011         (deps_analyze_insn): Likewise for param 2.
6012         (ready_element): Likewise for return type.
6013         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
6014         (try_ready): Strenghten param from rtx to rtx_insn *.
6015         (sched_emit_insn): Likewise for return type.
6016         (record_delay_slot_pair): Likewise for params 1 and 2.
6017         (add_delay_dependencies): Likewise for param.
6018         (contributes_to_priority): Likewise for both params.
6019         (find_modifiable_mems): Likewise.
6020
6021         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
6022         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
6023         "first_older_only_insn" from rtx to rtx_insn *.
6024         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
6025         rtx_insn **.
6026
6027         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
6028         "last_scheduled_iter0" from rtx to rtx_insn *.
6029         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
6030         (c6x_sched_reorder_1): Strengthen param "ready" and locals
6031         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
6032         "insn" from rtx to rtx_insn *.
6033         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
6034         rtx_insn **.
6035         (c6x_sched_reorder2): Strengthen param "ready" and locals
6036         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
6037         "insn" from rtx to rtx_insn *.
6038         (c6x_variable_issue):  Add a checked cast when assigning from insn
6039         to ss.last_scheduled_iter0.
6040         (split_delayed_branch): Strengthen param "insn" and local "i1"
6041         from rtx to rtx_insn *.
6042         (split_delayed_nonbranch): Likewise.
6043         (undo_split_delayed_nonbranch): Likewise for local "insn".
6044         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
6045         "entry_after", "end_packet", "head_insn", "tail_insn",
6046         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
6047         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
6048         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
6049         but add a checked cast on loop->start_label.  Consolidate calls to
6050         avoid assigning result of gen_spkernel to "insn", now an
6051         rtx_insn *.
6052
6053         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
6054         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
6055         rtx to rtx_insn *.
6056         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
6057         rtx_insn **.  Strengthen locals "top", "next" from rtx to
6058         rtx_insn *.
6059         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
6060         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
6061         (add_parameter_dependencies): Strengthen params "call", "head" and
6062         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
6063         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
6064         (add_dependee_for_func_arg): Likewise for param "arg" and local
6065         "insn".
6066         (ix86_dependencies_evaluation_hook): Likewise for params "head",
6067         "tail" and locals "insn", "first_arg".
6068
6069         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
6070         for params "head", "tail" and locals "insn", "next", "next_tail".
6071         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
6072         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
6073         "insn", "lowest", "highest" from rtx to rtx_insn *.
6074         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
6075         rtx_insn **.
6076         (ia64_sched_reorder2): Likewise.
6077
6078         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
6079         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
6080         from rtx * to rtx_insn **.
6081         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
6082         rtx_insn **.
6083         (mep_print_sched_insn): Strengthen param "insn" from rtx to
6084         rtx_insn *.
6085         (mep_sched_reorder): Strengthen param "ready" from rtx * to
6086         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
6087         to rtx_insn *.
6088
6089         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
6090         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
6091         to rtx_insn *.
6092         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
6093         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
6094         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
6095         rtx_insn **.
6096         (vr4130_reorder): Likewise.
6097         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
6098         rtx to rtx_insn *.
6099         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
6100         rtx_insn **.
6101         (mips_sched_reorder): Likewise.
6102         (mips_sched_reorder2): Likewise.
6103
6104         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
6105
6106         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
6107         Strengthen local "tmp" from rtx to rtx_insn *.
6108         (rs6000_sched_reorder2): Likewise.
6109
6110         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
6111         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
6112         (s390_sched_reorder): Strengthen param "ready" from rtx * to
6113         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
6114
6115         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
6116         "tmp2" from rtx to rtx_insn *.
6117         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
6118         Strengthen local "insn" from rtx to rtx_insn *.
6119         (ready_reorder): Strengthen param "ready" from rtx * to
6120         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
6121         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
6122         (sh_reorder2): Likewise.
6123
6124         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
6125         local "insn" from rtx to rtx_insn *.
6126
6127         * haifa-sched.c (note_list): Strengthen this variable from rtx to
6128         rtx_insn *.
6129         (scheduled_insns): Strengthen this variable from vec<rtx> to
6130         vec<rtx_insn *>.
6131         (set_modulo_params): Likewise for locals "i1", "i2".
6132         (record_delay_slot_pair): Likewise for params "i1", "i2".
6133         (add_delay_dependencies): Likewise for param "insn".
6134         (cond_clobbered_p): Likewise.
6135         (recompute_todo_spec): Likewise for local "prev".
6136         (last_scheduled_insn): Likewise for this variable.
6137         (nonscheduled_insns_begin): Likewise.
6138         (model_set_excess_costs): Strengthen param "insns" from rtx * to
6139         rtx_insn **.
6140         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
6141         rtx_insn *.
6142         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
6143         Strengthen local "insn" from rtx to rtx_insn *.
6144         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
6145         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
6146         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
6147         (ready_remove_first): Likewise for return type and local "t".
6148         (ready_element): Likewise for return type.
6149         (ready_remove): Likewise for return type and local "t".
6150         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
6151         (check_clobbered_conditions): Strengthen local "x" from rtx to
6152         rtx_insn *, adding a checked cast.
6153         (schedule_insn): Likewise for param "insn".
6154         (remove_notes): Likewise for params "head", "tail" and locals
6155         "next_tail", "insn", "next".
6156         (struct haifa_saved_data): Likewise for fields
6157         "last_scheduled_insn", "nonscheduled_insns_begin".
6158         (save_backtrack_point): Update for change to field "vec" of
6159         struct ready_list.
6160         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
6161         rtx_insn **.
6162         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
6163         from rtx to rtx_insn *
6164         (resolve_dependencies): Strengthen param "insn" from rtx to
6165         rtx_insn *
6166         (restore_other_notes): Likewise for return type, for param "head"
6167         and local "note_head".
6168         (undo_all_replacements): Likewise for local "insn".
6169         (first_nonscheduled_insn): Likewise for return type and local "insn".
6170         (queue_to_ready): Likewise for local "insn", adding checked casts.
6171         (early_queue_to_ready): Likewise for local "insn".
6172         (debug_ready_list_1): Strengthen local "p" from rtx * to
6173         rtx_insn **.
6174         (move_insn): Strengthen param "insn" and local "note" from rtx to
6175         rtx_insn *
6176         (insn_finishes_cycle_p): Likewise for param "insn".
6177         (max_issue): Likewise for local "insn".
6178         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
6179         to rtx_insn **.
6180         (commit_schedule): Strengthen param "prev_head" and local "insn"
6181         from rtx to rtx_insn *
6182         (prune_ready_list): Likewise for local "insn".
6183         (schedule_block): Likewise for locals "prev_head", "head", "tail",
6184         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
6185         (set_priorities): Likewise for local "prev_head".
6186         (try_ready): Likewise for param "next".
6187         (fix_tick_ready): Likewise.
6188         (change_queue_index): Likewise.
6189         (sched_extend_ready_list): Update for change to field "vec" of
6190         struct ready_list.
6191         (generate_recovery_code): Strengthen param "insn" from rtx to
6192         rtx_insn *.
6193         (begin_speculative_block): Likewise.
6194         (create_check_block_twin): Likewise for param "insn" and locals
6195         "label", "check", "twin".  Introduce local "check_pat" to avoid
6196         "check" being used as a plain rtx before being used as an insn.
6197         (fix_recovery_deps): Add a checked cast to rtx_insn * when
6198         extracting elements from ready_list.
6199         (sched_remove_insn): Strengthen param "insn" from rtx to
6200         rtx_insn *.
6201         (sched_emit_insn): Likewise for return type.
6202         (ready_remove_first_dispatch): Likewise for return type and local
6203         "insn".
6204
6205         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
6206
6207         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
6208         const rtx_insn *.
6209
6210         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
6211         from rtx to rtx_insn *.
6212         (add_dependence_list): Likewise for param "insn".  Add a checked
6213         cast.
6214         (add_dependence_list_and_free): Strengthen param "insn" from rtx
6215         to rtx_insn *.  Strengthen param "list_p" from rtx * to
6216         rtx_insn **.
6217         (chain_to_prev_insn): Strengthen param "insn" and locals
6218         "prec_nonnote", "i" from rtx to rtx_insn *.
6219         (flush_pending_lists): Likewise for param "insn".
6220         (cur_insn): Likewise for this variable.
6221         (haifa_start_insn): Add a checked cast.
6222         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
6223         (sched_analyze_reg): Likewise for param "insn".
6224         (sched_analyze_1): Likewise.
6225         (sched_analyze_2): Likewise.  Add checked casts.
6226         (sched_analyze_insn): Likewise.  Also for local "prev".
6227         (deps_analyze_insn): Likewise for param "insn".
6228         (sched_analyze): Likewise for params "head", "tail" and local "insn".
6229         (add_dependence_1): Likewise for params "insn", "elem".
6230         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
6231         (parse_add_or_inc): Likewise for param "insn".
6232         (find_inc): Likewise for local "inc_cand".
6233         (find_modifiable_mems): Likewise for params "head", "tail" and
6234         locals "insn", "next_tail".
6235
6236         * sched-ebb.c (init_ready_list): Likewise for local "insn".
6237         (begin_schedule_ready): Likewise for param "insn".
6238         (begin_move_insn): Likewise for params "insn" and "last".
6239         (ebb_print_insn): Strengthen param "insn" from const_rtx to
6240         const rtx_insn *.
6241         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
6242         (ebb_contributes_to_priority): Likewise for params "next", "insn".
6243         (ebb_add_remove_insn): Likewise for param "insn".
6244         (advance_target_bb): Likewise.
6245
6246         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
6247         "insn".
6248         (check_live): Likewise for param "insn".
6249         (init_ready_list): Likewise for local "insn".
6250         (can_schedule_ready_p): Likewise for param "insn".
6251         (begin_schedule_ready): Likewise.
6252         (new_ready): Likewise for param "next".
6253         (rgn_print_insn): Likewise for param "insn".
6254         (rgn_rank): Likewise for params "insn1", "insn2".
6255         (contributes_to_priority): Likewise for params "next", "insn".
6256         (rgn_insn_finishes_block_p): Likewise for param "insn".
6257         (add_branch_dependences): Likewise for params "head", "tail" and
6258         locals "insn", "last".
6259         (rgn_add_remove_insn): Likewise for param "insn".
6260         (advance_target_bb): Likewise.
6261
6262         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
6263         const_rtx to const rtx_insn *.
6264
6265         * sel-sched-dump.h (sel_print_insn): Likewise.
6266
6267         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
6268         (deps_init_id): Likewise.
6269
6270         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
6271         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
6272         rtx_insn **.
6273
6274 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6275
6276         * output.h (final_start_function): Strengthen param 1 from rtx to
6277         rtx_insn *.
6278
6279         * final.c (final_start_function): Likewise, renaming back from
6280         "uncast_first" to "first", and dropping the checked cast from rtx
6281         to rtx_insn *.
6282
6283 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6284
6285         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
6286         * final.c (final): Likewise.  Rename param back from
6287         "uncast_first" to "first" and eliminate the checked cast from rtx
6288         to rtx_insn *.
6289
6290 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6291
6292         * output.h (shorten_branches): Strengthen param from rtx to
6293         rtx_insn *.
6294
6295         * final.c (shorten_branches): Likewise, renaming param back from
6296         "uncast_first" to "first", and dropping the checked cast from rtx
6297         to rtx_insn *.
6298
6299         * genattr.c (gen_attr): Likewise when writing out the prototype of
6300         shorten_branches.
6301
6302 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6303
6304         * sched-int.h (struct haifa_sched_info): Strengthen fields
6305         "prev_head" and "next_tail" from rtx to rtx_insn *.
6306
6307 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6308
6309         * rtl.h (rtx_jump_table_data::get_labels): New method.
6310         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
6311         with use of the new rtx_jump_table_data::get_labels method.
6312         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
6313         to rtx_jump_table_data *.  Simplify by using get_labels method.
6314         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
6315         a dyn_cast, introducing local "table", using it to replace
6316         label-lookup logic with a get_labels method call.
6317         (patch_jump_insn): Simplify using get_labels method.
6318         * dwarf2cfi.c (create_trace_edges): Likewise.
6319         * rtlanal.c (label_is_jump_target_p): Likewise.
6320
6321 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6322
6323         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
6324         to rtx_insn *.
6325
6326         * emit-rtl.c (unshare_all_rtl_1): Likewise.
6327         (unshare_all_rtl_again): Likewise, also for local "p".
6328
6329 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6330
6331         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
6332         to rtx_insn *.
6333         * cfgrtl.c (delete_insn_and_edges): Likewise.
6334
6335 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6336
6337         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
6338         from rtx to rtx_insn *.
6339
6340         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
6341
6342 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6343
6344         * function.c (thread_prologue_and_epilogue_insns): Likewise for
6345         locals "returnjump", "epilogue_end", "insn", "next".
6346
6347         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
6348         "returnjump" from rtx * to rtx_insn **.
6349         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
6350
6351 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6352
6353         * basic-block.h (struct edge_def). Strengthen "r" within
6354         union edge_def_insns from rtx to rtx_insn *.
6355
6356         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
6357         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
6358         rtx_insn *.
6359         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
6360         from rtx to rtx_insn *.
6361         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
6362         rtx_insn *.
6363         * postreload-gcse.c (reg_killed_on_edge): Likewise.
6364         (reg_used_on_edge): Likewise.
6365         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
6366         (gt_pch_nx): New overload for rtx_insn *&.
6367         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
6368         from rtx to rtx_insn *.
6369
6370 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6371
6372         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
6373         from rtx to rtx_insn *.
6374         (BB_FOOTER): Replace function with access macro.
6375         (SET_BB_FOOTER): Delete.
6376
6377         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
6378         with BB_FOOTER.
6379         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
6380         (emit_barrier_after_bb): Likewise.
6381         (record_effective_endpoints): Likewise.
6382         (relink_block_chain): Likewise.
6383         (fixup_fallthru_exit_predecessor): Likewise.
6384         (cfg_layout_duplicate_bb): Likewise.
6385         (cfg_layout_split_block): Likewise.
6386         (cfg_layout_delete_block): Likewise.
6387         (cfg_layout_merge_blocks): Likewise.
6388         (BB_FOOTER): Delete function.
6389         (SET_BB_FOOTER): Delete function.
6390         * combine.c (update_cfg_for_uncondjump): Replace uses of
6391         SET_BB_FOOTER with BB_FOOTER.
6392
6393 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6394
6395         * except.h (struct eh_landing_pad_d): Strengthen field
6396         "landing_pad" from rtx to rtx_code_label *.
6397
6398         * except.c (sjlj_emit_dispatch_table): Likewise for param
6399         "dispatch_label"
6400         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
6401
6402 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6403
6404         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
6405         first param from rtx to rtx_insn *.
6406         * config/xtensa/xtensa.c (struct machine_function): Likewise for
6407         field "set_frame_ptr_insn".
6408         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
6409         "csend" from rtx to rtx_code_label *.
6410         (xtensa_expand_atomic): Likewise for local "csloop".
6411         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
6412         rtx_insn *.
6413         (xtensa_call_tls_desc): Likewise for return type and locals
6414         "call_insn", "insns".
6415         (xtensa_legitimize_tls_address): Likewise for local "insns".
6416         (xtensa_expand_prologue): Likewise for locals "insn", "first".
6417
6418 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6419
6420         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
6421         first param from rtx to rtx_insn *.
6422         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
6423         "insn".
6424
6425 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6426
6427         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
6428         Strengthen param 1 from rtx to rtx_insn *.
6429         (tilepro_output_cbranch): Likewise.
6430         (tilepro_adjust_insn_length): Likewise.
6431         (tilepro_final_prescan_insn): Likewise for sole param.
6432
6433         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
6434         Likewise for local "last".
6435         (cbranch_predicted_p): Likewise for param "insn".
6436         (tilepro_output_simple_cbranch_with_opcode): Likewise.
6437         (tilepro_output_cbranch_with_opcode): Likewise.
6438         (tilepro_output_cbranch): Likewise.
6439         (frame_emit_load): Likewise for return type and locals "seq",
6440         "insn".
6441         (emit_sp_adjust): Likewise for return type and local "insn".
6442         (tilepro_expand_epilogue): Likewise for locals "last_insn",
6443         "insn".
6444         (tilepro_adjust_insn_length): Likewise for param "insn".
6445         (next_insn_to_bundle): Likewise for return type and params
6446         "r", "end".
6447         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
6448         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
6449         local "new_insns".
6450         (match_addli_pcrel): Likewise for param "insn".
6451         (replace_addli_pcrel): Likewise.
6452         (match_auli_pcrel): Likewise.
6453         (replace_auli_pcrel): Likewise.
6454         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
6455         "next_insn".
6456         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
6457         "queue", "next_queue", "prev".
6458         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
6459         (tilepro_final_prescan_insn): Likewise for param "insn".
6460
6461 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6462
6463         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
6464         Strengthen param 1 from rtx to rtx_insn *.
6465         (tilegx_output_cbranch): Likewise.
6466         (tilegx_adjust_insn_length): Likewise.
6467         (tilegx_final_prescan_insn): Likewise for sole param.
6468
6469         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
6470         or local "last".
6471         (cbranch_predicted_p): Likewise for param "insn".
6472         (tilegx_output_simple_cbranch_with_opcode): Likewise.
6473         (tilegx_output_cbranch_with_opcode): Likewise.
6474         (tilegx_output_cbranch): Likewise.
6475         (frame_emit_load): Likewise for return type.
6476         (set_frame_related_p): Likewise for locals "seq", "insn".
6477         (emit_sp_adjust): Likewise for return type, and for local "insn".
6478         Introduce local "pat" for use in place of "insn" where the latter
6479         isn't an instruction.
6480         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
6481         from rtx to rtx_insn *.
6482         (tilegx_adjust_insn_length): Likewise for param "insn".
6483         (next_insn_to_bundle): Likewise for return type and params "r" and
6484         "end".
6485         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
6486         "end".
6487         (replace_insns): Likewise for params "old_insn", "new_insns".
6488         (replace_mov_pcrel_step1): Likewise for param "insn" and local
6489         "new_insns".
6490         (replace_mov_pcrel_step2): Likewise.
6491         (replace_mov_pcrel_step3): Likewise.
6492         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
6493         "next_insn".
6494         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
6495         "queue", "next_queue", "prev".
6496         (tilegx_output_mi_thunk): Likewise for local "insn".
6497         (tilegx_final_prescan_insn): Likewise for param "insn".
6498
6499 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6500
6501         * config/spu/spu.c (frame_emit_store): Strengthen return type from
6502         rtx to rtx_insn *.
6503         (frame_emit_load): Likewise.
6504         (frame_emit_add_imm): Likewise, also for local "insn".
6505         (spu_expand_prologue): Likewise for local "insn".
6506         (struct spu_bb_info): Likewise for field "prop_jump".
6507         (emit_nop_for_insn): Likewise for param "insn" and local
6508         "new_insn".
6509         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
6510         "hbr_insn".
6511         (spu_emit_branch_hint): Likewise for params "before", "branch" and
6512         locals "hint", "insn".
6513         (get_branch_target): Likewise for param "branch".
6514         (insn_clobbers_hbr): Likewise for param "insn".
6515         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
6516         locals "insn", "before_4", "before_16".
6517         (insert_hbrp): Likewise for local "insn".
6518         (spu_machine_dependent_reorg): Likewise for locals "branch",
6519         "insn", "next", "bbend".
6520         (uses_ls_unit): Likewise for param "insn".
6521         (get_pipe): Likewise.
6522         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
6523         introducing a checked cast.
6524         (spu_sched_adjust_cost): Likewise for params "insn" and
6525         "dep_insn".
6526         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
6527         (spu_sms_res_mii): Likewise.
6528
6529 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6530
6531         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
6532         from rtx to rtx_insn *.
6533         (output_cbranch): Likewise for param 6.
6534         (output_return): Likewise for param 1.
6535         (output_sibcall): Likewise.
6536         (output_v8plus_shift): Likewise.
6537         (output_v8plus_mult): Likewise.
6538         (output_v9branch): Likewise for param 7.
6539         (output_cbcond):  Likewise for param 3.
6540
6541         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
6542         for local "insn".
6543         (sparc_legitimize_pic_address): Likewise.
6544         (sparc_emit_call_insn): Likewise.
6545         (emit_save_or_restore_regs): Likewise.
6546         (emit_window_save): Likewise for return type and local "insn".
6547         (sparc_expand_prologue): Likewise for local "insn".
6548         (sparc_flat_expand_prologue): Likewise.
6549         (output_return): Likewise for param "insn".
6550         (output_sibcall): Likewise for param "insn" and local "delay".
6551         (output_ubranch): Likewise for param "insn".
6552         (output_cbranch): Likewise.
6553         (output_cbcond): Likewise.
6554         (output_v9branch): Likewise.
6555         (output_v8plus_shift): Likewise.
6556         (sparc_output_mi_thunk): Likewise for local "insn".
6557         (get_some_local_dynamic_name): Likewise.
6558         (output_v8plus_mult): Likewise for param "insn".
6559
6560 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6561
6562         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
6563         from rtx to rtx_insn *.
6564         (output_branchy_insn): Likewise for param 3.
6565         (output_far_jump): Likewise for param 1.
6566         (final_prescan_insn): Likewise.
6567         (sh_insn_length_adjustment): Likewise for sole param.
6568
6569         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
6570         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
6571         rtx_code_label *.
6572         (sh_emit_compare_and_set): Likewise for local "lab".
6573         (output_far_jump): Strengthen param "insn" and local "prev" from
6574         rtx to rtx_insn *.
6575         (output_branchy_insn): Likewise for param "insn" and local
6576         "next_insn".
6577         (output_ieee_ccmpeq): Likewise for param "insn".
6578         (struct label_ref_list_d): Strengthen field "label" from rtx to
6579         rtx_code_label *.
6580         (pool_node): Likewise.
6581         (pool_window_label): Likewise for this global.
6582         (add_constant): Likewise for return type and locals "lab", "new_rtx".
6583         (dump_table): Strengthen params "start", "barrier" and local
6584         "scan" from rtx to rtx_insn *.
6585         (broken_move): Likewise for param "insn".
6586         (untangle_mova): Likewise for params "first_mova" and "new_mova".
6587         Strengthen param "first_mova" from rtx * to rtx_insn **.
6588         (mova_p): Likewise for param "insn".
6589         (fixup_mova): Likewise for param "mova".
6590         (find_barrier): Likewise for return type, params "mova" and
6591         "from", and locals "barrier_before_mova", "found_barrier",
6592         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
6593         "label" from rtx to rtx_code_label *.
6594         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
6595         rtx to rtx_insn *.
6596         (sh_reorg): Likewise for locals "link", "scan", "barrier".
6597         (split_branches): Likewise for param "first" and local "insn".
6598         (final_prescan_insn): Likewise for param "insn".
6599         (sequence_insn_p): Likewise for locals "prev", "next".
6600         (sh_insn_length_adjustment): Likewise for param "insn".
6601         (sh_can_redirect_branch): Likewise for local "insn".
6602         (find_r0_life_regions): Likewise for locals "end", "insn".
6603         (sh_output_mi_thunk): Likewise for local "insns".
6604
6605 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6606
6607         * config/score/score.c (score_output_mi_thunk): Strengthen local
6608         "insn" from rtx to rtx_insn *.
6609         (score_prologue): Likewise.
6610
6611 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6612
6613         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
6614         1 from rtx to rtx_insn *.
6615         (s390_emit_jump): Likewise for return type.
6616         (s390_emit_call): Likewise.
6617         (s390_load_got): Likewise.
6618
6619         * config/s390/s390.c (last_scheduled_insn): Likewise for this
6620         variable.
6621         (s390_match_ccmode): Likewise for param "insn".
6622         (s390_emit_jump): Likewise for return type.
6623         (s390_split_branches): Likewise for local "label".
6624         (struct constant): Strengthen field "label" from rtx to
6625         rtx_code_label *.
6626         (struct constant_pool): Likewise for field "label".  Strengthen
6627         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
6628         rtx_insn *.
6629         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
6630         insns.
6631         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
6632         (s390_end_pool): Likewise.
6633         (s390_dump_pool): Likewise for local "insn".
6634         (s390_mainpool_start): Likewise.
6635         (s390_chunkify_start): Likewise.
6636         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
6637         with insns.  Strengthen locals "label", "jump", "barrier", "next",
6638         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
6639         (s390_chunkify_finish): Strengthen local "insn" from rtx to
6640         rtx_insn *.
6641         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
6642         "jump", "label", "next_insn".
6643         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
6644         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
6645         "tbegin_insn".
6646         (s390_load_got): Likewise for return type and local "insns".
6647         (s390_save_gprs_to_fprs): Likewise for local "insn".
6648         (s390_restore_gprs_from_fprs): Likewise.
6649         (pass_s390_early_mach::execute): Likewise.
6650         (s390_emit_prologue): Likewise for local "insns".
6651         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
6652         rtx_code_label *.
6653         (s390_emit_call): Strengthen return type and local "insn" from
6654         rtx to rtx_insn *.
6655         (s390_emit_tpf_eh_return): Likewise for local "insn".
6656         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
6657         "next_insn", introducing locals "s_pat", "rpat" to allow this.
6658         (s390_fix_long_loop_prediction): Likewise for param "insn" and
6659         local "cur_insn".
6660         (s390_non_addr_reg_read_p): Likewise for param "insn".
6661         (find_cond_jump): Likewise for return type and param "insn".
6662         (s390_swap_cmp): Likewise for param "insn".
6663         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
6664         "prev_insn", "next_insn".
6665         (s390_reorg): Likewise for locals "insn", "target".
6666         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
6667         (s390_sched_variable_issue): For now, rename param "insn" to
6668         "uncast_insn", introducing a checked cast.
6669         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
6670         insn.
6671         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
6672         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
6673
6674 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6675
6676         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
6677         param from rtx to rtx_insn *.
6678         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
6679
6680 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6681
6682         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
6683         4 from rtx to rtx_insn *.
6684         (rs6000_final_prescan_insn): Likewise for first param.
6685         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
6686         local "insn".
6687         (rs6000_get_some_local_dynamic_name): Likewise.
6688         (output_cbranch): Likewise for param "insn".
6689         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
6690         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
6691         (rs6000_emit_allocate_stack): Likewise for local "insn".
6692         (load_cr_save): Likewise.
6693         (restore_saved_cr): Likewise.
6694         (restore_saved_lr): Likewise.
6695         (emit_cfa_restores): Likewise.
6696         (rs6000_output_function_epilogue): Likewise for locals "insn" and
6697         "deleted_debug_label".
6698         (rs6000_output_mi_thunk): Likewise for local "insn".
6699         (rs6000_final_prescan_insn): Likewise for param "insn".
6700
6701 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6702
6703         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
6704         Strengthen param "insn" from rtx to rtx_insn *.
6705         * config/picochip/picochip.c (picochip_current_prescan_insn):
6706         Likewise for this variable.
6707         (picochip_final_prescan_insn): Likewise for param "insn".
6708
6709 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6710
6711         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
6712         from rtx to rtx_insn *.
6713         (pa_output_indirect_call): Likewise.
6714         (pa_adjust_insn_length): Likewise.
6715         (pa_attr_length_millicode_call): Likewise.
6716         (pa_attr_length_call): Likewise.
6717         (pa_attr_length_indirect_call): Likewise.
6718
6719         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
6720         "insn".
6721         (pa_attr_length_millicode_call): Likewise.
6722         (pa_attr_length_call): Likewise.
6723         (pa_output_call): Likewise.
6724         (pa_attr_length_indirect_call): Likewise.
6725         (pa_output_indirect_call): Likewise.
6726
6727 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6728
6729         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
6730         Strengthen first param from rtx to rtx_insn *.
6731         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
6732         param "insn".
6733
6734 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6735
6736         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
6737         type from rtx to rtx_insn *.
6738         (mips_expand_call): Likewise.
6739         (mips_adjust_insn_length): Likewise for first param.
6740         (mips_output_conditional_branch): Likewise.
6741         (mips_output_order_conditional_branch): Likewise.
6742         (mips_final_prescan_insn): Likewise.
6743
6744         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
6745         rtx_insn * for the SEQUENCE case.
6746         (SEQ_END): Likewise.
6747         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
6748         (mips_emit_call_insn): Likewise, also for local "insn".
6749         (mips16_gp_pseudo_reg): Likewise for local "scan".
6750         (mips16_build_call_stub): Likewise for return type and for local
6751         "insn".  Introduce a new local "pattern" so that "insn" can indeed
6752         be an insn.
6753         (mips_expand_call): Strengthen return type and local "insn" from
6754         rtx to rtx_insn *.
6755         (mips_block_move_loop): Strengthen local "label" from rtx to
6756         rtx_code_label *.
6757         (mips_expand_synci_loop): Likewise for locals "label",
6758         "end_label".
6759         (mips_set_frame_expr): Strengthen local "insn" from rtx to
6760         rtx_insn *.
6761         (mips16e_collect_argument_saves): Likewise for locals "insn",
6762         "next".
6763         (mips_find_gp_ref): Likewise for param of callback for "pred"
6764         param, and for local "insn".
6765         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
6766         (mips_insn_has_flexible_gp_ref_p): Likewise.
6767         (mips_epilogue_emit_cfa_restores): Likewise for return type and
6768         local "insn".
6769         (mips_epilogue_set_cfa): Likewise for local "insn".
6770         (mips_expand_epilogue): Likewise.
6771         (mips_adjust_insn_length): Likewise for param "insn".
6772         (mips_output_conditional_branch): Likewise.
6773         (mips_output_order_conditional_branch): Likewise.
6774         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
6775         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
6776         "falu2_turn_enabled_insn".
6777         (mips_builtin_branch_and_move): Strengthen locals "true_label",
6778         "done_label" from rtx to rtx_code_label *.
6779         (struct mips16_constant): Likewise for field "label".
6780         (mips16_add_constant): Likewise for return type.
6781         (mips16_emit_constants_1): Strengthen return type and param "insn"
6782         from rtx to rtx_insn *.
6783         (mips16_emit_constants): Likewise for param "insn".
6784         (mips16_insn_length): Likewise.
6785         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
6786         to rtx_code_label *.
6787         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
6788         from rtx to rtx_insn *.
6789         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
6790         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
6791         (r10k_simplify_address): Strengthen param "insn" and local
6792         "def_insn" from rtx to rtx_insn *.
6793         (r10k_safe_address_p): Strengthen param "insn" from rtx to
6794         rtx_insn *.
6795         (r10k_needs_protection_p_1): Update target type of cast of data
6796         from to rtx to rtx_insn *.
6797         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
6798         rtx * to rtx_insn **.
6799         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
6800         rtx_insn *.
6801         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
6802         (mips_call_expr_from_insn): Likewise for param "insn".
6803         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
6804         (mips_find_pic_call_symbol): Likewise for param "insn".
6805         (mips_annotate_pic_calls): Likewise for local "insn".
6806         (mips_sim_insn): Likewise for this variable.
6807         (struct mips_sim): Likewise for field "insn" within elements of
6808         last_set array.
6809         (mips_sim_wait_reg): Likewise for param "insn".
6810         (mips_sim_wait_regs): Likewise.
6811         (mips_sim_wait_units): Likewise.
6812         (mips_sim_wait_insn): Likewise.
6813         (mips_sim_issue_insn): Likewise.
6814         (mips_sim_finish_insn): Likewise.
6815         (mips_seq_time): Likewise for param "seq" and local "insn".
6816         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
6817         locals "first", "second".
6818         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
6819         "last", "last2", "next".
6820         (mips_avoid_hazard): Likewise for params "after", "insn".
6821         (mips_reorg_process_insns): Likewise for locals "insn",
6822         "last_insn", "subinsn", "next_insn".
6823         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
6824         (mips16_split_long_branches): Likewise for locals "insn" "jump",
6825         "jump_sequence".
6826         (mips_output_mi_thunk): Likewise for local "insn".
6827         (mips_final_prescan_insn): Likewise for param "insn".
6828
6829 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6830
6831         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
6832         Strengthen return type and local "insns" from rtx to rtx_insn *.
6833         (microblaze_legitimize_tls_address): Likewise for local "insns".
6834         (microblaze_block_move_loop): Strengthen local "label" from rtx
6835         to rtx_code_label *.
6836         (microblaze_expand_prologue): Strengthen two locals named "insn"
6837         from rtx to rtx_insn *.
6838         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
6839         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
6840         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
6841         to rtx_code_label *.
6842
6843 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6844
6845         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
6846         param from rtx to rtx_insn *.
6847         (mep_reuse_lo): Likewise for third param.
6848         (mep_use_post_modify_p): Likewise for first param.
6849         (mep_core_address_length): Likewise.
6850         (mep_cop_address_length): Likewise.
6851         (mep_final_prescan_insn): Likewise.
6852         (mep_store_data_bypass_p): Likewise for both params.
6853         (mep_mul_hilo_bypass_p): Likewise.
6854         (mep_ipipe_ldc_p): Likewise for param.
6855
6856         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
6857         (mep_rewrite_mult): Likewise.
6858         (mep_rewrite_mulsi3): Likewise.
6859         (mep_rewrite_maddsi3): Likewise.
6860         (mep_reuse_lo_p_1): Likewise.
6861         (mep_reuse_lo_p): Likewise.
6862         (mep_frame_expr): Likewise.
6863         (mep_make_parallel): Likewise for both params.
6864         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
6865         local "insn".
6866         (mep_use_post_modify_p): Likewise for param "insn".
6867         (mep_core_address_length): Likewise.
6868         (mep_cop_address_length): Likewise.
6869         (mep_reg_set_in_function): Likewise for local "insn".
6870         (mep_asm_without_operands_p): Likewise.
6871         (F): Likewise for return type and param "x".
6872         (add_constant): Likewise for local "insn".
6873         (maybe_dead_move): Likewise for return type and local "insn".
6874         (mep_expand_prologue): Likewise for local "insn".
6875         (mep_final_prescan_insn): Likewise for param "insn".
6876         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
6877         "next", "follow", "x".
6878         (mep_insert_repeat_label_last): Likewise for return type, param
6879         "last_insn", and locals "next", "prev".  Strengthen param "label"
6880         from rtx to rtx_code_label *.
6881         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
6882         rtx_insn *.
6883         (struct mep_doloop_end): Likewise for fields "insn" and
6884         "fallthrough".
6885         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
6886         Strengthen local "repeat_label" from rtx to rtx_code_label *.
6887         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
6888         rtx_insn *.
6889         (mep_invert_branch): Likewise for params "insn" and "after".
6890         (mep_reorg_erepeat): Likewise for param "insns" and locals
6891         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
6892         "l" from rtx to rtx_code_label *.
6893         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
6894         from rtx to rtx_insn *.
6895         (mep_reorg_addcombine): Likewise for param "insns" and locals
6896         "i", "n".
6897         (add_sp_insn_p): Likewise for param "insn".
6898         (mep_reorg_noframe): Likewise for param "insns" and locals
6899         "start_frame_insn", "end_frame_insn", "next".
6900         (mep_reorg): Likewise for local "insns".
6901         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
6902         cast.
6903         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
6904         (mep_mul_hilo_bypass_p): Likewise.
6905         (mep_ipipe_ldc_p): Likewise for param "insn".
6906         (mep_make_bundle): Likewise for return type, param "cop" and local
6907         "insn", splitting out the latter into a new local "seq" for when it
6908         is a SEQUENCE rather than an insn.
6909         (core_insn_p): Likewise for param "insn".
6910         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
6911         "last", "first", "note", "prev", "core_insn".
6912
6913 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6914
6915         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
6916         rtx to rtx_insn *.
6917         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
6918         (m68k_final_prescan_insn): Likewise for first param.
6919
6920         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
6921         (m68k_set_frame_related): Likewise for param "insn".
6922         (output_btst): Likewise for param "insn".
6923         (m68k_final_prescan_insn): Likewise.
6924         (m68k_move_to_reg): Likewise for local "insn".
6925         (m68k_call_tls_get_addr): Likewise for local "insns".
6926         (m68k_call_m68k_read_tp): Likewise.
6927         (strict_low_part_peephole_ok): Likewise for param "first_insn".
6928         (m68k_output_mi_thunk): Likewise for local "insn".
6929
6930 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6931
6932         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
6933         first param from rtx to rtx_insn *.
6934         (iq2000_adjust_insn_length): Likewise.
6935         (iq2000_output_conditional_branch): Likewise.
6936         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
6937         "insn" and local "nop_insn".
6938         (iq2000_annotate_frame_insn): Likewise for param "insn".
6939         (iq2000_expand_prologue): Likewise for both locals "insn".
6940         (iq2000_adjust_insn_length): Likewise for param "insn".
6941         (iq2000_output_conditional_branch): Likewise.
6942
6943 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6944
6945         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
6946         "insns" from rtx to rtx_insn *.
6947         (ia64_emit_cond_move): Likewise for locals "insn", "first".
6948         (struct spill_fill_data): Likewise for field "init_after" and for
6949         elements of array field "prev_insn".
6950         (spill_restore_mem): Likewise for locals "insn", "first".
6951         (do_spill): Likewise for local "insn".
6952         (do_restore): Likewise.
6953         (ia64_expand_prologue): Likewise.
6954         (ia64_expand_epilogue): Likewise.
6955         (emit_insn_group_barriers): Likewise for locals "insn",
6956         "last_label".
6957         (emit_all_insn_group_barriers): Likewise for locals "insn",
6958         "last".
6959         (dfa_stop_insn): Likewise for this global.
6960         (dfa_pre_cycle_insn): Likewise.
6961         (ia64_nop): Likewise.
6962         (final_emit_insn_group_barriers): Likewise for locals "insn",
6963         "last".
6964         (emit_predicate_relation_info): Likewise for locals "head", "n",
6965         "insn", "b", "a".
6966         (ia64_reorg): Likewise for local "insn".
6967         (ia64_output_mi_thunk): Likewise.
6968         (expand_vec_perm_interleave_2): Likewise for local "seq".
6969
6970 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6971
6972         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
6973         param 1 "insn" from rtx to rtx_insn *.
6974         (ix86_use_lea_for_mov): Likewise.
6975         (ix86_avoid_lea_for_addr): Likewise.
6976         (ix86_split_lea_for_addr): Likewise.
6977         (ix86_lea_for_add_ok): Likewise.
6978         (ix86_output_call_insn): Likewise.
6979
6980         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
6981         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
6982         (ix86_output_function_epilogue): Likewise for locals "insn",
6983         "deleted_debug_label".
6984         (legitimize_tls_address): Likewise for local "insn".
6985         (get_some_local_dynamic_name): Likewise.
6986         (increase_distance): Likewise for params "prev", "next".
6987         (distance_non_agu_define_in_bb): Likewise for params "insn",
6988         "start" and locals "prev", "next".
6989         (distance_non_agu_define): Likewise for param "insn".
6990         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
6991         locals "next", "prev".
6992         (distance_agu_use): Likewise for param "insn".
6993         (ix86_lea_outperforms): Likewise.
6994         (ix86_ok_to_clobber_flags): Likewise.
6995         (ix86_avoid_lea_for_add): Likewise.
6996         (ix86_use_lea_for_mov): Likewise.
6997         (ix86_avoid_lea_for_addr): Likewise.
6998         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
6999         (ix86_split_lea_for_addr): Likewise for param "insn".
7000         (ix86_lea_for_add_ok): Likewise for param "insn".
7001         (ix86_expand_carry_flag_compare): Likewise for local
7002         "compare_seq".
7003         (ix86_expand_int_movcc): Likewise.
7004         (ix86_output_call_insn): Likewise for param "insn".
7005         (ix86_output_call_insn): Likewise for local "i".
7006         (x86_output_mi_thunk): Introduce local "insn", using it in place
7007         of "tmp" when dealing with insns.
7008         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
7009         "start".
7010         (ix86_pad_returns): Likewise for locals "ret", "prev".
7011         (ix86_count_insn_bb): Likewise for local "insn".
7012         (ix86_pad_short_function): Likewise for locals "ret", "insn".
7013         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
7014         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
7015         (expand_vec_perm_interleave2): Likewise for local "seq".
7016         (expand_vec_perm_vperm2f128_vblend): Likewise.
7017         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
7018         call to for_each_rtx with for_each_rtx_in_insn.
7019
7020 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7021
7022         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
7023         "label" from rtx to rtx_code_label *.
7024         (ix86_expand_prologue): Likewise.
7025         (ix86_expand_split_stack_prologue): Likewise for locals "label",
7026         "varargs_label".
7027         (ix86_split_idivmod): Likewise for locals "end_label" and
7028         "qimode_label".
7029         (ix86_expand_branch): Likewise for local "label2".
7030         (ix86_expand_aligntest): Likewise for return type and local "label".
7031         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
7032         "top_label".
7033         (expand_movmem_epilogue): Likewise for the various locals named
7034         "label".
7035         (expand_setmem_epilogue): Likewise.
7036         (expand_small_movmem_or_setmem): Likewise for local "label".
7037         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
7038         Strengthen param "done_label" from rtx * to rtx_code_label **.
7039         Strengthen locals "loop_label" and "label" from rtx to
7040         rtx_code_label *.
7041         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
7042         Likewise for locals "loop_label", "label".
7043         (ix86_expand_set_or_movmem): Likewise for locals "label",
7044         "jump_around_label", "hot_label".
7045         (ix86_expand_strlensi_unroll_1): Likewise for locals
7046         "align_2_label", align_3_label", "align_4_label", "end_0_label",
7047         "end_2_label".
7048         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
7049         (void ix86_emit_i387_log1p): Likewise for locals "label1",
7050         "label2", "jump_label".
7051         (ix86_expand_sse_compare_and_jump): Likewise for return type and
7052         local "label".
7053         (ix86_expand_lfloorceil): Likewise for local "label".
7054         (ix86_expand_rint): Likewise.
7055         (ix86_expand_floorceildf_32): Likewise.
7056         (ix86_expand_floorceil): Likewise.
7057         (ix86_expand_rounddf_32): Likewise.
7058         (ix86_expand_trunc): Likewise.
7059         (ix86_expand_truncdf_32): Likewise.
7060         (ix86_expand_round): Likewise.
7061
7062 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7063
7064         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
7065         first param from rtx to rtx_insn *.
7066         (h8300_insn_length_from_table): Likewise.
7067         * config/h8300/h8300.c (F): Likewise for return type and param
7068         "x".
7069         (Fpa): Add a checked cast to rtx_insn *.
7070         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
7071         rtx_insn *.
7072         (final_prescan_insn): Likewise for param "insn".
7073         (h8300_binary_length): Likewise.
7074         (h8300_insn_length_from_table): Likewise.
7075
7076 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7077
7078         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
7079         Strengthen first param "insn" from rtx to rtx_insn *.
7080
7081         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
7082         Likewise.
7083         (frame_insn): Likewise for return type.  Introduce local "insn"
7084         for use in place of local "x" for use as an rtx_insn *.
7085         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
7086         (epiphany_expand_prologue): Likewise for local "insn".
7087         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
7088         * config/epiphany/resolve-sw-modes.c
7089         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
7090         "seq".
7091
7092 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7093
7094         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
7095         param from rtx to rtx_insn *.
7096         (c6x_final_prescan_insn): Likewise for first param.
7097
7098         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
7099         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
7100         (c6x_expand_compare): Strengthen local "insns" from rtx to
7101         rtx_insn *.
7102         (c6x_get_unit_specifier): Likewise for param "insn".
7103         (c6x_print_unit_specifier_field): Likewise.
7104         (c6x_final_prescan_insn): Likewise.
7105         (emit_add_sp_const): Likewise for local "insn".
7106         (c6x_expand_prologue): Likewise.
7107
7108 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7109
7110         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
7111         param 1 from rtx to rtx_insn *.
7112         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
7113         the various locals named "insn".
7114         (expand_epilogue_reg_restore): Likewise.
7115         (frame_related_constant_load): Likewise.
7116         (add_to_reg): Likewise.
7117         (emit_link_insn): Likewise.
7118         (do_link): Likewise.
7119         (expand_interrupt_handler_prologue): Likewise.
7120         (branch_dest): Likewise for param "branch".
7121         (asm_conditional_branch): Likewise for param "insn".
7122         (gen_one_bundle): Likewise for elements of param "slot" and local
7123         "t".
7124         (bfin_gen_bundles): Likewise for locals "insn", "next" and
7125         elements of local "slot".
7126         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
7127         "queue", "next_queue", "prev".
7128         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
7129         (add_sched_insns_for_speculation): Likewise for local "insn".
7130
7131 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7132
7133         * config/avr/avr-protos.h (output_movqi): Strengthen first param
7134         from rtx to rtx_insn *.
7135         (output_movhi): Likewise.
7136         (output_movsisf): Likewise.
7137         (avr_out_tstsi): Likewise.
7138         (avr_out_tsthi): Likewise.
7139         (avr_out_tstpsi): Likewise.
7140         (avr_out_compare): Likewise.
7141         (avr_out_compare64): Likewise.
7142         (avr_out_movpsi): Likewise.
7143         (ashlqi3_out): Likewise.
7144         (ashlhi3_out): Likewise.
7145         (ashlsi3_out): Likewise.
7146         (ashrqi3_out): Likewise.
7147         (ashrhi3_out): Likewise.
7148         (ashrsi3_out): Likewise.
7149         (lshrqi3_out): Likewise.
7150         (lshrhi3_out): Likewise.
7151         (lshrsi3_out): Likewise.
7152         (avr_out_ashlpsi3): Likewise.
7153         (avr_out_ashrpsi3): Likewise.
7154         (avr_out_lshrpsi3): Likewise.
7155         (avr_out_fract): Likewise.
7156         (avr_out_sbxx_branch): Likewise.
7157         (avr_out_round): Likewise.
7158         (avr_out_xload): Likewise.
7159         (avr_out_movmem): Likewise.
7160         (adjust_insn_length): Likewise.
7161         (avr_out_lpm): Likewise.
7162         (reg_unused_after): Likewise.
7163         (_reg_unused_after): Likewise.
7164         (avr_jump_mode): Likewise for second param.
7165         (jump_over_one_insn): Likewise for first param.
7166         (avr_final_prescan_insn): Likewise.
7167         (out_shift_with_cnt): Likewise for second param.
7168
7169         * config/avr/avr.c (get_sequence_length): Likewise for param
7170         "insns" and local "insn".
7171         (emit_push_byte): Likewise for local "insn".
7172         (emit_push_sfr): Likewise.
7173         (avr_prologue_setup_frame): Likewise for locals "insn",
7174         "fp_plus_insns", "sp_plus_insns".
7175         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
7176         "sp_plus_insns".
7177         (avr_jump_mode): Likewise for param "insn".
7178         (avr_final_prescan_insn): Likewise.
7179         (avr_find_unused_d_reg): Likewise.
7180         (avr_out_lpm_no_lpmx): Likewise.
7181         (avr_out_lpm): Likewise.
7182         (avr_out_xload): Likewise.
7183         (output_movqi): Likewise.
7184         (output_movhi): Likewise.
7185         (out_movqi_r_mr): Likewise.
7186         (out_movhi_r_mr): Likewise.
7187         (out_movsi_r_mr): Likewise.
7188         (out_movsi_mr_r): Likewise.
7189         (output_movsisf): Likewise.
7190         (avr_out_load_psi): Likewise.
7191         (avr_out_store_psi): Likewise.
7192         (avr_out_movpsi): Likewise.
7193         (out_movqi_mr_r): Likewise.
7194         (avr_out_movhi_mr_r_xmega): Likewise.
7195         (out_movhi_mr_r): Likewise.
7196         (compare_condition): Likewise for param "insn" and local "next".
7197         (compare_sign_p): Likewise for param "insn".
7198         (compare_diff_p): Likewise.
7199         (compare_eq_p): Likewise.
7200         (avr_out_compare): Likewise.
7201         (avr_out_compare64): Likewise.
7202         (avr_out_tsthi): Likewise.
7203         (avr_out_tstpsi): Likewise.
7204         (avr_out_tstsi): Likewise.
7205         (out_shift_with_cnt): Likewise.
7206         (ashlqi3_out): Likewise.
7207         (ashlhi3_out): Likewise.
7208         (avr_out_ashlpsi3): Likewise.
7209         (ashlsi3_out): Likewise.
7210         (ashrqi3_out): Likewise.
7211         (ashrhi3_out): Likewise.
7212         (avr_out_ashrpsi3): Likewise.
7213         (ashrsi3_out): Likewise.
7214         (lshrqi3_out): Likewise.
7215         (lshrhi3_out): Likewise.
7216         (avr_out_lshrpsi3): Likewise.
7217         (lshrsi3_out): Likewise.
7218         (avr_out_fract): Likewise.
7219         (avr_out_round): Likewise.
7220         (avr_adjust_insn_length): Likewise.
7221         (reg_unused_after): Likewise.
7222         (_reg_unused_after): Likewise.
7223         (avr_compare_pattern): Likewise.
7224         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
7225         and locals "branch1", "branch2", "insn2", "jump".
7226         (avr_reorg): Likewise for local "insn".
7227         (avr_2word_insn_p): Likewise for param "insn".
7228         (jump_over_one_insn_p): Likewise.
7229         (avr_out_sbxx_branch): Likewise.
7230         (avr_out_movmem): Likewise.
7231
7232 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7233
7234         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
7235         param from rtx to rtx_insn *.
7236         (thumb1_final_prescan_insn): Likewise.
7237         (thumb2_final_prescan_insn): Likewise.
7238
7239         * config/arm/arm.c (emit_set_insn): Strengthen return type from
7240         rtx to rtx_insn *.
7241         (struct minipool_node): Likewise for field "insn".
7242         (dump_minipool): Likewise for param "scan".
7243         (create_fix_barrier): Likewise for local "from".  Strengthen local
7244         "label" from rtx to rtx_code_label *.
7245         (push_minipool_barrier): Strengthen param "insn" from rtx to
7246         rtx_insn *.
7247         (push_minipool_fix): Likewise.
7248         (note_invalid_constants): Likewise.
7249         (thumb2_reorg): Likewise for local "insn".
7250         (arm_reorg): Likewise.
7251         (thumb2_final_prescan_insn): Likewise for param
7252         "insn" and local "first_insn".
7253         (arm_final_prescan_insn): Likewise for param "insn" and locals
7254         "start_insn", "this_insn".
7255         (arm_debugger_arg_offset): Likewise for param "insn".
7256         (thumb1_emit_multi_reg_push): Likewise for return type and local
7257         "insn".
7258         (thumb1_final_prescan_insn): Likewise for param "insn".
7259         (thumb_far_jump_used_p): Likewise for local "insn".
7260         (thumb1_expand_prologue): Likewise.
7261         (arm_expand_epilogue_apcs_frame): Likewise.
7262         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
7263         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
7264         from rtx to rtx_code_label *.
7265         (arm_split_atomic_op): Likewise for local "label".
7266         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
7267
7268 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7269
7270         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
7271         first param from rtx to rtx_insn *.
7272         (arc_verify_short): Likewise.
7273         (arc_short_long): Likewise.
7274         (arc_need_delay): Likewise.
7275
7276         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
7277         "target_insn".
7278         (arc_ccfsm_advance): Likewise for param "insn" and locals
7279         "start_insn", "this_insn".
7280         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
7281         (arc_ccfsm_post_advance): Likewise for param "insn".
7282         (arc_next_active_insn): Likewise for return type and param "insn".
7283         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
7284         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
7285         (output_short_suffix): Likewise for local "insn".
7286         (arc_final_prescan_insn): Likewise for param "insn".  Remove
7287         now-redundant checked cast.
7288         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
7289         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
7290         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
7291         for use where lc_set became an insn.
7292         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
7293         rtx to rtx_insn *.
7294         (arc_get_insn_variants): Likewise for local "prev".
7295         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
7296         "next".
7297         (arc_predicate_delay_insns): Likewise for local "insn".
7298         (arc_pad_return): Likewise for local "prev".  For now, add a
7299         checked cast when extracting the insn from "final_sequence".
7300         (arc_short_long): Likewise for param "insn".
7301         (arc_need_delay): Likewise for param "insn" and local "next".
7302         (arc_label_align): Likewise for locals "prev", "next".
7303
7304 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7305
7306         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
7307         "insn" from rtx to rtx_insn *.
7308         (alpha_gp_save_rtx): Likewise for local "seq".
7309         (alpha_instantiate_decls): Likewise for local "top".
7310         (get_some_local_dynamic_name): Likewise for local "insn".
7311         (alpha_does_function_need_gp): Likewise.
7312         (set_frame_related_p): Likewise for return type and for locals
7313         "seq" and "insn".
7314         (emit_frame_store_1): Likewise for local "insn".
7315         (alpha_expand_prologue): Likewise for locals "insn", "seq".
7316         (alpha_end_function): Likewise for local "insn".
7317         (alpha_output_mi_thunk_osf): Likewise.
7318         (alphaev4_insn_pipe): Likewise for param "insn".
7319         (alphaev5_insn_pipe): Likewise.
7320         (alphaev4_next_group): Likewise for return type and param 1
7321         "insn".
7322         (alphaev5_next_group): Likewise.
7323         (alpha_align_insns_1): Likewise for return type and param 1 of
7324         callback param "next_group", and for locals "i", "next", "prev",
7325         "where", "where2", "insn".
7326
7327 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
7328
7329         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
7330         rather than modifying the stmt.
7331
7332 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7333
7334         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
7335         cgraph_state conversion.
7336
7337 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7338
7339         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7340         Strengthen local "insns" from rtx to rtx_insn *.
7341         (aarch64_set_frame_expr): Likewise for local "insn".
7342         (aarch64_save_or_restore_fprs): Likewise.
7343         (aarch64_save_or_restore_callee_save_registers): Likewise.
7344         (aarch64_expand_prologue): Likewise.
7345         (aarch64_expand_epilogue): Likewise.
7346         (aarch64_output_mi_thunk): Likewise.
7347         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
7348         "label2" from rtx to rtx_code_label *.
7349         (aarch64_split_atomic_op): Likewise for local "label".
7350
7351 2014-08-25  Martin Liska  <mliska@suse.cz>
7352
7353         * cgraph.h (symtab_node):
7354         (bool needed_p (void)): created from decide_is_symbol_needed
7355         (bool referred_to_p (void)): created from referred_to_p
7356         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
7357         * cgraph.h (cgraph_node):
7358         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
7359         (void expand (void)): created from expand_function
7360         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
7361         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
7362         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
7363         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
7364         * cgraph.h (varpool_node):
7365         (static void add (tree decl): created from varpool_add_new_variable
7366         * cgraph.h (cgraph_edge):
7367         void remove (void);
7368         (void remove_caller (void)): created from cgraph_edge_remove_caller
7369         (void remove_callee (void)): created from cgraph_edge_remove_callee
7370         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
7371           created from cgraph_set_call_stmt
7372         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
7373         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
7374         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
7375           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
7376         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
7377           created from cgraph_speculative_call_info
7378         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
7379           int freq_scale, bool update_original)): created from cgraph_clone_edge
7380         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
7381         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
7382         (bool recursive_p (void)): created from cgraph_edge_recursive_p
7383         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
7384         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
7385         (static void rebuild_references (void)): created from cgraph_rebuild_references
7386         * cgraph.h (symbol_table):
7387         (create_reference): renamed from add_reference
7388         (maybe_create_reference): renamed from maybe_add_reference
7389         (void register_symbol (symtab_node *node)): new function
7390         (void clear_asm_symbols (void)): new function
7391         (void unregister (symtab_node *node)): new function
7392         (void release_symbol (cgraph_node *node, int uid)): new function
7393         (cgraph_node * allocate_cgraph_symbol (void)): new function
7394         (void initialize (void)): created from cgraph_init
7395         (symtab_node *first_symbol (void)):new function
7396         (asm_node *first_asm_symbol (void)):new function
7397         (symtab_node *first_defined_symbol (void)):new function
7398         (varpool_node *first_variable (void)):new function
7399         (varpool_node *next_variable (varpool_node *node)):new function
7400         (varpool_node *first_static_initializer (void)):new function
7401         (varpool_node *next_static_initializer (varpool_node *node)):new function
7402         (varpool_node *first_defined_variable (void)):new function
7403         (varpool_node *next_defined_variable (varpool_node *node)):new function
7404         (cgraph_node *first_defined_function (void)):new function
7405         (cgraph_node *next_defined_function (cgraph_node *node)):new function
7406         (cgraph_node *first_function (void)):new function
7407         (cgraph_node *next_function (cgraph_node *node)):new function
7408         (cgraph_node *first_function_with_gimple_body (void)):new function
7409         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
7410         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
7411           created from symtab_remove_unreachable_nodes
7412         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
7413         (void process_new_functions (void)): created from cgraph_process_new_functions
7414         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
7415         (bool output_variables (void)): created from varpool_node::output_variables
7416         (void output_asm_statements (void)): created from output_asm_statements
7417         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
7418         (void compile (void)): created from compile
7419         (void output_weakrefs (void)): created from output_weakrefs
7420         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
7421         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
7422           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
7423         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
7424         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
7425           created from cgraph_next_function_with_gimple_body
7426         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
7427           created from cgraph_remove_edge_removal_hook
7428         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
7429           created from cgraph_add_node_removal_hook
7430         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
7431           created from cgraph_remove_node_removal_hook
7432         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
7433           created from varpool_add_node_removal_hook
7434         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
7435           created from varpool_remove_node_removal_hook
7436         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
7437           created from cgraph_add_function_insertion_hook
7438         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
7439           created from cgraph_remove_function_insertion_hook
7440         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
7441           created from varpool_add_variable_insertion_hook
7442         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
7443           created from varpool_remove_variable_insertion_hook
7444         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
7445           created from cgraph_add_edge_duplication_hook
7446         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
7447           created from cgraph_remove_edge_duplication_hook
7448         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
7449           created from cgraph_add_node_duplication_hook
7450         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
7451           created from cgraph_remove_node_duplication_hook
7452         (void call_edge_removal_hooks (cgraph_edge *e)):
7453           created from cgraph_call_edge_removal_hooks
7454         (void call_cgraph_insertion_hooks (cgraph_node *node)):
7455           created from call_function_insertion_hooks 
7456         (void call_cgraph_removal_hooks (cgraph_node *node)):
7457           created from cgraph_call_node_removal_hooks 
7458         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
7459           created from cgraph_node::call_duplication_hooks 
7460         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
7461           created from cgraph_call_edge_duplication_hooks
7462         (void call_varpool_removal_hooks (varpool_node *node)):
7463           created from varpool_call_node_removal_hooks
7464         (void call_varpool_insertion_hooks (varpool_node *node)):
7465           created from varpool_call_variable_insertion_hooks
7466         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
7467           created from insert_to_assembler_name_hash
7468         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
7469           created from unlink_from_assembler_name_hash
7470         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
7471           created from symtab_prevail_in_asm_name_hash
7472         (void symtab_initialize_asm_name_hash (void)):
7473           created from symtab_initialize_asm_name_hash
7474         (void change_decl_assembler_name (tree decl, tree name)):
7475           created from change_decl_assembler_name
7476         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
7477         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
7478           created from decl_assembler_name_hash
7479         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
7480           created from decl_assembler_name_equal
7481         (static hashval_t hash_node_by_assembler_name (const void *p)):
7482           created from hash_node_by_assembler_name
7483         (static int eq_assembler_name (const void *p1, const void *p2)):
7484           created from eq_assembler_name
7485
7486 2014-08-25  Marek Polacek  <polacek@redhat.com>
7487
7488         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
7489
7490 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
7491
7492         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
7493         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
7494         SWI1248_AVX512BW mode iterator.
7495
7496 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
7497
7498         PR target/62111
7499         * config/sh/predicates.md (general_extend_operand): Disable
7500         TRUNCATE before reload completes.
7501
7502 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
7503
7504         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
7505
7506 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
7507
7508         PR target/61996
7509         * config/sh/sh.opt (musermode): Allow negative form.
7510         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
7511         targets that don't support it.
7512         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
7513         Document -mno-usermode option.
7514
7515 2014-08-24  Kito Cheng  <kito@0xlab.org>
7516
7517         * system.h (CALLER_SAVE_PROFITABLE): Poison.
7518         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
7519         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
7520         * doc/tm.texi: Regenerate.
7521
7522 2014-08-24  Kito Cheng  <kito@0xlab.org>
7523
7524         * ira.c: Fix typo in comment.
7525
7526 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
7527
7528         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
7529         Deprecate c++1y. Change language to reflect greater confidence in C++14.
7530
7531 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
7532
7533         PR target/62038
7534         * config/pa/pa.c (pa_output_function_epilogue): Don't set
7535         last_address when the current function is a thunk.
7536         (pa_asm_output_mi_thunk): When we don't have named sections or they
7537         are not being used, check that thunk can reach the stub table with a
7538         short branch.
7539
7540 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7541
7542         * web.c (union_match_dups): Strengthen param "insn" from rtx to
7543         rtx_insn *.
7544         (pass_web::execute): Likewise for local "insn".
7545
7546 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7547
7548         * var-tracking.c (struct micro_operation_def): Strengthen field
7549         "insn" from rtx to rtx_insn *.
7550         (struct emit_note_data_def): Likewise.
7551         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
7552         (vt_stack_adjustments): Likewise for local "insn".
7553         (adjust_insn): Likewise for param "insn".
7554         (val_store): Likewise.
7555         (val_resolve): Likewise.
7556         (struct count_use_info): Likewise for field "insn".
7557         (log_op_type): Likewise for param "insn".
7558         (reverse_op): Likewise.
7559         (prepare_call_arguments): Likewise.
7560         (add_with_sets):  The initial param takes an insn, but we can't
7561         yet strengthen it from rtx to rtx_insn * since it's used as a
7562         cselib_record_sets_hook callback.  For now rename initial param
7563         from "insn" to "uncast_insn", and introduce a local "insn" of
7564         the stronger rtx_insn * type, with a checked cast.
7565         (compute_bb_dataflow): Strengthen local "insn" from rtx to
7566         rtx_insn *.
7567         (emit_note_insn_var_location): Likewise.
7568         (emit_notes_for_changes): Likewise.
7569         (emit_notes_for_differences): Likewise.
7570         (next_non_note_insn_var_location): Likewise for return type and
7571         for param "insn".
7572         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
7573         (vt_initialize): Likewise for local "insn".
7574         (delete_debug_insns): Likewise for locals "insn" and "next".
7575
7576 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7577
7578         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
7579         rtx_insn *.
7580         (mark_constant_pool): Likewise for local "insn".
7581
7582 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7583
7584         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
7585         rtx to rtx_insn *.
7586         (dead_debug_promote_uses): Likewise.
7587         (dead_debug_insert_temp): Likewise.
7588
7589 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7590
7591         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
7592         from const_rtx to const rtx_insn *.
7593         (store_killed_after): Likewise.  Strengthen locals "last", "act"
7594         from rtx to rtx_insn *.
7595         (store_killed_before): Strengthen param "insn" from const_rtx to
7596         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
7597         (find_moveable_store): Strengthen param "insn" from rtx to
7598         rtx_insn *.
7599         (compute_store_table): Likewise for local "insn".
7600         (insert_insn_start_basic_block): Likewise for param "insn" and
7601         locals "prev", "before", "insn".
7602         (insert_store): For now, add a checked cast to rtx_insn * on the
7603         result of gen_move_insn.
7604         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
7605         to rtx_insn *.
7606         (replace_store_insn): Likewise.  For now, add a checked cast to
7607         rtx_insn * on the result of gen_move_insn.
7608
7609 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7610
7611         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
7612         rtx_insn *.
7613         (expand_sjlj_dispatch_table): Likewise.
7614
7615 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7616
7617         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
7618         "insn" from rtx to rtx_insn *.
7619
7620 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7621
7622         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
7623         "insn" from rtx to rtx_insn *.
7624         (dup_block_and_redirect): Likewise for param 3 "before".
7625
7626         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
7627         from rtx to rtx_insn *.
7628         (move_insn_for_shrink_wrap): Likewise.
7629         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
7630         (dup_block_and_redirect): Likewise for param "before" and local
7631         "insn".
7632         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
7633         "end".
7634         (convert_to_simple_return): Likewise for local "start".
7635
7636         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
7637         Strengthen local "insn" from rtx to rtx_insn *, for use when
7638         invoking requires_stack_frame_p.
7639
7640 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7641
7642         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
7643         rtx_insn *.
7644         (speculate_expr): Likewise for locals "orig_insn_rtx",
7645         "spec_insn_rtx".
7646         (eq_transformed_insns): Likewise for locals "i1", "i2".
7647         (check_for_new_jump): Likewise for return type and local "end".
7648         (find_new_jump): Likewise for return type and local "jump".
7649         (sel_split_edge): Likewise for local "jump".
7650         (sel_create_recovery_block): Likewise.
7651         (sel_redirect_edge_and_branch_force): Likewise.
7652         (sel_redirect_edge_and_branch): Likewise.
7653
7654 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7655
7656         * sel-sched.c (substitute_reg_in_expr): Strengthen local
7657         "new_insn" from rtx to rtx_insn *.
7658         (create_insn_rtx_with_rhs): Likewise for return type and for local
7659         "insn_rtx".
7660         (create_insn_rtx_with_lhs): Likewise.
7661         (create_speculation_check): Likewise for local "insn_rtx".
7662         (implicit_clobber_conflict_p): Likewise for local "insn".
7663         (get_expr_cost): Likewise.
7664         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
7665         (move_cond_jump): Likewise for locals "next", "prev", "link",
7666         "head", "from", "to".
7667
7668 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7669
7670         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
7671         "next" from rtx to rtx_insn *.
7672         (find_conditional_protection): Likewise for local "next".
7673         (is_conditionally_protected): Likewise for local "insn1".
7674         (is_pfree): Likewise for locals "insn1", "insn2".
7675
7676 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7677
7678         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
7679         from rtx to rtx_insn *.
7680
7681         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
7682         locals "insn1", "insn2" from rtx to rtx_insn *.
7683         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
7684         locals "insn", "prev", "last_jump", "next_tail".
7685         (schedule_ebb): Likewise for params "head", "tail".
7686         (schedule_ebbs): Likewise for locals "tail", "head".
7687
7688         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
7689         to rtx_insn on "last_insn" in one of the invocations of
7690         schedule_ebb.
7691
7692 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7693
7694         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
7695         "elem", "insn" from rtx to rtx_insn *.
7696         (change_spec_dep_to_hard): Likewise.
7697         (get_back_and_forw_lists): Likewise for local "con".
7698         (sd_add_dep): Likewise for locals "elem", "insn".
7699         (sd_resolve_dep): Likewise for locals "pro", "con".
7700         (sd_unresolve_dep): Likewise.
7701         (sd_delete_dep): Likewise.
7702         (chain_to_prev_insn): Likewise for local "pro".
7703         (find_inc): Likewise for locals "pro", "con".
7704
7705 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7706
7707         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
7708         to rtx_insn *.
7709         (reg_set_between_p): Strengthen local "insn" from const_rtx to
7710         const rtx_insn *.
7711         (modified_between_p): Strengthen local "insn" from rtx to
7712         rtx_insn *.
7713         (remove_reg_equal_equiv_notes_for_regno): Likewise.
7714         (keep_with_call_p): Strengthen local "i2" from const_rtx to
7715         const rtx_insn *.
7716
7717 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7718
7719         * resource.c (next_insn_no_annul): Strengthen local "next" from
7720         rtx to rtx_insn *.
7721         (mark_referenced_resources): Likewise for local "insn".
7722
7723 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7724
7725         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
7726         to rtx_insn *.
7727         (find_reloads): Likewise for param 1.
7728         (subst_reloads): Likewise for sole param.
7729         (find_equiv_reg): Likwise for param 2.
7730         (regno_clobbered_p): Likwise for param 2.
7731         (reload): Likewise for param 1.
7732
7733         * caller-save.c (save_call_clobbered_regs): Strengthen local
7734         "insn" from rtx to rtx_insn *.
7735         (insert_one_insn): Likewise for local "insn".
7736
7737         * reload.c (this_insn): Likewise for this global.
7738         (find_reloads): Likewise for param "insn".
7739         (find_reloads_toplev): Likewise.
7740         (find_reloads_address): Likewise.
7741         (subst_reg_equivs): Likewise.
7742         (update_auto_inc_notes): Likewise.
7743         (find_reloads_address_1): Likewise.
7744         (find_reloads_subreg_address): Likewise.
7745         (subst_reloads): Likewise.
7746         (find_equiv_reg): Likewise, also for local "p".
7747         (regno_clobbered_p): Likewise for param "insn".
7748
7749         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
7750         array.
7751         (spill_reg_store): Likewise for the elements of this array.
7752         (remove_init_insns): Likewise for local "equiv_insn".
7753         (will_delete_init_insn_p): Likewise for param "insn".
7754         (reload): Likewise for param ""first" and local "insn".
7755         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
7756         rtx_insn *.
7757         (calculate_elim_costs_all_insns): Likewise.
7758         (delete_caller_save_insns): Likewise.
7759         (spill_failure): Likewise for param "insn".
7760         (delete_dead_insn): Likewise.
7761         (set_label_offsets): Likewise.
7762         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
7763         "prev_insn".
7764         (elimination_costs_in_insn): Likewise for param "insn".
7765         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
7766         when referring to an insn.
7767         (set_initial_label_offsets): Likewise.
7768         (set_offsets_for_label): Strengthen param "insn" from rtx to
7769         rtx_insn *.
7770         (init_eliminable_invariants): Likewise for param "first" and local
7771         "insn".
7772         (fixup_eh_region_note): Likewise for param "insn".
7773         (reload_as_needed): Likewise for locals "prev", "insn",
7774         "old_next", "old_prev", "next".
7775         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
7776         "last".
7777         (reload_inheritance_insn): Strengthen elements of this array from
7778         rtx to rtx_insn *.
7779         (failed_reload): Likewise for param "insn".
7780         (choose_reload_regs): Likewise for local "insn".  Replace use of
7781         NULL_RTX with NULL when referring to an insn.
7782         (input_reload_insns): Strengthen elements of this array from rtx
7783         to rtx_insn *.
7784         (other_input_address_reload_insns): Likewise for this global.
7785         (other_input_reload_insns): Likewise for this global.
7786         (input_address_reload_insns): Likwise for the elements of this
7787         array.
7788         (inpaddr_address_reload_insns): Likwise for the elements of this
7789         array.
7790         (output_reload_insns): Likewise for the elements of this array.
7791         (output_address_reload_insns): Likewise for the elements of this
7792         array.
7793         (outaddr_address_reload_insns): Likewise for the elements of this
7794         array.
7795         (operand_reload_insns): Likewise for this global.
7796         (other_operand_reload_insns): Likewise for this global.
7797         (other_output_reload_insns): Likewise for the elements of this
7798         array.
7799         (new_spill_reg_store): Likewise for the elements of this
7800         array.
7801         (emit_input_reload_insns): Likewise for locals "insn", "temp".
7802         Strengthen local "where" from rtx * to rtx_insn **.
7803         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
7804         from rtx to rtx_insn *.
7805         (do_input_reload): Likewise for local "insn".
7806         (do_output_reload): Likewise for local "insn".
7807         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
7808         (emit_insn_if_valid_for_reload): Likewise for return type and local
7809         "last".  Add checked cast to rtx_insn when returning "insn" since
7810         this has been through emit_insn.
7811         (gen_reload): Strengthen return type and locals "last", "insn", "set"
7812         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
7813         returning "insn" since it's been through
7814         emit_insn_if_valid_for_reload at this point.
7815         (delete_output_reload): Strengthen param "insn" and locals
7816         "output_reload_insn", "i2" from rtx to rtx_insn *.
7817         (delete_address_reloads): Likewise for params "dead_insn",
7818         "current_insn" and locals "prev", "next".
7819         (delete_address_reloads_1): Likewise for params "dead_insn",
7820         "current_insn" and locals "prev", "i2".
7821         (inc_for_reload): Likewise for locals "last", "add_insn".
7822         (add_auto_inc_notes): Strengthen param "insn" from rtx to
7823         rtx_insn *.
7824
7825         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
7826         param of this duplicate of the prototype from reload.h
7827
7828 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7829
7830         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
7831         rtx to rtx_insn *.
7832         (regstat_bb_compute_calls_crossed): Likewise.
7833
7834 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7835
7836         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
7837         to rtx_insn *.
7838         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
7839         with an insn.
7840         (regrename_analyze): Strengthen local "insn" from rtx to
7841         rtx_insn *.
7842         (scan_rtx_reg): Likewise for param "insn".
7843         (scan_rtx_address): Likewise.
7844         (scan_rtx): Likewise.
7845         (restore_operands): Likewise.
7846         (record_out_operands): Likewise.
7847         (build_def_use): Likewise for local "insn".  Replace use of
7848         NULL_RTX with NULL when dealing with an insn.
7849
7850 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7851
7852         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
7853         * reginfo.c (reg_scan): Likewise, also for local "insn".
7854         (reg_scan_mark_refs): Likewise for param "insn".
7855         (init_subregs_of_mode): Likewise for local "insn".
7856
7857 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7858
7859         * regcprop.c (struct queued_debug_insn_change): Strengthen field
7860         "insn" from rtx to rtx_insn *.
7861         (replace_oldest_value_reg): Likewise for param "insn".
7862         (replace_oldest_value_addr): Likewise.
7863         (replace_oldest_value_mem): Likewise.
7864         (apply_debug_insn_changes): Likewise for local "last_insn".
7865         (copyprop_hardreg_forward_1): Likewise for local "insn".
7866
7867 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7868
7869         * reg-stack.c (next_flags_user): Strengthen return type and param
7870         "insn" from rtx to rtx_insn *.
7871         (straighten_stack): Likewise for param "insn".
7872         (check_asm_stack_operands): Likewise.
7873         (remove_regno_note): Likewise.
7874         (emit_pop_insn): Likewise for return type, param "insn", local
7875         "pop_insn".
7876         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
7877         "limit" from rtx to rtx_insn *.
7878         (swap_to_top): Likewise for param "insn".
7879         (move_for_stack_reg): Likewise.
7880         (move_nan_for_stack_reg): Likewise.
7881         (swap_rtx_condition): Likewise.
7882         (compare_for_stack_reg): Likewise.
7883         (subst_all_stack_regs_in_debug_insn): Likewise.
7884         (subst_stack_regs_pat): Likewise, and local "insn2".
7885         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
7886         rtx_insn *.
7887         (subst_stack_regs): Likewise.
7888         (change_stack): Likewise.
7889         (convert_regs_1): Likewise for locals "insn", "next".
7890
7891 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7892
7893         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
7894         rtx_insn *.
7895         (combine_set_extension): Likewise for param "curr_insn".
7896         (transform_ifelse): Likewise for param "def_insn".
7897         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
7898         from vec<rtx> * to vec<rtx_insn *> *.
7899         (is_cond_copy_insn): Likewise for param "insn".
7900         (struct ext_state): Strengthen the four vec fields from vec<rtx>
7901         to vec<rtx_insn *>.
7902         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
7903         local "def_insn" from rtx to rtx_insn *.
7904         (get_sub_rtx): Likewise for param "def_insn".
7905         (merge_def_and_ext): Likewise.
7906         (combine_reaching_defs): Likewise.
7907         (add_removable_extension): Likewise for param "insn".
7908         (find_removable_extensions): Likewise for local "insn".
7909         (find_and_remove_re): Likewise for locals "curr_insn" and
7910         "def_insn".  Strengthen locals "reinsn_del_list" and
7911         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
7912
7913 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7914
7915         * recog.c (split_insn): Strengthen param "insn" and locals
7916         "first", "last" from rtx to rtx_insn *.
7917         (split_all_insns): Likewise for locals "insn", "next".
7918         (split_all_insns_noflow): Likewise.
7919
7920 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7921
7922         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
7923         const rtx_insn *.
7924         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
7925         (debug_rtx_find): Likewise for param 1 "x".
7926
7927         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
7928         const_rtx to const rtx_insn *.  Likewise for local "insn".
7929         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
7930         (debug_rtx_find): Likewise for param 1 "x".
7931         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
7932         from const_rtx to const rtx_insn * within the appropriate cases of
7933         the switch statement.
7934
7935         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
7936         Strengthen local "insns" from rtx to rtx_insn * since this is
7937         passed to a call to debug_rtx_list.
7938
7939 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7940
7941         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
7942         to rtx_insn *.
7943
7944         * function.c (stack_protect_epilogue): Add checked cast to
7945         rtx_insn for now when invoking predict_insn_def.
7946
7947         * predict.c (predict_insn): Strengthen param "insn" from rtx to
7948         rtx_insn *.
7949         (predict_insn_def): Likewise.
7950         (rtl_predict_edge): Likewise for local "last_insn".
7951         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
7952         const rtx_insn *.
7953         (combine_predictions_for_insn): Strengthen param "insn" from rtx
7954         to rtx_insn *.
7955         (bb_estimate_probability_locally): Likewise for local "last_insn".
7956         (expensive_function_p): Likewise for local "insn".
7957
7958         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
7959         local "jmp", since this is used when invoking predict_insn_def.
7960
7961 2014-08-22  Marek Polacek  <polacek@redhat.com>
7962
7963         PR c++/62199
7964         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
7965
7966 2014-08-22  Marek Polacek  <polacek@redhat.com>
7967
7968         PR c/61271
7969         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
7970         a comparison in parens.
7971         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
7972         in parens.
7973
7974 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7975
7976         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
7977         rtx_insn *.
7978
7979         * cprop.c (fis_get_condition): Likewise.
7980
7981         * postreload.c (reload_cse_regs): Likewise for param "first".
7982         (reload_cse_simplify): Likewise for param "insn".
7983         (reload_cse_regs_1): Likewise for local "insn".
7984         (reload_cse_simplify_set): Likewise for param "insn".
7985         (reload_cse_simplify_operands): Likewise.
7986         (struct reg_use): Likewise for field "insn".
7987         (reload_combine_purge_insn_uses): Likewise for param "insn".
7988         (fixup_debug_insns): Likewise for params "from", "to" and local
7989         "insn".
7990         (try_replace_in_use): Likewise for local "use_insn".
7991         (reload_combine_recognize_const_pattern): Likewise for param
7992         "insn" and locals "add_moved_after_insn", "use_insn".
7993         (reload_combine_recognize_pattern): Likewise for param "insn" and
7994         local "prev".
7995         (reload_combine): Likewise for locals "insn", "prev".
7996         (reload_combine_note_use): Likewise for param "insn".
7997         (move2add_use_add2_insn): Likewise.
7998         (move2add_use_add3_insn): Likewise.
7999         (reload_cse_move2add): Likewise, also for local "next".
8000         (move2add_note_store): Likewise for local "insn".
8001
8002 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8003
8004         * postreload-gcse.c (struct occr): Strengthen field "insn" from
8005         rtx to rtx_insn *.
8006         (struct unoccr): Likewise.
8007         (struct modifies_mem): Likewise.
8008         (alloc_mem): Likewise for local "insn".
8009         (insert_expr_in_table): Likewise for param "insn".
8010         (dump_expr_hash_table_entry): Likewise for local "insn".
8011         (oprs_unchanged_p): Likewise for param "insn".
8012         (load_killed_in_block_p): Likewise for local "setter".
8013         (record_last_reg_set_info): Likewise for param "insn".
8014         (record_last_reg_set_info_regno): Likewise.
8015         (record_last_mem_set_info): Likewise.
8016         (record_last_set_info): Likewise for local "last_set_insn".
8017         (record_opr_changes): Likewise for param "insn".
8018         (hash_scan_set): Likewise.
8019         (compute_hash_table): Likewise for local "insn".
8020         (get_avail_load_store_reg): Likewise for param "insn".
8021         (eliminate_partially_redundant_load): Likewise, also for locals
8022         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
8023         RTX for insns.
8024         (eliminate_partially_redundant_loads): Likewise for local "insn".
8025
8026 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8027
8028         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
8029         rtx to rtx_insn *.
8030         (expand_binop): Likewise for locals "entry_last", "last", "insns"
8031         (expand_twoval_unop): Likewise for locals entry_last", "last".
8032         (expand_twoval_binop): Likewise.
8033         (expand_twoval_binop_libfunc): Likewise for local "insns".
8034         (widen_leading): Likewise for local "last".
8035         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
8036         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
8037         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
8038         (expand_parity): Likewise for locals "last" and "seq".
8039         (expand_ffs): Likewise for local "seq".  Strengthen local
8040         "nonzero_label" from rtx to rtx_code_label *.
8041         (expand_absneg_bit): Strengthen local "insns" from rtx to
8042         rtx_insn *.
8043         (expand_unop_direct): Likewise for local "last".
8044         (expand_unop): Likewise for locals "last", "insns".
8045         (expand_abs_nojump): Likewise for local "last".
8046         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
8047         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
8048         rtx_insn *.
8049         (expand_copysign_absneg): Strengthen local "label" from rtx to
8050         rtx_code_label *.
8051         (expand_copysign_bit): Strengthen local "insns" from rtx to
8052         rtx_insn *.
8053         (struct no_conflict_data): Likewise for fields "first", "insn".
8054         (emit_libcall_block_1): Likewise for param "insns" and locals
8055         "next", "last", "insn".
8056         (emit_libcall_block): For now, add a checked cast to rtx_insn *
8057         on "insns" when invoking emit_libcall_block_1.  Ultimately we
8058         want to strengthen insns itself.
8059         (prepare_cmp_insn): Strengthen local "last" from rtx to
8060         rtx_insn *.
8061         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
8062         (prepare_float_lib_cmp): Likewise for local "insns".
8063         (emit_conditional_move): Likewise for local "last".
8064         (emit_conditional_add): Likewise.
8065         (have_sub2_insn): Likewise for local "seq".
8066         (expand_float): Likewise for local "insns".  Strengthen locals
8067         "label", "neglabel" from rtx to rtx_code_label *.
8068         (expand_fix): Likewise for locals "last", "insn", "insns" (to
8069         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
8070         (expand_fixed_convert): Likewise for local "insns" (to
8071         rtx_insn *).
8072         (expand_sfix_optab): Likewise for local "last".
8073         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
8074         to rtx_code_label *.
8075         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
8076         from rtx to rtx_insn *.
8077         (expand_atomic_fetch_op): Likewise for local "insn".
8078         (maybe_legitimize_operand_same_code): Likewise for local "last".
8079         (maybe_legitimize_operands): Likewise.
8080
8081 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8082
8083         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
8084         "insn" from rtx to rtx_insn *.
8085         (ps_rtl_insn): Likewise for return type.
8086         (doloop_register_get): Likewise for params "head", "tail" and
8087         locals "insn", "first_insn_not_to_check".
8088         (schedule_reg_move): Likewise for local "this_insn".
8089         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
8090         of gen_move_insn for now.
8091         (reset_sched_times): Strengthen local "insn" from rtx to
8092         rtx_insn *.
8093         (permute_partial_schedule): Likewise.
8094         (duplicate_insns_of_cycles): Likewise for local "u_insn".
8095         (dump_insn_location): Likewise for param "insn".
8096         (loop_canon_p): Likewise for local "insn".
8097         (sms_schedule): Likewise.
8098         (print_partial_schedule): Likewise.
8099         (ps_has_conflicts): Likewise.
8100
8101 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8102
8103         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
8104         "tailp" from rtx * to rtx_insn **.
8105
8106         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
8107         from rtx to rtx_insn *.
8108         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
8109         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
8110         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
8111         rtx to rtx_insn *.
8112         * modulo-sched.c (const_iteration_count): Strengthen return type
8113         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
8114         use of NULL_RTX with NULL when working with insns.
8115         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
8116         to rtx_insn *.
8117         (sms_schedule): Likewise.
8118         * sched-rgn.c (init_ready_list): Likewise, also for locals
8119         "src_head" and "src_next_tail".
8120         (compute_block_dependences): Likewise.
8121         (free_block_dependencies): Likewise.
8122         (debug_rgn_dependencies): Likewise.
8123         (free_rgn_deps): Likewise.
8124         (compute_priorities): Likewise.
8125         (schedule_region): Likewise.
8126         * sel-sched.c (find_ebb_boundaries): Likewise.
8127
8128         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
8129         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
8130
8131 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8132
8133         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
8134         from rtx to rtx_insn *.
8135         (new_seginfo): Likewise for param "insn".
8136         (create_pre_exit): Likewise for locals "last_insn",
8137         "before_return_copy", "return_copy".
8138         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
8139         "mode_set".
8140
8141 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8142
8143         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
8144         from rtx to rtx_insn *.
8145         (lra_push_insn): Likewise for 1st param.
8146         (lra_push_insn_and_update_insn_regno_info): Likewise.
8147         (lra_pop_insn): Likewise for return type.
8148         (lra_invalidate_insn_data): Likewise for 1st param.
8149         (lra_set_insn_deleted): Likewise.
8150         (lra_delete_dead_insn): Likewise.
8151         (lra_process_new_insns): Likewise for first 3 params.
8152         (lra_set_insn_recog_data): Likewise for 1st param.
8153         (lra_update_insn_recog_data): Likewise.
8154         (lra_set_used_insn_alternative): Likewise.
8155         (lra_invalidate_insn_regno_info): Likewise.
8156         (lra_update_insn_regno_info): Likewise.
8157         (lra_former_scratch_operand_p): Likewise.
8158         (lra_eliminate_regs_1): Likewise.
8159         (lra_get_insn_recog_data): Likewise.
8160
8161         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
8162         rtx to rtx_insn *.
8163
8164         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
8165         "mv1" and "mv2".
8166         (substitute_within_insn): New.
8167         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
8168         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
8169         Replace call to "substitute" with call to substitute_within_insn.
8170
8171         * lra-constraints.c (curr_insn): Strengthen from rtx to
8172         rtx_insn *.
8173         (get_equiv_with_elimination): Likewise for param "insn".
8174         (match_reload): Strengthen params "before" and "after" from rtx *
8175         to rtx_insn **.
8176         (emit_spill_move): Likewise for return type.  Add a checked cast
8177         to rtx_insn * on result of gen_move_insn for now.
8178         (check_and_process_move): Likewise for local "before".  Replace
8179         NULL_RTX with NULL when referring to insns.
8180         (process_addr_reg): Strengthen params "before" and "after" from
8181         rtx * to rtx_insn **.
8182         (insert_move_for_subreg): Likewise.
8183         (simplify_operand_subreg): Strengthen locals "before" and "after"
8184         from rtx to rtx_insn *.
8185         (process_address_1): Strengthen params "before" and "after" from
8186         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
8187         rtx to rtx_insn *.
8188         (process_address): Strengthen params "before" and "after" from
8189         rtx * to rtx_insn **.
8190         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
8191         (curr_insn_transform): Strengthen locals "before" and "after"
8192         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
8193         to insns.
8194         (loc_equivalence_callback): Update cast of "data", changing
8195         resulting type from rtx to rtx_insn *.
8196         (substitute_pseudo_within_insn): New.
8197         (inherit_reload_reg): Strengthen param "insn" from rtx to
8198         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
8199         NULL when referring to insns.  Add a checked cast to rtx_insn *
8200         when using usage_insn to invoke lra_update_insn_regno_info.
8201         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
8202         likewise for locals "restore", "save".  Add checked casts to
8203         rtx_insn * when using usage_insn to invoke
8204         lra_update_insn_regno_info and lra_process_new_insns.  Replace
8205         NULL_RTX with NULL when referring to insns.
8206         (split_if_necessary): Strengthen param "insn" from rtx to
8207         rtx_insn *.
8208         (update_ebb_live_info): Likewise for params "head", "tail" and local
8209         "prev_insn".
8210         (get_last_insertion_point): Likewise for return type and local "insn".
8211         (get_live_on_other_edges): Likewise for local "last".
8212         (inherit_in_ebb): Likewise for params "head", "tail" and locals
8213         "prev_insn", "next_insn", "restore".
8214         (remove_inheritance_pseudos): Likewise for local "prev_insn".
8215         (undo_optional_reloads): Likewise for local "insn".
8216
8217         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
8218         "insn".
8219         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
8220         insns.
8221         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
8222         rtx_insn *.
8223         (spill_pseudos): Likewise for local "insn".
8224         (init_elimination): Likewise.
8225         (process_insn_for_elimination): Likewise for param "insn".
8226
8227         * lra-lives.c (curr_insn): Likewise.;
8228
8229         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
8230         (remove_pseudos): Likewise for param "insn".
8231         (spill_pseudos): Likewise for local "insn".
8232         (lra_final_code_change): Likewise for locals "insn", "curr".
8233
8234         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
8235         (lra_set_insn_deleted): Likewise.
8236         (lra_delete_dead_insn): Likewise, and for local "prev".
8237         (new_insn_reg): Likewise for param "insn".
8238         (lra_set_insn_recog_data): Likewise.
8239         (lra_update_insn_recog_data): Likewise.
8240         (lra_set_used_insn_alternative): Likewise.
8241         (get_insn_freq): Likewise.
8242         (invalidate_insn_data_regno_info): Likewise.
8243         (lra_invalidate_insn_regno_info): Likewise.
8244         (lra_update_insn_regno_info): Likewise.
8245         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
8246         vec<rtx_insn *>.
8247         (lra_push_insn_1): Strengthen param "insn" from rtx to
8248         rtx_insn *.
8249         (lra_push_insn): Likewise.
8250         (lra_push_insn_and_update_insn_regno_info): Likewise.
8251         (lra_pop_insn): Likewise for return type and local "insn".
8252         (push_insns): Likewise for params "from", "to", and local "insn".
8253         (setup_sp_offset): Likewise for params "from", "last" and locals
8254         "before", "insn".
8255         (lra_process_new_insns): Likewise for params "insn", "before",
8256         "after" and local "last".
8257         (struct sloc): Likewise for field "insn".
8258         (lra_former_scratch_operand_p): Likewise for param "insn".
8259         (remove_scratches): Likewise for locals "insn", "last".
8260         (check_rtl): Likewise for local "insn".
8261         (add_auto_inc_notes): Likewise for param "insn".
8262         (update_inc_notes): Likewise for local "insn".
8263         (lra): Replace NULL_RTX with NULL when referring to insn.
8264
8265 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8266
8267         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
8268         to rtx_insn *.
8269         (resolve_reg_notes): Likewise.
8270         (resolve_simple_move): Likewise for return type, param "insn", and
8271         locals "insns", "minsn".
8272         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
8273         (resolve_use): Likewise.
8274         (resolve_debug): Likewise.
8275         (find_decomposable_shift_zext): Likewise.
8276         (resolve_shift_zext): Likewise for return type, param "insn", and
8277         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
8278         (decompose_multiword_subregs): Likewise for local "insn",
8279         "orig_insn", "decomposed_shift", "end".
8280
8281 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8282
8283         * basic-block.h (basic_block split_edge_and_insert): Strengthen
8284         param "insns" from rtx to rtx_insn *.
8285
8286         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
8287         rtx to rtx_insn *.
8288         (struct iv_to_split): Likewise.
8289         (loop_exit_at_end_p): Likewise for local "insn".
8290         (split_edge_and_insert): Likewise for param "insns".
8291         (compare_and_jump_seq): Likewise for return type, param "cinsn",
8292         and locals "seq", "jump".
8293         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
8294         "branch_code"; update invocations of compare_and_jump_seq to
8295         eliminate NULL_RTX in favor of NULL.
8296         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
8297         rtx to rtx_insn *.
8298         (reset_debug_uses_in_loop): Likewise.
8299         (analyze_insn_to_expand_var): Likewise for param "insn".
8300         (analyze_iv_to_split_insn): Likewise.
8301         (analyze_insns_in_loop): Likewise for local "insn".
8302         (insert_base_initialization): Likewise for param
8303         "insn" and local "seq".
8304         (split_iv): Likewise for param "insn" and local "seq".
8305         (expand_var_during_unrolling): Likewise for param "insn".
8306         (insert_var_expansion_initialization): Likewise for local "seq".
8307         (combine_var_copies_in_loop_exit): Likewise.
8308         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
8309         "insn".
8310         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
8311         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
8312         "next".
8313
8314 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8315
8316         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
8317         rtx_insn *.
8318         (iv_analyze_result): Likewise.
8319         (iv_analyze_expr): Likewise.
8320         (biv_p): Likewise.
8321
8322         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
8323         local "def_insn" from rtx to rtx_insn *.
8324         (get_biv_step_1): Likewise for local "insn".
8325         (iv_analyze_expr): Likewise for param "insn".
8326         (iv_analyze_def): Likewise for local "insn".
8327         (iv_analyze_op): Likewise for param "insn".
8328         (iv_analyze): Likewise.
8329         (iv_analyze_result): Likewise.
8330         (biv_p): Likewise.
8331         (suitable_set_for_replacement): Likewise.
8332         (simplify_using_initial_values): Likewise for local "insn".
8333         (iv_number_of_iterations): Likewise for param "insn".
8334         (check_simple_exit): Add checked cast to rtx_insn when invoking
8335         iv_number_of_iterations for now (until get_condition is
8336         strengthened).
8337
8338         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
8339         "insn" from rtx to rtx_insn *.
8340         (analyze_insns_in_loop): Likewise for local "insn".
8341
8342 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8343
8344         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
8345         to rtx_insn *.
8346         (struct invariant): Likewise.
8347         (hash_invariant_expr_1): Likewise for param "insn".
8348         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
8349         (find_exits): Likewise for local "insn".
8350         (create_new_invariant): Likewise for param "insn".
8351         (check_dependencies): Likewise.
8352         (find_invariant_insn): Likewise.
8353         (record_uses): Likewise.
8354         (find_invariants_insn): Likewise.
8355         (find_invariants_bb): Likewise for local "insn".
8356         (get_pressure_class_and_nregs): Likewise for param "insn".
8357         (calculate_loop_reg_pressure): Likewise for local "insn".
8358
8359 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8360
8361         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
8362         to rtx_insn *.
8363         (add_test): Likewise for locals "seq", "jump".
8364         (doloop_modify): Likewise for locals "sequence", "jump_insn".
8365
8366 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8367
8368         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
8369         rtx_insn *.
8370         (rebuild_jump_labels_chain): Likewise for param "chain".
8371
8372         * cfgexpand.c (pass_expand::execute): Add checked cast to
8373         rtx_insn * when calling rebuild_jump_labels_chain in region where
8374         we know e->insns.r is non-NULL.
8375
8376         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
8377         rtx_insn *.
8378         (rebuild_jump_labels): Likewise.
8379         (rebuild_jump_labels_chain): Likewise for param "chain".
8380         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
8381         (init_label_info): Likewise for param "f".
8382         (maybe_propagate_label_ref): Likewise for params "jump_insn",
8383         "prev_nonjump_insn".
8384         (mark_all_labels): Likewise for param "f" and locals "insn",
8385         "prev_nonjump_insn".
8386
8387 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8388
8389         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
8390         from rtx to rtx_insn *insn.
8391         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
8392         (ira_add_allocno_copy): Likewise.
8393         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
8394         rtx to rtx_insn *.
8395         (ira_create_copy): Likewise.
8396         (ira_add_allocno_copy): Likewise.
8397         (create_bb_allocnos): Likewise for local "insn".
8398         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
8399         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
8400         process_regs_for_copy for rtx_insn * param.
8401         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
8402         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
8403         process_regs_for_copy for rtx_insn * param.
8404         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
8405         * ira-costs.c (record_reg_classes): Likewise for param "insn".
8406         (record_operand_costs): Likewise.
8407         (scan_one_insn): Likewise for return type, and for param "insn".
8408         (process_bb_for_costs): Likewise for local "insn".
8409         (process_bb_node_for_hard_reg_moves): Likewise.
8410         * ira-emit.c (struct move): Likewise for field "insn".
8411         (create_move): Eliminate use of NULL_RTX when dealing with an
8412         rtx_insn *.
8413         (emit_move_list): Strengthen return type and locals "result",
8414         "insn" from rtx to rtx_insn *insn.
8415         (emit_moves): Likewise for locals "insns", "tmp".
8416         (ira_emit): Likewise for local "insn".
8417         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
8418         "insn".
8419         (find_call_crossed_cheap_reg): Likewise.
8420         (process_bb_node_lives): Likewise for local "insn".
8421         * ira.c (decrease_live_ranges_number): Likewise.
8422         (compute_regs_asm_clobbered): Likewise.
8423         (build_insn_chain): Likewise.
8424         (find_moveable_pseudos): Likewise, also locals "def_insn",
8425         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
8426         to rtx_insn **.  Add a checked cast when assigning from
8427         "closest_use" into closest_uses array in a region where we know
8428         it's a non-NULL insn.
8429         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
8430         to rtx_insn *.
8431         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
8432         "last_interesting_insn", "uin".
8433         (move_unallocated_pseudos): Likewise for locals "def_insn",
8434         "move_insn", "newinsn".
8435
8436 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8437
8438         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
8439         Strengthen locals "done_label", "do_error" from rtx to
8440         rtx_code_label *.
8441         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
8442         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
8443         rtx_code_label *.
8444         (ubsan_expand_si_overflow_neg_check): Likewise for locals
8445         "done_label", "do_error" to rtx_code_label * and local  "last" to
8446         rtx_insn *.
8447         (ubsan_expand_si_overflow_mul_check): Likewise for locals
8448         "done_label", "do_error", "large_op0", "small_op0_large_op1",
8449         "one_small_one_large", "both_ops_large", "after_hipart_neg",
8450         "after_lopart_neg", "do_overflow", "hipart_different"  to
8451         rtx_code_label * and local  "last" to rtx_insn *.
8452
8453 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8454
8455         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
8456         "insn" and "move_insn" from rtx to rtx_insn *.
8457
8458 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8459
8460         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
8461         rtx_insn *.
8462         (cheap_bb_rtx_cost_p): Likewise.
8463         (first_active_insn): Likewise for return type and local "insn".
8464         (last_active_insn):  Likewise for return type and locals "insn",
8465         "head".
8466         (struct noce_if_info): Likewise for fields "jump", "insn_a",
8467         "insn_b".
8468         (end_ifcvt_sequence): Likewise for return type and locals "insn",
8469         "seq".
8470         (noce_try_move): Likewise for local "seq".
8471         (noce_try_store_flag): Likewise.
8472         (noce_try_store_flag_constants): Likewise.
8473         (noce_try_addcc): Likewise.
8474         (noce_try_store_flag_mask): Likewise.
8475         (noce_try_cmove): Likewise.
8476         (noce_try_minmax): Likewise.
8477         (noce_try_abs): Likewise.
8478         (noce_try_sign_mask): Likewise.
8479         (noce_try_bitop): Likewise.
8480         (noce_can_store_speculate_p): Likewise for local "insn".
8481         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
8482         seq".
8483         (check_cond_move_block): Likewise for local "insn".
8484         (cond_move_convert_if_block): Likewise.
8485         (cond_move_process_if_block): Likewise for locals "seq",
8486         "loc_insn".
8487         (noce_find_if_block): Likewise for local "jump".
8488         (merge_if_block): Likewise for local "last".
8489         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
8490         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
8491         (block_has_only_trap): Likewise for return type and local "trap".
8492         (find_if_case_1): Likewise for local "jump".
8493         (dead_or_predicable): Likewise for locals "head", "end", "jump",
8494         "insn".
8495
8496 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8497
8498         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
8499         "last_insn", "loop_end" from rtx to rtx_insn *.
8500
8501         * hw-doloop.c (scan_loop): Likewise for local "insn".
8502         (discover_loop): Likewise for param "tail_insn".
8503         (discover_loops): Likewise for local "tail".
8504
8505         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
8506         cast to rtx_insn * when assigning from an rtx local to a
8507         hwloop_info's "last_insn" field.
8508
8509 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8510
8511         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
8512         (add_delay_dependencies): Strengthen local "pro" from rtx to
8513         rtx_insn *.
8514         (recompute_todo_spec): Likewise.
8515         (dep_cost_1): Likewise for locals "insn", "used".
8516         (schedule_insn): Likewise for local "dbg".
8517         (schedule_insn): Likewise for locals "pro", "next".
8518         (unschedule_insns_until): Likewise for local "con".
8519         (restore_pattern): Likewise for local "next".
8520         (estimate_insn_tick): Likewise for local "pro".
8521         (resolve_dependencies): Likewise for local "next".
8522         (fix_inter_tick): Likewise.
8523         (fix_tick_ready): Likewise for local "pro".
8524         (add_to_speculative_block): Likewise for locals "check", "twin",
8525         "pro".
8526         (sched_extend_bb): Likewise for locals "end", "insn".
8527         (init_before_recovery): Likewise for local "x".
8528         (sched_create_recovery_block): Likewise for local "barrier".
8529         (create_check_block_twin): Likewise for local "pro".
8530         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
8531         "consumer".
8532         (unlink_bb_notes): Update for change to type of bb_header.
8533         Strengthen locals "prev", "label", "note", "next" from rtx to
8534         rtx_insn *.
8535         (clear_priorities): Likewise for local "pro".
8536
8537 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8538
8539         * gcse.c (struct occr): Strengthen field "insn" from rtx to
8540         rtx_insn *.
8541         (test_insn): Likewise for this global.
8542         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
8543         const rtx_insn *.
8544         (oprs_anticipatable_p): Likewise.
8545         (oprs_available_p): Likewise.
8546         (insert_expr_in_table): Strengthen param "insn" from  rtx to
8547         rtx_insn *.
8548         (hash_scan_set): Likewise.
8549         (hash_scan_clobber): Likewise.
8550         (hash_scan_call): Likewise.
8551         (hash_scan_insn): Likewise.
8552         (compute_hash_table_work): Likewise for local "insn".
8553         (process_insert_insn): Likewise for return type and local "pat".
8554         (insert_insn_end_basic_block): Likewise for locals "new_insn",
8555         "pat", "pat_end", "maybe_cc0_setter".
8556         (pre_edge_insert): Likewise for local "insn".
8557         (pre_insert_copy_insn): Likewise for param "insn".
8558         (pre_insert_copies): Likewise for local "insn".
8559         (struct set_data): Likewise for field "insn".
8560         (single_set_gcse): Likewise for param "insn".
8561         (gcse_emit_move_after): Likewise.
8562         (pre_delete): Likewise for local "insn".
8563         (update_bb_reg_pressure): Likewise for param "from" and local
8564         "insn".
8565         (should_hoist_expr_to_dom): Likewise for param "from".
8566         (hoist_code): Likewise for local "insn".
8567         (get_pressure_class_and_nregs): Likewise for param "insn".
8568         (calculate_bb_reg_pressure): Likewise for local "insn".
8569         (compute_ld_motion_mems): Likewise.
8570
8571 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8572
8573         * genpeep.c (main): Rename param back from "uncast_ins1" to
8574         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
8575         checked cast.
8576
8577         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
8578
8579 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
8580
8581         PR target/62195
8582         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
8583         documentation to state it is only for VSX operations.
8584
8585         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
8586         constraint only active if VSX.
8587
8588         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
8589         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
8590         (lfiwzx): Likewise.
8591
8592 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8593
8594         * fwprop.c (single_def_use_dom_walker::before_dom_children):
8595         Strengthen local "insn" from rtx to rtx_insn *.
8596         (use_killed_between): Likewise for param "target_insn".
8597         (all_uses_available_at): Likewise for param "target_insn" and
8598         local "next".
8599         (update_df_init): Likewise for params "def_insn", "insn".
8600         (update_df): Likewise for param "insn".
8601         (try_fwprop_subst): Likewise for param "def_insn" and local
8602         "insn".
8603         (free_load_extend): Likewise for param "insn".
8604         (forward_propagate_subreg): Likewise for param "def_insn" and
8605         local "use_insn".
8606         (forward_propagate_asm): Likewise for param "def_insn" and local
8607         "use_insn".
8608         (forward_propagate_and_simplify): Likewise for param "def_insn"
8609         and local "use_insn".
8610         (forward_propagate_into): Likewise for locals "def_insn" and
8611         "use_insn".
8612
8613 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8614
8615         * function.c (emit_initial_value_sets): Strengthen local "seq"
8616         from rtx to rtx_insn *.
8617         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
8618         local "seq".
8619         (instantiate_virtual_regs): Likewise for local "insn".
8620         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
8621         (reorder_blocks_1): Likewise for param "insns" and local "insn".
8622         (expand_function_end): Likewise for locals "insn" and "seq".
8623         (epilogue_done): Likewise for local "insn".
8624         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
8625         "last", "trial".
8626         (reposition_prologue_and_epilogue_notes): Likewise for locals
8627         "insn", "last", "note", "first".
8628         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
8629         (pass_match_asm_constraints::execute): Likewise for local "insn".
8630
8631 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8632
8633         * output.h (final_scan_insn): Strengthen return type from rtx to
8634         rtx_insn *.
8635         (final_forward_branch_p): Likewise for param.
8636         (current_output_insn): Likewise for this global.
8637
8638         * final.c (rtx debug_insn): Likewise for this variable.
8639         (current_output_insn): Likewise.
8640         (get_attr_length_1): Rename param "insn" to "uncast_insn",
8641         adding "insn" back in as an rtx_insn * with a checked cast, so
8642         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
8643         first param.
8644         (compute_alignments): Strengthen local "label" from rtx to
8645         rtx_insn *.
8646         (shorten_branches): Rename param from "first" to "uncast_first",
8647         introducing a new local rtx_insn * "first" using a checked cast to
8648         effectively strengthen "first" from rtx to rtx_insn * without
8649         affecting the type signature.  Strengthen locals "insn", "seq",
8650         "next", "label" from rtx to rtx_insn *.
8651         (change_scope): Strengthen param "orig_insn" and local "insn" from
8652         rtx to rtx_insn *.
8653         (final_start_function): Rename param from "first" to "uncast_first",
8654         introducing a new local rtx_insn * "first" using a checked cast to
8655         effectively strengthen "first" from rtx to rtx_insn * without
8656         affecting the type signature.  Strengthen local "insn" from rtx to
8657         rtx_insn *.
8658         (dump_basic_block_info): Strengthen param "insn" from rtx to
8659         rtx_insn *.
8660         (final): Rename param from "first" to "uncast_first",
8661         introducing a new local rtx_insn * "first" using a checked cast to
8662         effectively strengthen "first" from rtx to rtx_insn * without
8663         affecting the type signature.  Strengthen locals "insn", "next"
8664         from rtx to rtx_insn *.
8665         (output_alternate_entry_point): Strengthen param "insn" from rtx to
8666         rtx_insn *.
8667         (call_from_call_insn): Strengthen param "insn" from rtx to
8668         rtx_call_insn *.
8669         (final_scan_insn): Rename param from "insn" to "uncast_insn",
8670         introducing a new local rtx_insn * "insn" using a checked cast to
8671         effectively strengthen "insn" from rtx to rtx_insn * without
8672         affecting the type signature.  Strengthen return type and locals
8673         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
8674         now-redundant checked cast to rtx_insn * from both invocations of
8675         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
8676         introducing a local "call_insn" for use when invoking
8677         call_from_call_insn.
8678         (notice_source_line): Strengthen param "insn" from rtx to
8679         rtx_insn *.
8680         (leaf_function_p): Likewise for local "insn".
8681         (final_forward_branch_p): Likewise.
8682         (leaf_renumber_regs): Likewise for param "first".
8683         (rest_of_clean_state): Likewise for locals "insn" and "next".
8684         (self_recursive_call_p): Likewise for param "insn".
8685         (collect_fn_hard_reg_usage): Likewise for local "insn".
8686         (get_call_fndecl): Likewise for param "insn".
8687         (get_call_cgraph_rtl_info): Likewise.
8688         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
8689         introducing a new local rtx_insn * "insn" using a checked cast to
8690         effectively strengthen "insn" from rtx to rtx_insn * without
8691         affecting the type signature.
8692
8693         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
8694         cast when assigning from param "insn" to current_output_insn.
8695         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
8696         so that we can assign it back to current_output_insn.
8697
8698 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
8699
8700         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
8701         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
8702         atmxt540s and atmxt540sreva devices.
8703         * config/avr/avr-tables.opt: Regenerate.
8704         * config/avr/t-multilib: Regenerate.
8705         * doc/avr-mmcu.texi: Regenerate.
8706
8707 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8708
8709         * expr.c (convert_move): Strengthen local "insns" from rtx to
8710         rtx_insn *.
8711         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
8712         "top_label" from rtx to rtx_code_label *.
8713         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
8714         rtx_insn *.
8715         (emit_single_push_insn): Likewise for locals "prev", "last".
8716         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
8717         to rtx_code_label *.
8718         (store_constructor): Likewise for locals "loop_start", "loop_end".
8719         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
8720         rtx_insn *.
8721         (expand_expr_real_2): Likewise.
8722         (expand_expr_real_1): Strengthen local "label" from rtx to
8723         rtx_code_label *.
8724
8725 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8726
8727         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
8728         from rtx to rtx_insn *.
8729         (store_bit_field_1): Likewise.
8730         (extract_bit_field_1): Likewise.
8731         (expand_mult_const): Likewise for local "insns".
8732         (expmed_mult_highpart): Strengthen local "label" from rtx to
8733         rtx_code_label *.
8734         (expand_smod_pow2): Likewise.
8735         (expand_sdiv_pow2): Likewise.
8736         (expand_divmod): Strengthen locals "last", "insn" from rtx to
8737         rtx_insn *.  Strengthen locals "label", "label1", "label2",
8738         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
8739         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
8740         (emit_store_flag): Likewise.
8741         (emit_store_flag_force): Strengthen local "label" from rtx to
8742         rtx_code_label *.
8743         (do_cmp_and_jump): Likewise for param "label".
8744
8745 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8746
8747         * explow.c (force_reg): Strengthen local "insn" from rtx to
8748         rtx_insn *.
8749         (adjust_stack_1): Likewise.
8750         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
8751         "final_label", "available_label", "space_available" from rtx to
8752         rtx_code_label *.
8753         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
8754         (anti_adjust_stack_and_probe): Likewise.
8755
8756 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8757
8758         * except.h (sjlj_emit_function_exit_after): Strengthen param
8759         "after" from rtx to rtx_insn *.  This is only called with
8760         result of get_last_insn (in function.c) so type-change should be
8761         self-contained.
8762
8763         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
8764         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
8765         to rtx_insn *.  These fields are only used from except.c so this
8766         type-change should be self-contained to this patch.
8767
8768         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
8769         local "last" from rtx to rtx_insn *.
8770         (dw2_build_landing_pads): Likewise for local "seq".
8771         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
8772         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
8773         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
8774         rtx to rtx_insn *.
8775         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
8776         to rtx_insn *.
8777         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
8778         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
8779         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
8780         referring to an insn.  Strengthen local "dispatch_label" from
8781         rtx to rtx_code_label *.
8782         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
8783         rtx_insn *.
8784         (expand_eh_return): Strengthen local "around_label" from
8785         rtx to rtx_code_label *.
8786         (convert_to_eh_region_ranges): Strengthen locals "iter",
8787         "last_action_insn", "first_no_action_insn",
8788         "first_no_action_insn_before_switch",
8789         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
8790
8791 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8792
8793         * dwarf2out.c (last_var_location_insn): Strengthen this variable
8794         from rtx to rtx_insn *.
8795         (cached_next_real_insn): Likewise.
8796         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
8797         working with insns.
8798         (dwarf2out_var_location): Strengthen locals "next_real",
8799         "next_note", "expected_next_loc_note", "last_start", "insn" from
8800         rtx to rtx_insn *.
8801
8802 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8803
8804         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
8805         from rtx to rtx_insn *.
8806         (create_pseudo_cfg): Likewise for local "insn".
8807
8808 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8809
8810         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
8811         from rtx to rtx_insn *.
8812         (df_bb_regno_last_def_find): Likewise.
8813
8814         * df-problems.c (df_rd_bb_local_compute): Likewise.
8815         (df_lr_bb_local_compute): Likewise.
8816         (df_live_bb_local_compute): Likewise.
8817         (df_chain_remove_problem): Likewise.
8818         (df_chain_create_bb): Likewise.
8819         (df_word_lr_bb_local_compute): Likewise.
8820         (df_remove_dead_eq_notes): Likewise for param "insn".
8821         (df_note_bb_compute): Likewise for local "insn".
8822         (simulate_backwards_to_point): Likewise.
8823         (df_md_bb_local_compute): Likewise.
8824
8825         * df-scan.c (df_scan_free_bb_info): Likewise.
8826         (df_scan_start_dump): Likewise.
8827         (df_scan_start_block): Likewise.
8828         (df_install_ref_incremental): Likewise for local "insn".
8829         (df_insn_rescan_all): Likewise.
8830         (df_reorganize_refs_by_reg_by_insn): Likewise.
8831         (df_reorganize_refs_by_insn_bb): Likewise.
8832         (df_recompute_luids): Likewise.
8833         (df_bb_refs_record): Likewise.
8834         (df_update_entry_exit_and_calls): Likewise.
8835         (df_bb_verify): Likewise.
8836
8837 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8838
8839         * ddg.h (struct ddg_node): Strengthen fields "insn" and
8840         "first_note" from rtx to rtx_insn *.
8841         (get_node_of_insn): Likewise for param 2 "insn".
8842         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
8843
8844         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
8845         rtx_insn *.
8846         (mem_write_insn_p): Likewise.
8847         (mem_access_insn_p): Likewise.
8848         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
8849         (def_has_ccmode_p): Likewise for param "insn".
8850         (add_cross_iteration_register_deps): Likewise for locals
8851         "def_insn" and "use_insn".
8852         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
8853         (build_intra_loop_deps): Likewise for local "src_insn".
8854         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
8855         to rtx_insn *.
8856         (get_node_of_insn): Likewise for param "insn".
8857
8858 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8859
8860         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
8861         (deletable_insn_p): Strengthen param "insn" from rtx to
8862         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
8863         find_call_stack_args, since this is guarded by CALL_P (insn).
8864         (marked_insn_p): Strengthen param "insn" from rtx to
8865         rtx_insn *.
8866         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
8867         invoking find_call_stack_args, since this is guarded by
8868         CALL_P (insn).
8869         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
8870         rtx_insn *; we know this is an insn since this was called by
8871         mark_nonreg_stores.
8872         (mark_nonreg_stores_2): Likewise.
8873         (mark_nonreg_stores): Strengthen param "insn" from rtx to
8874         rtx_insn *.
8875         (find_call_stack_args): Strengthen param "call_insn" from rtx to
8876         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
8877         to rtx_insn *.
8878         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
8879         from rtx to rtx_insn *.
8880         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
8881         "next", "ref_insn".
8882         (delete_unmarked_insns): Likewise for locals "insn", "next".
8883         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
8884         (mark_reg_dependencies): Likewise for param "insn".
8885         (rest_of_handle_ud_dce): Likewise for local "insn".
8886         (word_dce_process_block): Likewise.
8887         (dce_process_block): Likewise.
8888
8889 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8890
8891         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
8892         from rtx to rtx_insn *.
8893         (struct change_cc_mode_args): Likewise for field "insn".
8894         (this_insn): Strengthen from rtx to rtx_insn *.
8895         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
8896         with insn.
8897         (validate_canon_reg): Strengthen param "insn" from rtx to
8898         rtx_insn *.
8899         (canon_reg): Likewise.
8900         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
8901         dealing with insn.
8902         (record_jump_equiv): Strengthen param "insn" from rtx to
8903         rtx_insn *.
8904         (try_back_substitute_reg): Likewise, also for locals "prev",
8905         "bb_head".
8906         (find_sets_in_insn): Likewise for param "insn".
8907         (canonicalize_insn): Likewise.
8908         (cse_insn): Likewise.  Add a checked cast.
8909         (invalidate_from_clobbers): Likewise for param "insn".
8910         (invalidate_from_sets_and_clobbers): Likewise.
8911         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
8912         dealing with insn.
8913         (cse_prescan_path): Strengthen local "insn" from rtx to
8914         rtx_insn *.
8915         (cse_extended_basic_block): Likewise for locals "insn" and
8916         "prev_insn".
8917         (cse_main): Likewise for param "f".
8918         (check_for_label_ref): Likewise for local "insn".
8919         (set_live_p): Likewise for second param ("insn").
8920         (insn_live_p): Likewise for first param ("insn") and for local
8921         "next".
8922         (cse_change_cc_mode_insn): Likewise for first param "insn".
8923         (cse_change_cc_mode_insns): Likewise for first and second params
8924         "start" and "end".
8925         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
8926         and "end".
8927         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
8928         "cc_src_insn".
8929
8930 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8931             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8932             Anna Tikhonova  <anna.tikhonova@intel.com>
8933             Ilya Tocar  <ilya.tocar@intel.com>
8934             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8935             Ilya Verbin  <ilya.verbin@intel.com>
8936             Kirill Yukhin  <kirill.yukhin@intel.com>
8937             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8938
8939         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
8940         New.
8941         * config/i386/sse.md
8942         (define_mode_iterator VI248_AVX2): Delete.
8943         (define_mode_iterator VI2_AVX2_AVX512BW): New.
8944         (define_mode_iterator VI48_AVX2): Ditto.
8945         (define_insn <shift_insn><mode>3): Delete.
8946         (define_insn "<shift_insn><mode>3<mask_name>" with
8947         VI2_AVX2_AVX512BW): New.
8948         (define_insn "<shift_insn><mode>3<mask_name>" with
8949         VI48_AVX2): Ditto.
8950
8951 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8952             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8953             Anna Tikhonova  <anna.tikhonova@intel.com>
8954             Ilya Tocar  <ilya.tocar@intel.com>
8955             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8956             Ilya Verbin  <ilya.verbin@intel.com>
8957             Kirill Yukhin  <kirill.yukhin@intel.com>
8958             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8959
8960         * config/i386/sse.md
8961         (define_mode_iterator VI4F_BRCST32x2): New.
8962         (define_mode_attr 64x2_mode): Ditto.
8963         (define_mode_attr 32x2mode): Ditto.
8964         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
8965         with VI4F_BRCST32x2): Ditto.
8966         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
8967         with V16FI mode iterator): Ditto.
8968         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
8969         with V16FI): Ditto.
8970         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
8971         with VI8F_BRCST64x2): Ditto.
8972
8973 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8974             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8975             Anna Tikhonova  <anna.tikhonova@intel.com>
8976             Ilya Tocar  <ilya.tocar@intel.com>
8977             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8978             Ilya Verbin  <ilya.verbin@intel.com>
8979             Kirill Yukhin  <kirill.yukhin@intel.com>
8980             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8981
8982         * config/i386/sse.md
8983         (define_mode_iterator VI8_AVX512VL): New.
8984         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
8985
8986 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
8987
8988         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
8989         (define_mode_iterator V48_AVX512VL): New.
8990         (define_mode_iterator V12_AVX512VL): Ditto.
8991         (define_insn <avx512>_load<mode>_mask): Split into two similar
8992         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
8993         Refactor output template.
8994         (define_insn "<avx512>_store<mode>_mask"): Ditto.
8995
8996 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8997
8998         * cprop.c (struct occr): Strengthen field "insn" from rtx to
8999         rtx_insn *.
9000         (reg_available_p): Likewise for param "insn".
9001         (insert_set_in_table): Likewise.
9002         (hash_scan_set): Likewise.
9003         (hash_scan_insn): Likewise.
9004         (make_set_regs_unavailable): Likewise.
9005         (compute_hash_table_work): Likewise for local "insn".
9006         (reg_not_set_p): Strengthen param "insn" from const_rtx to
9007         const rtx_insn *.
9008         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
9009         (try_replace_reg): Likewise.
9010         (find_avail_set): Likewise.
9011         (cprop_jump): Likewise for params "setcc", "jump".
9012         (constprop_register): Likewise for param "insn".
9013         (cprop_insn): Likewise.
9014         (do_local_cprop): Likewise.
9015         (local_cprop_pass): Likewise for local "insn".
9016         (bypass_block): Likewise for params "setcc" and "jump".
9017         (bypass_conditional_jumps): Likewise for locals "setcc" and
9018         "insn".
9019         (one_cprop_pass): Likewise for local "insn".
9020
9021 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9022
9023         * compare-elim.c (struct comparison_use): Strengthen field "insn"
9024         from rtx to rtx_insn *.
9025         (struct comparison): Likewise, also for field "prev_clobber".
9026         (conforming_compare): Likewise for param "insn".
9027         (arithmetic_flags_clobber_p): Likewise.
9028         (find_flags_uses_in_insn): Likewise.
9029         (find_comparison_dom_walker::before_dom_children): Likewise for
9030         locals "insn", "next", "last_clobber".
9031         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
9032
9033 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9034
9035         * combine-stack-adj.c (struct csa_reflist): Strengthen field
9036         "insn" from rtx to rtx_insn *.
9037         (single_set_for_csa): Likewise for param "insn".
9038         (record_one_stack_ref): Likewise.
9039         (try_apply_stack_adjustment): Likewise.
9040         (struct record_stack_refs_data): Likewise for field "insn".
9041         (maybe_move_args_size_note): Likewise for params "last" and "insn".
9042         (prev_active_insn_bb): Likewise for return type and param "insn".
9043         (next_active_insn_bb): Likewise.
9044         (force_move_args_size_note): Likewise for params "prev" and "last"
9045         and locals "test", "next_candidate", "prev_candidate".
9046         (combine_stack_adjustments_for_block): Strengthen locals
9047         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
9048         rtx_insn *.
9049
9050 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9051
9052         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
9053         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
9054         (subst_insn): Likewise for this variable.
9055         (added_links_insn): Likewise.
9056         (struct insn_link): Likewise for field "insn".
9057         (alloc_insn_link): Likewise for param "insn".
9058         (struct undobuf): Likewise for field "other_insn".
9059         (find_single_use): Likewise for param "insn" and local "next".
9060         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
9061         (delete_noop_moves): Likewise for locals "insn", "next".
9062         (create_log_links): Likewise for locals "insn", "use_insn".
9063         Strengthen local "next_use" from rtx * to rtx_insn **.
9064         (insn_a_feeds_b): Likewise for params "a", "b".
9065         (combine_instructions): Likewise for param "f" and locals "insn",
9066         "next", "prev", "first", "last_combined_insn", "link", "link1",
9067         "temp".  Replace use of NULL_RTX with NULL when referring to
9068         insns.
9069         (setup_incoming_promotions): Likewise for param "first"
9070         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
9071         (can_combine_p): Likewise for params "insn", "i3", "pred",
9072         "pred2", "succ", "succ2" and for local "p".
9073         (combinable_i3pat): Likewise for param "i3".
9074         (cant_combine_insn_p): Likewise for param "insn".
9075         (likely_spilled_retval_p): Likewise.
9076         (adjust_for_new_dest): Likewise.
9077         (update_cfg_for_uncondjump): Likewise, also for local "insn".
9078         (try_combine): Likewise for return type and for params "i3", "i2",
9079         "i1", "i0", "last_combined_insn", and for locals "insn",
9080         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
9081         "i0_insn".  Eliminate local "tem" in favor of new locals
9082         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
9083         checked cast for now to rtx_insn * on the return type of
9084         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
9085         insns.
9086         (find_split_point): Strengthen param "insn" from rtx to
9087         rtx_insn *.
9088         (simplify_set): Likewise for local "other_insn".
9089         (recog_for_combine): Likewise for param "insn".
9090         (record_value_for_reg): Likewise.
9091         (record_dead_and_set_regs_1): Likewise for local
9092         "record_dead_insn".
9093         (record_dead_and_set_regs): Likewise for param "insn".
9094         (record_promoted_value): Likewise.
9095         (check_promoted_subreg): Likewise.
9096         (get_last_value_validate): Likewise.
9097         (reg_dead_at_p): Likewise.
9098         (move_deaths): Likewise for param "to_insn".
9099         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
9100         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
9101         in favor of new locals "tem_note" and "tem_insn", the latter being
9102         an rtx_insn *.
9103         (distribute_links): Strengthen locals "place", "insn" from rtx to
9104         rtx_insn *.
9105
9106 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9107
9108         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
9109         than a const_rtx.
9110         (can_delete_label_p): Require a const rtx_code_label * rather than
9111         a const_rtx.
9112         (delete_insn): Add checked cast to rtx_code_label * when we know
9113         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
9114         rtx to rtx_insn *.
9115         (delete_insn_chain): Strengthen locals "prev" and "current" from
9116         rtx to rtx_insn *.  Add a checked cast when assigning from
9117         "finish" (strengthening the params will come later).  Add a
9118         checked cast to rtx_note * in region where we know
9119         NOTE_P (current).
9120         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
9121         rtx_insn *.
9122         (compute_bb_for_insn): Likewise.
9123         (free_bb_for_insn): Likewise for local "insn".
9124         (compute_bb_for_insn): Likewise.
9125         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
9126         local "insn" from rtx to rtx_insn *
9127         (flow_active_insn_p): Require a const rtx_insn * rather than a
9128         const_rtx.
9129         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
9130         rtx_insn *.
9131         (can_fallthru): Likewise for locals "insn" and "insn2".
9132         (bb_note): Likewise for local "note".
9133         (first_insn_after_basic_block_note): Likewise for local "note" and
9134         for return type.
9135         (rtl_split_block): Likewise for locals "insn" and "next".
9136         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
9137         "end".
9138         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
9139         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
9140         "prev", "tmp".
9141         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
9142         them), "kill_from", "barrier", "new_insn".
9143         (patch_jump_insn): Likewise for params "insn", "old_label".
9144         (redirect_branch_edge): Likewise for locals "old_label", "insn".
9145         (force_nonfallthru_and_redirect): Likewise for locals "insn",
9146         "old_label", "new_label".
9147         (rtl_tidy_fallthru_edge): Likewise for local "q".
9148         (rtl_split_edge): Likewise for locals "before", "last".
9149         (commit_one_edge_insertion): Likewise for locals "before",
9150         "after", "insns", "tmp", "last", adding a checked cast where
9151         currently necessary.
9152         (commit_edge_insertions): Likewise.
9153         (rtl_dump_bb): Likewise for locals "insn", "last".
9154         (print_rtl_with_bb): Likewise for local "x".
9155         (rtl_verify_bb_insns): Likewise for local "x".
9156         (rtl_verify_bb_pointers): Likewise for local "insn".
9157         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
9158         "head", "end".
9159         (rtl_verify_fallthru): Likewise for local "insn".
9160         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
9161         (purge_dead_edges): Likewise for local "insn".
9162         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
9163         (skip_insns_after_block): Likewise for return type and for locals
9164         "insn", "last_insn", "next_head", "prev".
9165         (record_effective_endpoints): Likewise for locals "next_insn",
9166         "insn", "end".
9167         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
9168         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
9169         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
9170         (duplicate_insn_chain): For now, add checked cast from rtx to
9171         rtx_insn * when returning insn.
9172         (cfg_layout_duplicate_bb): Likewise for local "insn".
9173         (cfg_layout_delete_block): Likewise for locals "insn", "next",
9174         "prev", "remaints".
9175         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
9176         (rtl_block_empty_p): Likewise.
9177         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
9178         "split_point", "last".
9179         (rtl_block_ends_with_call_p): Likewise for local "insn".
9180         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
9181         const rtx_insn *.
9182         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
9183         "split_at_insn" from rtx to rtx_insn *.
9184         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
9185         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
9186         to const rtx_insn *.
9187         (rtl_account_profile_record): Likewise.
9188
9189 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9190
9191         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
9192         rtx to rtx_insn *.
9193         (average_num_loop_insns): Likewise.
9194         (init_set_costs): Likewise for local "seq".
9195         (seq_cost): Likewise for param "seq", from const_rtx to const
9196         rtx_insn *.
9197
9198 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9199
9200         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
9201         rtx to rtx_insn *.
9202
9203 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9204
9205         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
9206         "f1" and "f2" from rtx * to rtx_insn **.
9207         (flow_find_head_matching_sequence): Likewise.
9208
9209         * cfgcleanup.c (try_simplify_condjump): Strengthen local
9210         "cbranch_insn" from rtx to rtx_insn *.
9211         (thread_jump): Likewise for local "insn".
9212         (try_forward_edges): Likewise for local "last".
9213         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
9214         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
9215         "real_b_end".
9216         (can_replace_by): Likewise for params "i1", "i2".
9217         (old_insns_match_p): Likewise.
9218         (merge_notes): Likewise.
9219         (walk_to_nondebug_insn): Likewise for param "i1".
9220         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
9221         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
9222         "afterlast1", "afterlast2" from rtx to rtx_insn *.
9223         (flow_find_head_matching_sequence): Strengthen params "f1" and
9224         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
9225         "last1", "last2", "beforelast1", "beforelast2" from rtx to
9226         rtx_insn *.
9227         (outgoing_edges_match): Likewise for locals "last1", "last2".
9228         (try_crossjump_to_edge): Likewise for local "insn".
9229         Replace call to for_each_rtx with for_each_rtx_in_insn.
9230
9231         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
9232         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
9233         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
9234         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
9235         (try_optimize_cfg): Strengthen local "last" from rtx to
9236         rtx_insn *.
9237         (delete_dead_jumptables): Likewise for locals "insn", "next",
9238         "label".
9239
9240         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
9241         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
9242         "rtx else_first_tail", to reflect the basic-block.h changes above.
9243
9244 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9245
9246         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
9247         rtx_insn *.
9248         (purge_dead_tablejump_edges): Likewise.
9249         (find_bb_boundaries): Likewise for locals "insn", "end",
9250         "flow_transfer_insn".
9251
9252 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9253
9254         * caller-save.c (save_call_clobbered_regs): Strengthen locals
9255         "ins" and "prev" from rtx to rtx_insn *.
9256
9257 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9258
9259         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
9260         rtx_insn *.
9261         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
9262         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
9263         "scan_start".
9264         (load_register_parameters): Likewise for local "before_arg".
9265         (check_sibcall_argument_overlap): Likewise for param "insn".
9266         (expand_call): Likewise for locals "normal_call_insns",
9267         "tail_call_insns", "insns", "before_call", "after_args",
9268         "before_arg", "last", "prev".  Strengthen one of the "last" from
9269         rtx to rtx_call_insn *.
9270         (fixup_tail_calls): Strengthen local "insn" from rtx to
9271         rtx_insn *.
9272         (emit_library_call_value_1): Likewise for locals "before_call" and
9273         "last".
9274
9275 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9276
9277         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
9278         and "last" from rtx to rtx_insn *.
9279         (expand_builtin_nonlocal_goto): Likewise for local "insn".
9280         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
9281         rtx_call_insn *.
9282         (expand_errno_check): Strengthen local "lab" from rtx to
9283         rtx_code_label *.
9284         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
9285         rtx_insn *.
9286         (expand_builtin_mathfn_2): Likewise.
9287         (expand_builtin_mathfn_ternary): Likewise.
9288         (expand_builtin_mathfn_3): Likewise.
9289         (expand_builtin_interclass_mathfn): Likewise for local "last".
9290         (expand_builtin_int_roundingfn): Likewise for local "insns".
9291         (expand_builtin_int_roundingfn_2): Likewise.
9292         (expand_builtin_strlen): Likewise for local "before_strlen".
9293         (expand_builtin_strncmp): Likewise for local "seq".
9294         (expand_builtin_signbit): Likewise for local "last".
9295         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
9296         from rtx to rtx_code_label *.
9297         (expand_stack_restore):  Strengthen local "prev" from rtx to
9298         rtx_insn *.
9299
9300 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9301
9302         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
9303         to rtx_insn *.
9304         (struct btr_def_s): Likewise.
9305         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
9306         const rtx_insn *.
9307         (add_btr_def): Likewise.
9308         (new_btr_user): Likewise.
9309         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
9310         rtx to rtx_insn *.
9311         (link_btr_uses): Likewise.
9312         (move_btr_def): Likewise for locals "insp", "old_insn",
9313         "new_insn".  Add checked cast to rtx_insn * for now on result of
9314         gen_move_insn.
9315         (can_move_up): Strengthen param "insn" from const_rtx to
9316         const rtx_insn *.
9317
9318 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9319
9320         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
9321         rtx_insn *.
9322         (get_uncond_jump_length): Likewise for locals "label", "jump".
9323         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
9324         "jump", "insn".
9325         (add_labels_and_missing_jumps): Likewise for local "new_jump".
9326         (fix_up_fall_thru_edges): Likewise for local "old_jump".
9327         (find_jump_block): Likewise for local "insn".
9328         (fix_crossing_conditional_branches): Likewise for locals
9329         "old_jump", "new_jump".
9330         (fix_crossing_unconditional_branches): Likewise for locals
9331         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
9332         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
9333
9334 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9335
9336         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
9337         rtx to rtx_insn *.
9338         (struct mem_insn): Likewise for field "insn".
9339         (reg_next_use): Strengthen from rtx * to rtx_insn **.
9340         (reg_next_inc_use): Likewise.
9341         (reg_next_def): Likewise.
9342         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
9343         from rtx to rtx_insn *.
9344         (move_insn_before): Likewise for param "next_insn" and local "insns".
9345         (attempt_change): Likewise for local "mov_insn".
9346         (try_merge): Likewise for param "last_insn".
9347         (get_next_ref): Likewise for return type and local "insn".
9348         Strengthen param "next_array" from rtx * to rtx_insn **.
9349         (parse_add_or_inc): Strengthen param "insn" from rtx to
9350         rtx_insn *.
9351         (find_inc): Likewise for locals "insn" and "other_insn" (three of
9352         the latter).
9353         (merge_in_block): Likewise for locals "insn", "curr",
9354         "other_insn".
9355         (pass_inc_dec::execute): Update allocations of the arrays to
9356         reflect the stronger types.
9357
9358 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9359
9360         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
9361         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
9362         from rtx to rtx_code_label *.
9363
9364 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9365
9366         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
9367         to rtx_insn *.
9368
9369 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9370
9371         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
9372         generated a warning and prevented bootstrapping the compiler.
9373
9374 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9375
9376         * rtl.h (delete_related_insns): Strengthen return type from rtx to
9377         rtx_insn *.
9378
9379         * jump.c (delete_related_insns): Likewise, also for locals "next"
9380         and "prev".
9381
9382 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9383
9384         * genautomata.c (output_internal_insn_latency_func): When writing
9385         the function "internal_insn_latency" to insn-automata.c,
9386         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
9387         allowing the optional guard function of (define_bypass) clauses to
9388         expect a pair of rtx_insn *, rather than a pair of rtx.
9389         (output_insn_latency_func): When writing the function
9390         "insn_latency", add an "uncast_" prefix to params "insn" and
9391         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
9392         using checked casts from the params, thus enabling the above
9393         change to the generated "internal_insn_latency" function.
9394
9395 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
9396
9397         PR tree-optimization/62091
9398         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
9399         handle correctly arrays.
9400         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
9401         inheritance binfos.
9402         (record_known_type): Walk into inner type.
9403         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
9404         condition on no type changes.
9405
9406 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9407
9408         * genattrtab.c (write_attr_get): Within the generated get_attr_
9409         functions, rename param "insn" to "uncast_insn" and reintroduce
9410         "insn" as an local rtx_insn * using a checked cast, so that "insn"
9411         is an rtx_insn * within insn-attrtab.c
9412
9413 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9414
9415         * output.h (peephole): Strengthen return type from rtx to
9416         rtx_insn *.
9417         * rtl.h (delete_for_peephole): Likewise for both params.
9418         * genpeep.c (main): In generated "peephole" function, strengthen
9419         return type and local "insn" from rtx to rtx_insn *.  For now,
9420         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
9421         rtx_insn *, with a checked cast.
9422         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
9423         locals "insn", "next", "prev" from rtx to rtx_insn *.
9424
9425 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
9426
9427         PR tree-optimization/62112
9428         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
9429         * gimple-iterator.h (gsi_replace): Return bool.
9430         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
9431         moved from ref_may_alias_global_p.
9432         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
9433         New overloads.
9434         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
9435         (stmt_kills_ref_p_1): Rename...
9436         (stmt_kills_ref_p): ... to this.
9437         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
9438         stmt_kills_ref_p): Declare.
9439         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
9440         Move the self-assignment case...
9441         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
9442
9443 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9444
9445         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
9446
9447         * emit-rtl.c (try_split): Likewise, also for locals "before" and
9448         "after".  For now, don't strengthen param "trial", which requires
9449         adding checked casts when returning it.
9450
9451 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9452
9453         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
9454         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
9455         "var_location" hook from rtx to rtx_insn *.
9456         (debug_nothing_rtx): Delete in favor of...
9457         (debug_nothing_rtx_code_label): New prototype.
9458         (debug_nothing_rtx_rtx): Delete unused prototype.
9459         (debug_nothing_rtx_insn): New prototype.
9460
9461         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
9462         invoking debug_hooks->var_location (in two places, one in a NOTE
9463         case of a switch statement, the other guarded by a CALL_P
9464         conditional.  Add checked cast to rtx_code_label * when invoking
9465         debug_hooks->label (within CODE_LABEL case of switch statement).
9466
9467         * dbxout.c (dbx_debug_hooks): Update "label" hook from
9468         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
9469         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
9470         (xcoff_debug_hooks): Likewise.
9471         * debug.c (do_nothing_debug_hooks): Likewise.
9472         (debug_nothing_rtx): Delete in favor of...
9473         (debug_nothing_rtx_insn): New function.
9474         (debug_nothing_rtx_rtx): Delete unused function.
9475         (debug_nothing_rtx_code_label): New function.
9476         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
9477         debug_nothing_rtx to debug_nothing_rtx_code_label.
9478         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
9479         to rtx_insn *.
9480         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
9481         debug_nothing_rtx to debug_nothing_rtx_insn.
9482         (sdbout_label): Strengthen param "insn" from rtx to
9483         rtx_code_label *.
9484         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
9485         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
9486         "var_location" hook from debug_nothing_rtx to
9487         debug_nothing_rtx_insn.
9488
9489 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9490
9491         * recog.h (insn_output_fn): Update this function typedef to match
9492         the changes below to the generated output functions, strengthening
9493         the 2nd param from rtx to rtx_insn *.
9494
9495         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
9496         insn when invoking an output function, to match the new signature
9497         of insn_output_fn with a stronger second param.
9498
9499         * genconditions.c (write_header): In the generated code for
9500         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
9501         to match the other changes in this patch.
9502
9503         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
9504         the generated "gen_" functions from rtx to rtx_insn * within their
9505         implementations.
9506
9507         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
9508         the subfunctions within the generated "recog_", "split", "peephole2"
9509         function trees from rtx to rtx_insn *.  For now, the top-level
9510         generated functions ("recog", "split", "peephole2") continue to
9511         take a plain rtx for "insn", to avoid introducing dependencies on
9512         other patches.  Rename this 2nd param from "insn" to
9513         "uncast_insn", and reintroduce "insn" as a local variable of type
9514         rtx_insn *, initialized at the top of the generated function with
9515         a checked cast on "uncast_insn".
9516         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
9517         the generated "gen_" functions from rtx to rtx_insn * within their
9518         prototypes.
9519
9520         * genoutput.c (process_template): Strengthen the 2nd param within
9521         the generated "output_" functions "insn" from rtx to rtx_insn *.
9522
9523 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
9524
9525         * tree-profile.c (tree_profiling): Skip external functions
9526         when doing coverage instrumentation.
9527         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
9528
9529 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9530
9531         * config/rs6000/altivec.h (vec_cpsgn): New #define.
9532         (vec_mergee): Likewise.
9533         (vec_mergeo): Likewise.
9534         (vec_cntlz): Likewise.
9535         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
9536         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
9537         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
9538         VMRGEW, and VMRGOW.
9539         * doc/extend.texi: Document various forms of vec_cpsgn,
9540         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
9541         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
9542         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
9543         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
9544         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
9545
9546 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9547
9548         * config/rs6000/rs6000.c (context.h): New include.
9549         (tree-pass.h): Likewise.
9550         (make_pass_analyze_swaps): New decl.
9551         (rs6000_option_override): Register pass_analyze_swaps.
9552         (swap_web_entry): New subsclass of web_entry_base (df.h).
9553         (special_handling_values): New enum.
9554         (union_defs): New function.
9555         (union_uses): Likewise.
9556         (insn_is_load_p): Likewise.
9557         (insn_is_store_p): Likewise.
9558         (insn_is_swap_p): Likewise.
9559         (rtx_is_swappable_p): Likewise.
9560         (insn_is_swappable_p): Likewise.
9561         (chain_purpose): New enum.
9562         (chain_contains_only_swaps): New function.
9563         (mark_swaps_for_removal): Likewise.
9564         (swap_const_vector_halves): Likewise.
9565         (adjust_subreg_index): Likewise.
9566         (permute_load): Likewise.
9567         (permute_store): Likewise.
9568         (handle_special_swappables): Likewise.
9569         (replace_swap_with_copy): Likewise.
9570         (dump_swap_insn_table): Likewise.
9571         (rs6000_analyze_swaps): Likewise.
9572         (pass_data_analyze_swaps): New pass_data.
9573         (pass_analyze_swaps): New rtl_opt_pass.
9574         (make_pass_analyze_swaps): New function.
9575         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
9576
9577 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9578
9579         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
9580         type from rtx to rtx_insn *.
9581         (create_copy_of_insn_rtx): Likewise.
9582         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
9583         (create_copy_of_insn_rtx): Likewise, also for local "res".
9584
9585 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9586
9587         * rtl.h (find_first_parameter_load): Strengthen return type from
9588         rtx to rtx_insn *.
9589         * rtlanal.c (find_first_parameter_load): Strengthen return type
9590         from rtx to rtx_insn *.  Add checked cast for now, to postpone
9591         strengthening the params.
9592
9593 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9594
9595         PR fortran/44054
9596         * diagnostic.c: Set default caret.
9597         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
9598         line is needed.
9599         * diagnostic.h (struct diagnostic_context):
9600
9601 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9602
9603         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
9604         (sel_bb_head): Strengthen return type insn_t (currently just an
9605         rtx) to rtx_insn *.
9606         (sel_bb_end): Likewise.
9607
9608         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
9609         (sel_bb_head): Strengthen return type and local "head" from
9610         insn_t (currently just an rtx) to rtx_insn *.
9611         (sel_bb_end): Likewise for return type.
9612         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
9613         working with insn.
9614
9615 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9616
9617         * basic-block.h (get_last_bb_insn): Strengthen return type from
9618         rtx to rtx_insn *.
9619         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
9620         end".
9621
9622 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9623
9624         PR fortran/44054
9625         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
9626          to here ...
9627         (diagnostic_report_diagnostic): ... from here.
9628         * toplev.c (general_init): Move code to c-family.
9629
9630 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9631
9632         * df.h (web_entry_base): Replace existing struct web_entry with a
9633         new class web_entry_base with only the predecessor member.
9634         (unionfind_root): Remove declaration and move to class member.
9635         (unionfind_union): Remove declaration and move to friend
9636         function.
9637         (union_defs): Remove declaration.
9638         * web.c (web_entry_base::unionfind_root): Modify to be member
9639         function and adjust accessors.
9640         (unionfind_union): Modify to be friend function and adjust
9641         accessors.
9642         (web_entry): New subclass of web_entry_base containing the reg
9643         member.
9644         (union_match_dups): Modify for struct -> class changes.
9645         (union_defs): Likewise.
9646         (entry_register): Likewise.
9647         (pass_web::execute): Likewise.
9648
9649 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
9650
9651         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
9652         builtin define __VEC_ELEMENT_REG_ORDER__.
9653
9654 2014-08-20  Martin Jambor  <mjambor@suse.cz>
9655             Wei Mi  <wmi@google.com>
9656
9657         PR ipa/60449
9658         PR middle-end/61776
9659         * tree-ssa-operands.c (update_stmt_operands): Remove
9660         MODIFIED_NORETURN_CALLS.
9661         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
9662         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
9663         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
9664         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
9665         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
9666         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
9667         (gimple_call_set_ctrl_altering): New func.
9668         (gimple_call_ctrl_altering_p): Ditto.
9669         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
9670         (make_blocks): Use gimple_call_initialize_ctrl_altering.
9671         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
9672         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
9673         remove MODIFIED_NORETURN_CALLS.
9674
9675 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
9676
9677         * coverage.c (coverage_compute_profile_id): Return non-0;
9678         also handle symbols with unique name.
9679         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
9680
9681 2014-08-20  Steve Ellcey  <sellcey@mips.com>
9682
9683         PR middle-end/49191
9684         * doc/sourcebuild.texi (non_strict_align): New.
9685
9686 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
9687
9688         * cgraphunit.c (ipa_passes, compile): Reshedule
9689         symtab_remove_unreachable_nodes passes; update comments.
9690         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
9691         TODO_remove_functions before the pass; the functions ought to be
9692         already removed.
9693         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
9694         TODO_remove_functions.
9695         * passes.c (pass_data_early_local_passes): Do not schedule function
9696         removal.
9697         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
9698
9699 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9700
9701         PR c/59304
9702         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
9703         before setting the option.
9704         * diagnostic.c (diagnostic_classify_diagnostic): Record
9705         command-line status.
9706
9707 2014-08-20  Richard Biener  <rguenther@suse.de>
9708
9709         PR lto/62190
9710         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
9711         to build uint{16,32,64}_type_node.
9712
9713 2014-08-20  Terry Guo  <terry.guo@arm.com>
9714
9715         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
9716         with immediate_operand.
9717
9718 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
9719
9720         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
9721         "insn" from an as_a to a safe_as_a, for the case when "insn" is
9722         NULL.
9723
9724 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9725
9726         PR preprocessor/51303
9727         * incpath.c (remove_duplicates): Use cpp_warning.
9728
9729 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9730
9731         PR c/60975
9732         PR c/53063
9733         * doc/options.texi (CPP): Document it.
9734         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
9735         * optc-gen.awk: Handle CPP.
9736         * opth-gen.awk: Likewise.
9737
9738 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9739
9740         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
9741         rtx_insn *.
9742         (duplicate_insn_chain): Likewise.
9743         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
9744         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
9745         checked cast for now (until we can strengthen the params in the
9746         same way).
9747         (duplicate_insn_chain): Likewise.
9748
9749 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9750
9751         * rtl.h (next_cc0_user): Strengthen return type from rtx to
9752         rtx_insn *.
9753         (prev_cc0_setter): Likewise.
9754
9755         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
9756         rtx_insn *, adding checked casts for now as necessary.
9757         (prev_cc0_setter): Likewise.
9758
9759 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9760
9761         * expr.h (emit_move_insn): Strengthen return type from rtx to
9762         rtx_insn *.
9763         (emit_move_insn_1): Likewise.
9764         (emit_move_complex_push): Likewise.
9765         (emit_move_complex_parts): Likewise.
9766
9767         * expr.c (emit_move_via_integer): Strengthen return type from rtx
9768         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
9769         with insns.
9770         (emit_move_complex_push): Strengthen return type from rtx to
9771         rtx_insn *.
9772         (emit_move_complex): Likewise, also for local "ret".
9773         (emit_move_ccmode): Likewise.
9774         (emit_move_multi_word): Likewise for return type and locals
9775         "last_insn", "seq".
9776         (emit_move_insn_1): Likewise for return type and locals "result",
9777         "ret".
9778         (emit_move_insn): Likewise for return type and local "last_insn".
9779         (compress_float_constant): Likewise.
9780
9781 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9782
9783         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
9784         from rtx to rtx_insn *.
9785
9786         * rtl.h (emit_insn_before): Likewise.
9787         (emit_insn_before_noloc): Likewise.
9788         (emit_insn_before_setloc): Likewise.
9789         (emit_jump_insn_before): Likewise.
9790         (emit_jump_insn_before_noloc): Likewise.
9791         (emit_jump_insn_before_setloc): Likewise.
9792         (emit_call_insn_before): Likewise.
9793         (emit_call_insn_before_noloc): Likewise.
9794         (emit_call_insn_before_setloc): Likewise.
9795         (emit_debug_insn_before): Likewise.
9796         (emit_debug_insn_before_noloc): Likewise.
9797         (emit_debug_insn_before_setloc): Likewise.
9798         (emit_label_before): Likewise.
9799         (emit_insn_after): Likewise.
9800         (emit_insn_after_noloc): Likewise.
9801         (emit_insn_after_setloc): Likewise.
9802         (emit_jump_insn_after): Likewise.
9803         (emit_jump_insn_after_noloc): Likewise.
9804         (emit_jump_insn_after_setloc): Likewise.
9805         (emit_call_insn_after): Likewise.
9806         (emit_call_insn_after_noloc): Likewise.
9807         (emit_call_insn_after_setloc): Likewise.
9808         (emit_debug_insn_after): Likewise.
9809         (emit_debug_insn_after_noloc): Likewise.
9810         (emit_debug_insn_after_setloc): Likewise.
9811         (emit_label_after): Likewise.
9812         (emit_insn): Likewise.
9813         (emit_debug_insn): Likewise.
9814         (emit_jump_insn): Likewise.
9815         (emit_call_insn): Likewise.
9816         (emit_label): Likewise.
9817         (gen_clobber): Likewise.
9818         (emit_clobber): Likewise.
9819         (gen_use): Likewise.
9820         (emit_use): Likewise.
9821         (emit): Likewise.
9822
9823         (emit_barrier_before): Strengthen return type from rtx to
9824         rtx_barrier *.
9825         (emit_barrier_after): Likewise.
9826         (emit_barrier): Likewise.
9827
9828         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
9829         from rtx to rtx_insn *.  Add checked casts for now when converting
9830         "last" from rtx to rtx_insn *.
9831         (emit_insn_before_noloc): Likewise for return type.
9832         (emit_jump_insn_before_noloc): Likewise.
9833         (emit_call_insn_before_noloc): Likewise.
9834         (emit_debug_insn_before_noloc): Likewise.
9835         (emit_barrier_before): Strengthen return type and local "insn"
9836         from rtx to rtx_barrier *.
9837         (emit_label_before): Strengthen return type from rtx to
9838         rtx_insn *.  Add checked cast for now when returning param
9839         (emit_pattern_after_noloc): Strengthen return type from rtx to
9840         rtx_insn *.  Add checked casts for now when converting "last" from
9841         rtx to rtx_insn *.
9842         (emit_insn_after_noloc): Strengthen return type from rtx to
9843         rtx_insn *.
9844         (emit_jump_insn_after_noloc): Likewise.
9845         (emit_call_insn_after_noloc): Likewise.
9846         (emit_debug_insn_after_noloc): Likewise.
9847         (emit_barrier_after): Strengthen return type from rtx to
9848         rtx_barrier *.
9849         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
9850         Add checked cast for now when converting "label" from rtx to
9851         rtx_insn *.
9852         (emit_pattern_after_setloc): Strengthen return type from rtx to
9853         rtx_insn *.  Add checked casts for now when converting "last" from
9854         rtx to rtx_insn *.
9855         (emit_pattern_after): Strengthen return type from rtx to
9856         rtx_insn *.
9857         (emit_insn_after_setloc): Likewise.
9858         (emit_insn_after): Likewise.
9859         (emit_jump_insn_after_setloc): Likewise.
9860         (emit_jump_insn_after): Likewise.
9861         (emit_call_insn_after_setloc): Likewise.
9862         (emit_call_insn_after): Likewise.
9863         (emit_debug_insn_after_setloc): Likewise.
9864         (emit_debug_insn_after): Likewise.
9865         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
9866         when converting "last" from rtx to rtx_insn *.
9867         (emit_pattern_before): Strengthen return type from rtx to
9868         rtx_insn *.
9869         (emit_insn_before_setloc): Likewise.
9870         (emit_insn_before): Likewise.
9871         (emit_jump_insn_before_setloc): Likewise.
9872         (emit_jump_insn_before): Likewise.
9873         (emit_call_insn_before_setloc): Likewise.
9874         (emit_call_insn_before): Likewise.
9875         (emit_debug_insn_before_setloc): Likewise.
9876         (emit_debug_insn_before): Likewise.
9877         (emit_insn): Strengthen return type and locals "last", "insn",
9878         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
9879         within cases where we know we have an insn.
9880         (emit_debug_insn): Likewise.
9881         (emit_jump_insn): Likewise.
9882         (emit_call_insn): Strengthen return type and local "insn" from rtx
9883         to rtx_insn *.
9884         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
9885         a checked cast to rtx_insn * for now on "label".
9886         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
9887         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
9888         (emit_use): Likewise.
9889         (gen_use): Likewise, also for local "seq".
9890         (emit): Likewise for return type and local "insn".
9891         (rtx_insn): Likewise for return type and local "new_rtx".
9892
9893         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
9894         from rtx to rtx_barrier *.
9895
9896         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
9897         changed return type from rtx to rtx_insn *, we must update
9898         "emit_fn" type, and this in turn means updating...
9899         (frame_insn): ...this.  Strengthen return type from rtx to
9900         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
9901
9902 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9903
9904         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
9905         rtx to rtx_jump_table_data *.  Also for local.
9906         * rtl.h (emit_jump_table_data): Likewise.
9907
9908 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9909
9910         * basic-block.h (create_basic_block_structure): Strengthen third
9911         param "bb_note" from rtx to rtx_note *.
9912         * rtl.h (emit_note_before): Strengthen return type from rtx to
9913         rtx_note *.
9914         (emit_note_after): Likewise.
9915         (emit_note): Likewise.
9916         (emit_note_copy): Likewise.  Also, strengthen param similarly.
9917         * function.h (struct rtl_data): Strengthen field
9918         "x_stack_check_probe_note" from rtx to rtx_note *.
9919
9920         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
9921         from rtx to rtx_note *.
9922         * cfgrtl.c (create_basic_block_structure): Strengthen third param
9923         "bb_note" from rtx to rtx_note *.
9924         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
9925         when calling emit_note_copy.
9926         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
9927         rtx_note *.
9928         (emit_note_after): Likewise.
9929         (emit_note_before): Likewise.
9930         (emit_note_copy): Likewise.  Also, strengthen param similarly.
9931         (emit_note): Likewise.
9932         * except.c (emit_note_eh_region_end): Likewise for return type.
9933         Strengthen local "next" from rtx to rtx_insn *.
9934         (convert_to_eh_region_ranges): Strengthen local "note"
9935         from rtx to rtx_note *.
9936         * final.c (change_scope): Likewise.
9937         (reemit_insn_block_notes): Likewise, for both locals named "note".
9938         Also, strengthen local "insn" from rtx to rtx_insn *.
9939         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
9940         rtx to rtx_note *.
9941         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
9942         strengthen local "seq" from rtx to rtx_insn *.
9943         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
9944         to rtx_note *.
9945         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
9946         vec<rtx_note *>.
9947         (get_bb_note_from_pool): Strengthen return type from rtx to
9948         rtx_note *.
9949         (sel_create_basic_block): Strengthen local "new_bb_note" from
9950         insn_t to rtx_note *.
9951         * var-tracking.c (emit_note_insn_var_location): Strengthen local
9952         "note" from rtx to rtx_note *.
9953         (emit_notes_in_bb): Likewise.
9954
9955 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9956
9957         * function.h (struct rtl_data): Strengthen field
9958         "x_parm_birth_insn" from rtx to rtx_insn *.
9959         * function.c (struct assign_parm_data_all): Strengthen fields
9960         "first_conversion_insn" and "last_conversion_insn" from rtx to
9961         rtx_insn *.
9962
9963 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9964
9965         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
9966         to rtx_insn *; also for local "var_end_seq".
9967         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
9968         (maybe_cleanup_end_of_block): Likewise for param "last" and local
9969         "insn".
9970         (expand_gimple_cond): Likewise for locals "last2" and "last".
9971         (mark_transaction_restart_calls): Likewise for local "insn".
9972         (expand_gimple_stmt): Likewise for return type and locals "last"
9973         and "insn".
9974         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
9975         (avoid_complex_debug_insns): Likewise for param "insn".
9976         (expand_debug_locations): Likewise for locals "insn", "last",
9977         "prev_insn" and "insn2".
9978         (expand_gimple_basic_block): Likewise for local "last".
9979         (construct_exit_block): Likewise for locals "head", "end",
9980         "orig_end".
9981         (pass_expand::execute): Likewise for locals "var_seq",
9982         "var_ret_seq", "next".
9983
9984 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9985
9986         * asan.h (asan_emit_stack_protection): Strengthen return type from
9987         rtx to rtx_insn *.
9988         * asan.c (asan_emit_stack_protection): Likewise.  Add local
9989         "insns" to hold the return value.
9990
9991 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9992
9993         * basic-block.h (bb_note): Strengthen return type from rtx to
9994         rtx_note *.
9995         * sched-int.h (bb_note): Likewise.
9996         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
9997
9998 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9999
10000         * rtl.h (make_insn_raw): Strengthen return type from rtx to
10001         rtx_insn *.
10002
10003         * emit-rtl.c (make_insn_raw): Strengthen return type and local
10004         "insn" from rtx to rtx_insn *.
10005         (make_debug_insn_raw): Strengthen return type from rtx to
10006         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
10007         (make_jump_insn_raw):  Strengthen return type from rtx to
10008         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
10009         (make_call_insn_raw):  Strengthen return type from rtx to
10010         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
10011         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
10012         callback from rtx to rtx_insn *; likewise for local "insn" and
10013         "next", adding a checked cast to rtx_insn in the relevant cases of
10014         the switch statement.
10015         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
10016         callback from rtx to rtx_insn *.
10017         (emit_pattern_after_setloc): Likewise.
10018         (emit_pattern_after): Likewise.
10019         (emit_pattern_before_setloc): Likewise.
10020         (emit_pattern_before): Likewise.
10021
10022 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10023
10024         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
10025         rtx_call_insn *.
10026         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
10027         accepting an rtx_insn *.
10028         (last_call_insn): Strengthen return type from rtx to
10029         rtx_call_insn *.
10030
10031 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10032
10033         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
10034         "insns" from rtx to rtx_insn *.
10035         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
10036         locals "insn" and "prev".
10037
10038 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10039
10040         * rtl.h (tablejump_p): Strengthen third param from rtx * to
10041         rtx_jump_table_data **.
10042
10043         * cfgbuild.c (make_edges): Introduce local "table", using it in
10044         place of "tmp" for jump table data.
10045         (find_bb_boundaries): Strengthen local "table" from rtx to
10046         rtx_jump_table_data *.
10047         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10048         (outgoing_edges_match): Likewise for locals "table1" and "table2".
10049         (try_crossjump_to_edge): Likewise.
10050         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
10051         "table".
10052         (patch_jump_insn): Introduce local "table", using it in place of
10053         "tmp" for jump table data.
10054         (force_nonfallthru_and_redirect): Introduce local "table", so that
10055         call to tablejump_p can receive an rtx_jump_table_data **.  Update
10056         logic around the call to overwrite "note" appropriately if
10057         tablejump_p returns non-zero.
10058         (get_last_bb_insn): Introduce local "table", using it in place of
10059         "tmp" for jump table data.
10060         * dwarf2cfi.c (create_trace_edges): Likewise.
10061
10062         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
10063         from rtx to rtx_jump_table_data *.
10064         (create_fix_barrier): Strengthen local "tmp" from rtx to
10065         rtx_jump_table_data *.
10066         (arm_reorg): Likewise for local "table".
10067
10068         * config/s390/s390.c (s390_chunkify_start): Likewise.
10069
10070         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
10071
10072         * jump.c (delete_related_insns): Strengthen local "lab_next" from
10073         rtx to rtx_jump_table_data *.
10074
10075         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
10076         rtx_jump_table_data **.  Add a checked cast when writing through
10077         the pointer: we know there that local "table" is non-NULL and that
10078         JUMP_TABLE_DATA_P (table) holds.
10079         (label_is_jump_target_p): Introduce local "table", using it in
10080         place of "tmp" for jump table data.
10081
10082 2014-08-19  Marek Polacek  <polacek@redhat.com>
10083
10084         PR c++/62153
10085         * doc/invoke.texi: Document -Wbool-compare.
10086
10087 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10088
10089         * rtl.h (entry_of_function): Strengthen return type from rtx to
10090         rtx_insn *.
10091         * cfgrtl.c (entry_of_function): Likewise.
10092
10093 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10094
10095         * emit-rtl.h (get_insns): Strengthen return type from rtx to
10096         rtx_insn *, adding a checked cast for now.
10097         (get_last_insn): Likewise.
10098
10099 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10100
10101         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
10102         rtx_code_label *.
10103
10104         * emit-rtl.c (gen_label_rtx): Likewise.
10105
10106 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10107
10108         * rtl.h (previous_insn): Strengthen return type from rtx to
10109         rtx_insn *.
10110         (next_insn): Likewise.
10111         (prev_nonnote_insn): Likewise.
10112         (prev_nonnote_insn_bb): Likewise.
10113         (next_nonnote_insn): Likewise.
10114         (next_nonnote_insn_bb): Likewise.
10115         (prev_nondebug_insn): Likewise.
10116         (next_nondebug_insn): Likewise.
10117         (prev_nonnote_nondebug_insn): Likewise.
10118         (next_nonnote_nondebug_insn): Likewise.
10119         (prev_real_insn): Likewise.
10120         (next_real_insn): Likewise.
10121         (prev_active_insn): Likewise.
10122         (next_active_insn): Likewise.
10123
10124         * emit-rtl.c (next_insn): Strengthen return type from rtx to
10125         rtx_insn *, adding a checked cast.
10126         (previous_insn): Likewise.
10127         (next_nonnote_insn): Likewise.
10128         (next_nonnote_insn_bb): Likewise.
10129         (prev_nonnote_insn): Likewise.
10130         (prev_nonnote_insn_bb): Likewise.
10131         (next_nondebug_insn): Likewise.
10132         (prev_nondebug_insn): Likewise.
10133         (next_nonnote_nondebug_insn): Likewise.
10134         (prev_nonnote_nondebug_insn): Likewise.
10135         (next_real_insn): Likewise.
10136         (prev_real_insn): Likewise.
10137         (next_active_insn): Likewise.
10138         (prev_active_insn): Likewise.
10139
10140         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
10141         param "stepfunc" so that it returns an rtx_insn * rather than an
10142         rtx, to track the change to prev_nonnote_insn_bb, which is the
10143         only function this is called with.
10144         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
10145
10146 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
10147
10148         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
10149         assert.
10150
10151 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10152
10153         * coretypes.h (class rtx_debug_insn): Add forward declaration.
10154         (class rtx_nonjump_insn): Likewise.
10155         (class rtx_jump_insn): Likewise.
10156         (class rtx_call_insn): Likewise.
10157         (class rtx_jump_table_data): Likewise.
10158         (class rtx_barrier): Likewise.
10159         (class rtx_code_label): Likewise.
10160         (class rtx_note): Likewise.
10161
10162         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
10163         adding the invariant DEBUG_INSN_P (X).
10164         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
10165         the invariant NONJUMP_INSN_P (X).
10166         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
10167         the invariant JUMP_P (X).
10168         (class rtx_call_insn): New, a subclass of rtx_insn, adding
10169         the invariant CALL_P (X).
10170         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
10171         invariant JUMP_TABLE_DATA_P (X).
10172         (class rtx_barrier): New, a subclass of rtx_insn, adding the
10173         invariant BARRIER_P (X).
10174         (class rtx_code_label): New, a subclass of rtx_insn, adding
10175         the invariant LABEL_P (X).
10176         (class rtx_note): New, a subclass of rtx_insn, adding
10177         the invariant NOTE_P(X).
10178         (is_a_helper <rtx_debug_insn *>::test): New.
10179         (is_a_helper <rtx_nonjump_insn *>::test): New.
10180         (is_a_helper <rtx_jump_insn *>::test): New.
10181         (is_a_helper <rtx_call_insn *>::test): New.
10182         (is_a_helper <rtx_jump_table_data *>::test): New functions,
10183         overloaded for both rtx and rtx_insn *.
10184         (is_a_helper <rtx_barrier *>::test): New.
10185         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
10186         for both rtx and rtx_insn *.
10187         (is_a_helper <rtx_note *>::test): New.
10188
10189 2014-08-19  Marek Polacek  <polacek@redhat.com>
10190
10191         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
10192         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
10193         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
10194         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
10195
10196 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10197
10198         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
10199         rtx_insn *.  To help with transition, for now, convert from an
10200         access macro into a pair of functions: BND_TO, returning an
10201         rtx_insn *, and...
10202         (SET_BND_TO): New function, for use where BND_TO is used as an
10203         lvalue.
10204
10205         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
10206         SET_BND_TO.
10207         (BND_TO): New function, adding a checked cast.
10208         (SET_BND_TO): New function.
10209
10210         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
10211         SET_BND_TO.
10212         (compute_av_set_on_boundaries): Likewise.
10213
10214 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
10215
10216         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
10217         destination if it is used in source.
10218         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
10219         (*popcount<mode>2_falsedep_1): Likewise.
10220
10221 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
10222
10223         PR other/62168
10224         * configure.ac: Set install_gold_as_default to no first.
10225         * configure: Regenerated.
10226
10227 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10228
10229         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
10230         "note_list" field will eventually be an rtx_insn *.  To help with
10231         transition, for now, convert from an access macro into a pair of
10232         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
10233         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
10234         used as an lvalue.
10235
10236         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
10237         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
10238
10239         * sel-sched-ir.c (init_bb): Likewise.
10240         (sel_restore_notes): Likewise.
10241         (move_bb_info): Likewise.
10242         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
10243         (SET_BB_NOTE_LIST): New function.
10244
10245 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10246
10247         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
10248         field will eventually be an rtx_insn *.  To help with transition,
10249         for now, convert from an access macro into a pair of functions:
10250         VINSN_INSN_RTX, returning an rtx_insn *, and...
10251         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
10252         is used as an lvalue.
10253
10254         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
10255         SET_VINSN_INSN_RTX where it's used as an lvalue.
10256         (VINSN_INSN_RTX): New function.
10257         (SET_VINSN_INSN_RTX): New function.
10258
10259 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10260
10261         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
10262         eventually be rtx_insn *, but to help with transition, for now,
10263         convert from an access macro into a pair of functions: DEP_PRO
10264         returning an rtx_insn * and...
10265         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
10266         lvalue, returning an rtx&.
10267         (DEP_CON): Analogous changes to DEP_PRO above.
10268         (SET_DEP_CON): Likewise.
10269
10270         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
10271         an lvalue to SET_DEP_CON.
10272         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
10273         (sd_copy_back_deps): Likewise for DEP_CON.
10274         (DEP_PRO): New function, adding a checked cast for now.
10275         (DEP_CON): Likewise.
10276         (SET_DEP_PRO): New function.
10277         (SET_DEP_CON): Likewise.
10278
10279 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
10280
10281         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
10282         (extra_options): Add i386/cygwin.opt.
10283         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
10284         (CPP_SPEC): Accept -pthread.
10285         (LINK_SPEC): Ditto.
10286         (GOMP_SELF_SPECS): Update comment.
10287         * config/i386/cygwin.opt: New file for -pthread flag.
10288
10289 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10290
10291         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
10292         * df.h (DF_REF_INSN): Convert from a macro to a function, so
10293         that we can return an rtx_insn *.
10294
10295 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
10296
10297         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
10298         when building executables, not DLLs.  Add --large-address-aware
10299         under the same conditions.
10300         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
10301         when building executables, not DLLs.  Add --large-address-aware
10302         under the same conditions when using -m32.
10303
10304         * config/i386/cygwin-stdint.h: Throughout, make type
10305         definitions dependent on target architecture, not host.
10306
10307 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10308
10309         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
10310         the return type from rtx to rtx_insn *,  which will enable various
10311         conversions in followup patches.  For now this is is done by a
10312         checked cast.
10313         (NEXT_INSN): Likewise.
10314         (SET_PREV_INSN): Convert to an inline function.  This is intended
10315         for use as an lvalue, and so returns an rtx& to allow in-place
10316         modification.
10317         (SET_NEXT_INSN): Likewise.
10318
10319 2014-07-08  Mark Wielaard  <mjw@redhat.com>
10320
10321         PR debug/59051
10322         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
10323
10324 2014-08-19  Marek Polacek  <polacek@redhat.com>
10325
10326         PR c/61271
10327         * cgraphunit.c (handle_alias_pairs): Fix condition.
10328
10329 2014-08-19  Richard Biener  <rguenther@suse.de>
10330
10331         * gimple-fold.c (fold_gimple_assign): Properly build a
10332         null-pointer constant when devirtualizing addresses.
10333
10334 2014-07-07  Mark Wielaard  <mjw@redhat.com>
10335
10336         * dwarf2out.c (decl_quals): New function.
10337         (modified_type_die): Take one cv_quals argument instead of two,
10338         one for const and one for volatile.
10339         (add_type_attribute): Likewise.
10340         (generic_parameter_die): Call add_type_attribute with one modifier
10341         argument.
10342         (base_type_for_mode): Likewise.
10343         (add_bounds_info): Likewise.
10344         (add_subscript_info): Likewise.
10345         (gen_array_type_die): Likewise.
10346         (gen_descr_array_type_die): Likewise.
10347         (gen_entry_point_die): Likewise.
10348         (gen_enumeration_type_die): Likewise.
10349         (gen_formal_parameter_die): Likewise.
10350         (gen_subprogram_die): Likewise.
10351         (gen_variable_die): Likewise.
10352         (gen_const_die): Likewise.
10353         (gen_field_die): Likewise.
10354         (gen_pointer_type_die): Likewise.
10355         (gen_reference_type_die): Likewise.
10356         (gen_ptr_to_mbr_type_die): Likewise.
10357         (gen_inheritance_die): Likewise.
10358         (gen_subroutine_type_die): Likewise.
10359         (gen_typedef_die): Likewise.
10360         (force_type_die): Likewise.
10361
10362 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10363
10364         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
10365         if unset.
10366         * configure: Regenerate.
10367
10368 2014-08-19  Richard Biener  <rguenther@suse.de>
10369
10370         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
10371         DECL_EXTERNALs in BLOCKs as non-references.
10372         * tree-streamer-out.c (streamer_write_chain): Likewise.
10373
10374 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10375             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10376             Anna Tikhonova  <anna.tikhonova@intel.com>
10377             Ilya Tocar  <ilya.tocar@intel.com>
10378             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10379             Ilya Verbin  <ilya.verbin@intel.com>
10380             Kirill Yukhin  <kirill.yukhin@intel.com>
10381             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10382
10383         * config/i386/sse.md
10384         (define_mode_iterator VI48_AVX512F): Delete.
10385         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
10386         (define_mode_iterator VI2_AVX512VL): Ditto.
10387         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
10388         Delete.
10389         (define_insn
10390         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
10391         New.
10392         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
10393         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
10394         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
10395         with VI48_AVX512F_AVX512VL): New.
10396         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
10397         with VI2_AVX512VL): Ditto.
10398
10399 2014-08-19  Marek Polacek  <polacek@redhat.com>
10400
10401         * doc/invoke.texi: Document -Wc99-c11-compat.
10402
10403 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10404
10405         * rtl.h (PREV_INSN): Split macro in two: the existing one,
10406         for rvalues, and...
10407         (SET_PREV_INSN): New macro, for use as an lvalue.
10408         (NEXT_INSN, SET_NEXT_INSN): Likewise.
10409
10410         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
10411         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
10412         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
10413         (fixup_abnormal_edges): Likewise.
10414         (unlink_insn_chain): Likewise.
10415         (fixup_reorder_chain): Likewise.
10416         (cfg_layout_delete_block): Likewise.
10417         (cfg_layout_merge_blocks): Likewise.
10418         * combine.c (update_cfg_for_uncondjump): Likewise.
10419         * emit-rtl.c (link_insn_into_chain): Likewise.
10420         (remove_insn): Likewise.
10421         (delete_insns_since): Likewise.
10422         (reorder_insns_nobb): Likewise.
10423         (emit_insn_after_1): Likewise.
10424         * final.c (rest_of_clean_state): Likewise.
10425         (final_scan_insn): Likewise.
10426         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
10427         * haifa-sched.c (concat_note_lists): Likewise.
10428         (remove_notes): Likewise.
10429         (restore_other_notes): Likewise.
10430         (move_insn): Likewise.
10431         (unlink_bb_notes): Likewise.
10432         (restore_bb_notes): Likewise.
10433         * jump.c (delete_for_peephole): Likewise.
10434         * optabs.c (emit_libcall_block_1): Likewise.
10435         * reorg.c (emit_delay_sequence): Likewise.
10436         (fill_simple_delay_slots): Likewise.
10437         * sel-sched-ir.c (sel_move_insn): Likewise.
10438         (sel_remove_insn): Likewise.
10439         (get_bb_note_from_pool): Likewise.
10440         * sel-sched.c (move_nop_to_previous_block): Likewise.
10441
10442         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
10443         * config/c6x/c6x.c (gen_one_bundle): Likewise.
10444         (c6x_gen_bundles): Likewise.
10445         (hwloop_optimize): Likewise.
10446         * config/frv/frv.c (frv_function_prologue): Likewise.
10447         (frv_register_nop): Likewise.
10448         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
10449         (ia64_reorg): Likewise.
10450         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
10451         (mep_make_bundle): Likewise.
10452         (mep_bundle_insns): Likewise.
10453         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
10454         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
10455         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
10456
10457 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10458
10459         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
10460         return type from rtx to rtx_insn *.
10461         (BB_END): Likewise.
10462         (BB_HEADER): Likewise.
10463         (BB_FOOTER): Likewise.
10464         (SET_BB_HEAD): Convert to a function.
10465         (SET_BB_END): Likewise.
10466         (SET_BB_HEADER): Likewise.
10467         (SET_BB_FOOTER): Likewise.
10468
10469         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
10470         Strengthen the return type from rtx to rtx_insn *.  For now, this
10471         is done by adding a checked cast, but this will eventually
10472         become a field lookup.
10473         (BB_END): Likewise.
10474         (BB_HEADER): Likewise.
10475         (BB_FOOTER): Likewise.
10476         (SET_BB_HEAD): New function, from macro of same name.  This is
10477         intended for use as an lvalue, and so returns an rtx& to allow
10478         in-place modification.
10479         (SET_BB_END): Likewise.
10480         (SET_BB_HEADER): Likewise.
10481         (SET_BB_FOOTER): Likewise.
10482
10483 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10484
10485         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
10486         for rvalues, and...
10487         (SET_BB_HEAD): New macro, for use as a lvalue.
10488         (BB_END, SET_BB_END): Likewise.
10489         (BB_HEADER, SET_BB_HEADER): Likewise.
10490         (BB_FOOTER, SET_BB_FOOTER): Likewise.
10491
10492         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
10493         of BB_* macros into SET_BB_* macros.
10494         (fix_crossing_unconditional_branches): Likewise.
10495         * caller-save.c (save_call_clobbered_regs): Likewise.
10496         (insert_one_insn): Likewise.
10497         * cfgbuild.c (find_bb_boundaries): Likewise.
10498         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10499         (outgoing_edges_match): Likewise.
10500         (try_optimize_cfg): Likewise.
10501         * cfgexpand.c (expand_gimple_cond): Likewise.
10502         (expand_gimple_tailcall): Likewise.
10503         (expand_gimple_basic_block): Likewise.
10504         (construct_exit_block): Likewise.
10505         * cfgrtl.c (delete_insn): Likewise.
10506         (create_basic_block_structure): Likewise.
10507         (rtl_delete_block): Likewise.
10508         (rtl_split_block): Likewise.
10509         (emit_nop_for_unique_locus_between): Likewise.
10510         (rtl_merge_blocks): Likewise.
10511         (block_label): Likewise.
10512         (try_redirect_by_replacing_jump): Likewise.
10513         (emit_barrier_after_bb): Likewise.
10514         (fixup_abnormal_edges): Likewise.
10515         (record_effective_endpoints): Likewise.
10516         (relink_block_chain): Likewise.
10517         (fixup_reorder_chain): Likewise.
10518         (fixup_fallthru_exit_predecessor): Likewise.
10519         (cfg_layout_duplicate_bb): Likewise.
10520         (cfg_layout_split_block): Likewise.
10521         (cfg_layout_delete_block): Likewise.
10522         (cfg_layout_merge_blocks): Likewise.
10523         * combine.c (update_cfg_for_uncondjump): Likewise.
10524         * emit-rtl.c (add_insn_after): Likewise.
10525         (remove_insn): Likewise.
10526         (reorder_insns): Likewise.
10527         (emit_insn_after_1): Likewise.
10528         * haifa-sched.c (get_ebb_head_tail): Likewise.
10529         (restore_other_notes): Likewise.
10530         (move_insn): Likewise.
10531         (sched_extend_bb): Likewise.
10532         (fix_jump_move): Likewise.
10533         * ifcvt.c (noce_process_if_block): Likewise.
10534         (dead_or_predicable): Likewise.
10535         * ira.c (update_equiv_regs): Likewise.
10536         * reg-stack.c (change_stack): Likewise.
10537         * sel-sched-ir.c (sel_move_insn): Likewise.
10538         * sel-sched.c (move_nop_to_previous_block): Likewise.
10539
10540         * config/c6x/c6x.c (hwloop_optimize): Likewise.
10541         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
10542
10543 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10544
10545         * rtl.h (for_each_rtx_in_insn): New function.
10546         * rtlanal.c (for_each_rtx_in_insn): Likewise.
10547
10548 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10549
10550         * coretypes.h (class rtx_insn): Add forward declaration.
10551
10552         * rtl.h: Include is-a.h.
10553         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
10554         workaround to ensure gengtype knows inheritance is occurring,
10555         whilst continuing to use the pre-existing special-casing for
10556         rtx_def.
10557         (class rtx_insn): New subclass of rtx_def, adding the
10558         invariant that we're dealing with something we can sanely use
10559         INSN_UID, NEXT_INSN, PREV_INSN on.
10560         (is_a_helper <rtx_insn *>::test): New.
10561         (is_a_helper <const rtx_insn *>::test): New.
10562
10563 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10564
10565         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
10566
10567 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
10568
10569         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
10570         comdats as extern.
10571
10572 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
10573
10574         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
10575         to BUILT_IN_UNREACHABLE.
10576
10577 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
10578
10579         PR target/62011
10580         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
10581         New tune flag.
10582         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
10583         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
10584         (ffs<mode>2): Do not expand with tzcnt for
10585         TARGET_AVOID_FALSE_DEP_FOR_BMI.
10586         (ffssi2_no_cmove): Ditto.
10587         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
10588         (ctz<mode>2): New expander.
10589         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
10590         (*ctz<mode>2_falsedep): New insn.
10591         (*ctz<mode>2): Rename from ctz<mode>2.
10592         (clz<mode>2_lzcnt): New expander.
10593         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
10594         (*clz<mode>2_lzcnt_falsedep): New insn.
10595         (*clz<mode>2): Rename from ctz<mode>2.
10596         (popcount<mode>2): New expander.
10597         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
10598         (*popcount<mode>2_falsedep): New insn.
10599         (*popcount<mode>2): Rename from ctz<mode>2.
10600         (*popcount<mode>2_cmp): Remove.
10601         (*popcountsi2_cmp_zext): Ditto.
10602
10603 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
10604
10605         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
10606         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
10607         * config/microblaze/microblaze.h
10608         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
10609
10610 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
10611
10612         PR other/62168
10613         * configure.ac: Set install_gold_as_default to no for
10614          --enable-gold=no.
10615          * configure: Regenerated.
10616
10617 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
10618
10619         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
10620         * config.in: Add undef of HAVE_isl.
10621         * configure: Regenerate.
10622         * configure.ac: Add definition of HAVE_isl.
10623         * graphite-blocking.c: Add checking of HAVE_isl.
10624         * graphite-dependences.c: Likewise.
10625         * graphite-interchange.c: Likewise.
10626         * graphite-isl-ast-to-gimple.c: Likewise.
10627         * graphite-optimize-isl.c: Likewise.
10628         * graphite-poly.c: Likewise.
10629         * graphite-scop-detection.c: Likewise.
10630         * graphite-sese-to-poly.c: Likewise.
10631         * graphite.c: Likewise.
10632         * toplev.c: Replace the checking of HAVE_cloog with the checking
10633         of HAVE_isl.
10634
10635 2014-08-18  Richard Biener  <rguenther@suse.de>
10636
10637         PR tree-optimization/62090
10638         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
10639         (fold_builtin_3): Do not fold snprintf.
10640         (fold_builtin_4): Likewise.
10641         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
10642         moved from builtins.c.
10643         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
10644         (gimple_fold_builtin): Do not fold sprintf here.
10645
10646 2014-08-18  Richard Biener  <rguenther@suse.de>
10647
10648         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
10649         code to ...
10650         (maybe_canonicalize_mem_ref_addr): ... this function.
10651         (fold_stmt_1): Apply it here before all simplification.
10652
10653 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
10654
10655         PR ipa/61800
10656         * cgraph.h (cgraph_node::create_indirect_edge): Add
10657         compute_indirect_info param.
10658         * cgraph.c (cgraph_node::create_indirect_edge): Compute
10659         indirect_info only when it is required.
10660         * cgraphclones.c (cgraph_clone_edge): Do not recompute
10661         indirect_info fore cloned indirect edge.
10662
10663 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10664             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10665             Anna Tikhonova  <anna.tikhonova@intel.com>
10666             Ilya Tocar  <ilya.tocar@intel.com>
10667             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10668             Ilya Verbin  <ilya.verbin@intel.com>
10669             Kirill Yukhin  <kirill.yukhin@intel.com>
10670             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10671
10672         * config/i386/sse.md
10673         (define_mode_iterator VI8_AVX2_AVX512BW): New.
10674         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
10675
10676 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10677             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10678             Anna Tikhonova  <anna.tikhonova@intel.com>
10679             Ilya Tocar  <ilya.tocar@intel.com>
10680             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10681             Ilya Verbin  <ilya.verbin@intel.com>
10682             Kirill Yukhin  <kirill.yukhin@intel.com>
10683             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10684
10685         * config/i386/sse.md
10686         (define_mode_iterator VF1_AVX512VL): New.
10687         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
10688         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
10689         New.
10690
10691 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10692             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10693             Anna Tikhonova  <anna.tikhonova@intel.com>
10694             Ilya Tocar  <ilya.tocar@intel.com>
10695             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10696             Ilya Verbin  <ilya.verbin@intel.com>
10697             Kirill Yukhin  <kirill.yukhin@intel.com>
10698             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10699
10700         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
10701         * config/i386/i386.md
10702         (define_code_iterator any_float): New.
10703         (define_code_attr floatsuffix): New.
10704         * config/i386/sse.md
10705         (define_mode_iterator VF1_128_256VL): New.
10706         (define_mode_iterator VF2_512_256VL): New.
10707         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
10708         TARGET check.
10709         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
10710         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
10711         New.
10712         (define_mode_attr qq2pssuff): New.
10713         (define_mode_attr sselongvecmode): New.
10714         (define_mode_attr sselongvecmodelower): New.
10715         (define_mode_attr sseintvecmode3): New.
10716         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
10717         New.
10718         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
10719         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
10720         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
10721         (define_insn "ufloatv2siv2df2<mask_name>"): New.
10722
10723 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10724             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10725             Anna Tikhonova  <anna.tikhonova@intel.com>
10726             Ilya Tocar  <ilya.tocar@intel.com>
10727             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10728             Ilya Verbin  <ilya.verbin@intel.com>
10729             Kirill Yukhin  <kirill.yukhin@intel.com>
10730             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10731
10732         * config/i386/sse.md
10733         (define_mode_iterator VF2_AVX512VL): New.
10734         (define_mode_attr sseintvecmode2): New.
10735         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
10736         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
10737         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
10738         (define_insn
10739         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
10740         Ditto.
10741         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
10742         Ditto.
10743         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
10744         Ditto.
10745
10746 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10747             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10748             Anna Tikhonova  <anna.tikhonova@intel.com>
10749             Ilya Tocar  <ilya.tocar@intel.com>
10750             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10751             Ilya Verbin  <ilya.verbin@intel.com>
10752             Kirill Yukhin  <kirill.yukhin@intel.com>
10753             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10754
10755         * config/i386/i386.md
10756         (define_insn "*movoi_internal_avx"): Add evex version.
10757         (define_insn "*movti_internal"): Ditto.
10758
10759 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10760             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10761             Anna Tikhonova  <anna.tikhonova@intel.com>
10762             Ilya Tocar  <ilya.tocar@intel.com>
10763             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10764             Ilya Verbin  <ilya.verbin@intel.com>
10765             Kirill Yukhin  <kirill.yukhin@intel.com>
10766             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10767
10768         * config/i386/i386.md
10769         (define_attr "isa"): Add avx512dq, noavx512dq.
10770         (define_attr "enabled"): Ditto.
10771         * config/i386/sse.md
10772         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
10773
10774 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10775             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10776             Anna Tikhonova  <anna.tikhonova@intel.com>
10777             Ilya Tocar  <ilya.tocar@intel.com>
10778             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10779             Ilya Verbin  <ilya.verbin@intel.com>
10780             Kirill Yukhin  <kirill.yukhin@intel.com>
10781             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10782
10783         * config/i386/i386.c
10784         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
10785         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
10786         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
10787         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
10788         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
10789         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
10790         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
10791         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
10792         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
10793         * config/i386/sse.md
10794         (define_mode_iterator VMOVE): Allow V4TI mode.
10795         (define_mode_iterator V_AVX512VL): New.
10796         (define_mode_iterator V): New handling for AVX512VL.
10797         (define_insn "avx512f_load<mode>_mask"): Delete.
10798         (define_insn "<avx512>_load<mode>_mask"): New.
10799         (define_insn "avx512f_store<mode>_mask"): Delete.
10800         (define_insn "<avx512>_store<mode>_mask"): New.
10801
10802
10803 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
10804
10805         PR sanitizer/62089
10806         * asan.c (instrument_derefs): Fix bitfield check.
10807
10808 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
10809
10810         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
10811         * config/rs6000/htm.md (ttest): Remove clobber.
10812         * config/rs6000/predicates.md (any_mask_operand): New predicate.
10813         (and_operand): Reformat.
10814         (and_2rld_operand): New predicate.
10815         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
10816         parameter.
10817         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
10818         parameter.  Handle AND directly.
10819         (rs6000_split_logical_di): Remove last parameter.
10820         (rs6000_split_logical): Remove last parameter.  Remove obsolete
10821         comment.
10822         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
10823         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
10824         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
10825         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
10826         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
10827         and 5 anonymous splitters):  Delete.
10828         (and<mode>3): New expander.
10829         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
10830         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
10831         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
10832         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
10833         (floatdisf2_internal1): Remove clobbers.
10834         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
10835         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
10836         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
10837         (and<mode>3 for BOOL_128): Remove clobber.
10838         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
10839         rs6000_split_logical.
10840         (*bool<mode>3_internal for BOOL_128): Adjust call of
10841         rs6000_split_logical.
10842         (*boolc<mode>3_internal1 for BOOL_128,
10843         *boolc<mode>3_internal2 for BOOL_128,
10844         *boolcc<mode>3_internal1 for BOOL_128,
10845         *boolcc<mode>3_internal2 for BOOL_128,
10846         *eqv<mode>3_internal1 for BOOL_128,
10847         *eqv<mode>3_internal2 for BOOL_128,
10848         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
10849         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
10850         clobber.
10851         (*vec_reload_and_reg_<mptrsize>): Delete.
10852
10853 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
10854
10855         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
10856         and split, *boolccsi3_internal3 and split): Delete.
10857         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
10858         *boolccdi3_internal3 and split): Delete.
10859         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
10860         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
10861
10862 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
10863
10864         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
10865         and split, *boolcsi3_internal3 and split): Delete.
10866         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
10867         *boolcdi3_internal3 and split): Delete.
10868         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
10869
10870 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
10871
10872         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
10873         <'u'>: Also support printing the low-order 16 bits.
10874         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
10875         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
10876         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
10877         *booldi3_internal3 and split): Delete.
10878         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
10879         *bool<mode>3_dot2): New.
10880         (two anonymous define_splits for non_logical_cint_operand): Merge.
10881
10882 2014-08-17  Marek Polacek  <polacek@redhat.com>
10883             Manuel López-Ibáñez  <manu@gcc.gnu.org>
10884
10885         PR c/62059
10886         * diagnostic.c (adjust_line): Add gcc_checking_assert.
10887         (diagnostic_show_locus): Don't print caret diagnostic
10888         if a column is larger than the line_width.
10889
10890 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
10891
10892         * common.opt: Make the ISL AST generator to be the main code generator
10893         of Graphite.
10894
10895 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
10896
10897         * wide-int.h (generic_wide_int): Declare as class instead of struct.
10898
10899 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
10900
10901         PR target/61641
10902         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
10903         Declare.
10904         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
10905         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
10906         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
10907         Define.
10908         * config/pa/pa.md (begin_brtab): Delete insn.
10909         (end_brtab): Likewise.
10910
10911 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10912
10913         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
10914
10915 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
10916
10917         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
10918         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
10919         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
10920         (get_dynamic_type): Remove.
10921         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
10922         (clear_speculation): Bring to ipa-deivrt.h
10923         (get_class_context): Rename to ...
10924         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
10925         (contains_type_p): Update.
10926         (get_dynamic_type): Rename to ...
10927         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
10928         (possible_polymorphic_call_targets): UPdate.
10929         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
10930         * ipa-prop.c (ipa_analyze_call_uses): Update.
10931
10932 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
10933
10934         * doc/invoke.texi (SH options): Document missing processor variant
10935         options.  Remove references to Hitachi.  Undocument deprecated mspace
10936         option.
10937
10938 2014-08-15  Jason Merrill  <jason@redhat.com>
10939
10940         * tree.c (type_hash_canon): Uncomment assert.
10941
10942 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10943
10944         * input.h (in_system_header_at): Add comment.
10945
10946 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10947
10948         PR fortran/44054
10949         * diagnostic.c (build_message_string): Make it extern.
10950         * diagnostic.h (build_message_string): Make it extern.
10951
10952 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
10953
10954         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
10955         load/store from/to non-floating class pseudo.
10956
10957 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10958
10959         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
10960
10961 2014-08-15  Richard Biener  <rguenther@suse.de>
10962
10963         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
10964         (get_constraint_for_ssa_var): Remove dead code.
10965         (get_constraint_for_1): Adjust.
10966         (find_what_var_points_to): Likewise.
10967         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
10968
10969 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
10970
10971         PR target/61878
10972         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
10973         (_mm512_mask_cmpge_epu32_mask): Ditto.
10974         (_mm512_cmpge_epu32_mask): Ditto.
10975         (_mm512_mask_cmpge_epi64_mask): Ditto.
10976         (_mm512_cmpge_epi64_mask): Ditto.
10977         (_mm512_mask_cmpge_epu64_mask): Ditto.
10978         (_mm512_cmpge_epu64_mask): Ditto.
10979         (_mm512_mask_cmple_epi32_mask): Ditto.
10980         (_mm512_cmple_epi32_mask): Ditto.
10981         (_mm512_mask_cmple_epu32_mask): Ditto.
10982         (_mm512_cmple_epu32_mask): Ditto.
10983         (_mm512_mask_cmple_epi64_mask): Ditto.
10984         (_mm512_cmple_epi64_mask): Ditto.
10985         (_mm512_mask_cmple_epu64_mask): Ditto.
10986         (_mm512_cmple_epu64_mask): Ditto.
10987         (_mm512_mask_cmplt_epi32_mask): Ditto.
10988         (_mm512_cmplt_epi32_mask): Ditto.
10989         (_mm512_mask_cmplt_epu32_mask): Ditto.
10990         (_mm512_cmplt_epu32_mask): Ditto.
10991         (_mm512_mask_cmplt_epi64_mask): Ditto.
10992         (_mm512_cmplt_epi64_mask): Ditto.
10993         (_mm512_mask_cmplt_epu64_mask): Ditto.
10994         (_mm512_cmplt_epu64_mask): Ditto.
10995         (_mm512_mask_cmpneq_epi32_mask): Ditto.
10996         (_mm512_mask_cmpneq_epu32_mask): Ditto.
10997         (_mm512_cmpneq_epu32_mask): Ditto.
10998         (_mm512_mask_cmpneq_epi64_mask): Ditto.
10999         (_mm512_cmpneq_epi64_mask): Ditto.
11000         (_mm512_mask_cmpneq_epu64_mask): Ditto.
11001         (_mm512_cmpneq_epu64_mask): Ditto.
11002         (_mm512_castpd_ps): Ditto.
11003         (_mm512_castpd_si512): Ditto.
11004         (_mm512_castps_pd): Ditto.
11005         (_mm512_castps_si512): Ditto.
11006         (_mm512_castsi512_ps): Ditto.
11007         (_mm512_castsi512_pd): Ditto.
11008         (_mm512_castpd512_pd128): Ditto.
11009         (_mm512_castps512_ps128): Ditto.
11010         (_mm512_castsi512_si128): Ditto.
11011         (_mm512_castpd512_pd256): Ditto.
11012         (_mm512_castps512_ps256): Ditto.
11013         (_mm512_castsi512_si256): Ditto.
11014         (_mm512_castpd128_pd512): Ditto.
11015         (_mm512_castps128_ps512): Ditto.
11016         (_mm512_castsi128_si512): Ditto.
11017         (_mm512_castpd256_pd512): Ditto.
11018         (_mm512_castps256_ps512): Ditto.
11019         (_mm512_castsi256_si512): Ditto.
11020         (_mm512_cmpeq_epu32_mask): Ditto.
11021         (_mm512_mask_cmpeq_epu32_mask): Ditto.
11022         (_mm512_mask_cmpeq_epu64_mask): Ditto.
11023         (_mm512_cmpeq_epu64_mask): Ditto.
11024         (_mm512_cmpgt_epu32_mask): Ditto.
11025         (_mm512_mask_cmpgt_epu32_mask): Ditto.
11026         (_mm512_mask_cmpgt_epu64_mask): Ditto.
11027         (_mm512_cmpgt_epu64_mask): Ditto.
11028         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
11029         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
11030         * config/i386/i386.c (enum ix86_builtins): Add
11031         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
11032         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
11033         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
11034         (bdesc_args): Add __builtin_ia32_si512_256si,
11035         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
11036         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
11037         __builtin_ia32_pd512_pd.
11038         (ix86_expand_args_builtin): Handle new FTYPEs.
11039         * config/i386/sse.md (castmode): Add 512-bit modes.
11040         (AVX512MODE2P): New.
11041         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
11042         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
11043
11044 2014-08-15  Richard Biener  <rguenther@suse.de>
11045
11046         * fold-const.c (tree_swap_operands_p): Put all constants
11047         last, also strip sign-changing NOPs when considering further
11048         canonicalization.  Canonicalize also when optimizing for size.
11049
11050 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11051
11052         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
11053         one_match > zero_match case to just before simple_sequence.
11054
11055 2014-08-15  Richard Biener  <rguenther@suse.de>
11056
11057         * data-streamer.h (streamer_string_index, string_for_index):
11058         Remove.
11059         * data-streamer-out.c (streamer_string_index): Make static.
11060         * data-streamer-in.c (string_for_index): Likewise.
11061         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
11062         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
11063
11064 2014-08-15  Richard Biener  <rguenther@suse.de>
11065
11066         PR tree-optimization/62031
11067         * tree-data-ref.c (dr_analyze_indices): Do not set
11068         DR_UNCONSTRAINED_BASE.
11069         (dr_may_alias_p): All indirect accesses have to go the
11070         formerly DR_UNCONSTRAINED_BASE path.
11071         * tree-data-ref.h (struct indices): Remove
11072         unconstrained_base member.
11073         (DR_UNCONSTRAINED_BASE): Remove.
11074
11075 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
11076
11077         PR middle-end/62092
11078         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
11079         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
11080         in OMP_CLAUSE_MAP in some outer target region.
11081
11082 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
11083
11084         * tree-ssa-loop-ivopts.c (ivopts_data): New field
11085         name_expansion_cache.
11086         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
11087         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
11088         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
11089         (difference_cannot_overflow_p): New parameter.  Use affine
11090         expansion for equality check.
11091         (iv_elimination_compare_lt): Pass new argument.
11092
11093 2014-08-14  DJ Delorie  <dj@redhat.com>
11094
11095         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
11096         variables to the accumulator.
11097
11098         * config/rl78/predicates.md (rl78_near_mem_operand): New.
11099         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
11100         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
11101         with far-far moves.
11102
11103         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
11104         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
11105         (umulqihi3_virt): Likewise.
11106         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
11107         (umulqihi3_real): Likewise.
11108
11109         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
11110
11111 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
11112
11113         PR tree-optimization/62091
11114         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
11115         function_entry_reached.
11116         (walk_aliased_vdefs): Clear it here.
11117         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
11118
11119 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
11120
11121         * ipa-utils.h (compare_virtual_tables): Declare.
11122         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
11123
11124 2014-08-14  Marek Polacek  <polacek@redhat.com>
11125
11126         DR 458
11127         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
11128         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
11129
11130 2014-08-14  Tom de Vries  <tom@codesourcery.com>
11131
11132         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
11133
11134 2014-08-14  Tom de Vries  <tom@codesourcery.com>
11135
11136         PR rtl-optimization/62004
11137         PR rtl-optimization/62030
11138         * ifcvt.c (rtx_interchangeable_p): New function.
11139         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
11140         * emit-rtl.h (mem_attrs_eq_p): Declare.
11141
11142 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
11143
11144         * graphite-scop-detection.c:
11145         Add inclusion of cp-tree.h.
11146         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
11147         in case they are pointers to object types
11148
11149 2014-08-14  Richard Biener  <rguenther@suse.de>
11150
11151         * BASE-VER: Change to 5.0.0
11152
11153 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11154             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11155             Anna Tikhonova  <anna.tikhonova@intel.com>
11156             Ilya Tocar  <ilya.tocar@intel.com>
11157             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11158             Ilya Verbin  <ilya.verbin@intel.com>
11159             Kirill Yukhin  <kirill.yukhin@intel.com>
11160             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11161
11162         * config/i386/sse.md (define_mode_attr avx512): New.
11163         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
11164         V4DI modes.
11165         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
11166         (define_mode_attr ssse3_avx2): Ditto.
11167         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
11168         (define_mode_attr avx2_avx512bw): New.
11169         (define_mode_attr ssedoublemodelower): New.
11170         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
11171         V32HI, V64QI modes.
11172         (define_mode_attr ssebytemode): Allow V8DI modes.
11173         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
11174         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
11175         (define_mode_attr ssePSmode2): New.
11176         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
11177         V16HI, V32HI modes.
11178         (define_mode_attr dbpsadbwmode): New.
11179         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
11180         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
11181         (vi8_sse4_1_avx2_avx512): New.
11182         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
11183         mode attribute.
11184         (define_mode_attr blendbits): Move before its immediate use.
11185
11186 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11187             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11188             Anna Tikhonova  <anna.tikhonova@intel.com>
11189             Ilya Tocar  <ilya.tocar@intel.com>
11190             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11191             Ilya Verbin  <ilya.verbin@intel.com>
11192             Kirill Yukhin  <kirill.yukhin@intel.com>
11193             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11194
11195         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
11196         * config/i386/subst.md
11197         (define_mode_iterator SUBST_V): Update.
11198         (define_mode_iterator SUBST_A): Ditto.
11199         (define_subst_attr "mask_operand7"): New.
11200         (define_subst_attr "mask_operand10"): New.
11201         (define_subst_attr "mask_operand_arg34") : New.
11202         (define_subst_attr "mask_expand_op3"): New.
11203         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
11204         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
11205         (define_subst_attr "mask_avx512vl_condition"): New.
11206         (define_subst_attr "round_mask_operand4"): Ditto.
11207         (define_subst_attr "round_mask_scalar_op3"): Delete.
11208         (define_subst_attr "round_mask_op4"): New.
11209         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
11210         V16SImode.
11211         (define_subst_attr "round_modev8sf_condition"): New.
11212         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
11213         <MODE>mode.
11214         (define_subst_attr "round_saeonly_mask_operand4"): New.
11215         (define_subst_attr "round_saeonly_mask_op4"): New.
11216         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
11217         V8DImode, V16SImode.
11218         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
11219         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
11220         (define_subst_attr "mask_expand4_args"): New.
11221         (define_subst "mask_expand4"): New.
11222
11223 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11224             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11225             Anna Tikhonova  <anna.tikhonova@intel.com>
11226             Ilya Tocar  <ilya.tocar@intel.com>
11227             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11228             Ilya Verbin  <ilya.verbin@intel.com>
11229             Kirill Yukhin  <kirill.yukhin@intel.com>
11230             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11231
11232         * config/i386/i386.md
11233         (define_attr "isa"): Add avx512bw,noavx512bw.
11234         (define_attr "enabled"): Ditto.
11235         (define_split): Add 32/64-bit mask logic.
11236         (define_insn "*k<logic>qi"): New.
11237         (define_insn "*k<logic>hi"): New.
11238         (define_insn "*anddi_1"): Add mask version.
11239         (define_insn "*andsi_1"): Ditto.
11240         (define_insn "*<code><mode>_1"): Ditto.
11241         (define_insn "*<code>hi_1"): Ditto.
11242         (define_insn "kxnor<mode>"): New.
11243         (define_insn "kunpcksi"): New.
11244         (define_insn "kunpckdi"): New.
11245         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
11246         (define_insn "*one_cmplhi2_1"): Ditto.
11247
11248 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11249             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11250             Anna Tikhonova  <anna.tikhonova@intel.com>
11251             Ilya Tocar  <ilya.tocar@intel.com>
11252             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11253             Ilya Verbin  <ilya.verbin@intel.com>
11254             Kirill Yukhin  <kirill.yukhin@intel.com>
11255             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11256
11257         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
11258         V32HImode.
11259
11260 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11261             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11262             Anna Tikhonova  <anna.tikhonova@intel.com>
11263             Ilya Tocar  <ilya.tocar@intel.com>
11264             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11265             Ilya Verbin  <ilya.verbin@intel.com>
11266             Kirill Yukhin  <kirill.yukhin@intel.com>
11267             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11268
11269         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
11270         registers.
11271         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
11272         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
11273         xmm/ymm16+ when availble.
11274         * config/i386/i386.h
11275         (HARD_REGNO_NREGS): Add mask regs.
11276         (VALID_AVX512F_REG_MODE): Ditto.
11277         (VALID_AVX512F_REG_MODE) : Define.
11278         (VALID_MASK_AVX512BW_MODE): Ditto.
11279         (reg_class) (MASK_REG_P(X)): Define.
11280         * config/i386/i386.md: Do not split long moves with mask register,
11281         use kmovb if avx512bw is availible.
11282         (movdi_internal): Handle mask registers.
11283
11284 2014-08-14  Richard Biener  <rguenther@suse.de>
11285
11286         PR tree-optimization/62081
11287         * tree-ssa-loop.c (pass_fix_loops): New pass.
11288         (pass_tree_loop::gate):  Do not fixup loops here.
11289         * tree-pass.h (make_pass_fix_loops): Declare.
11290         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
11291
11292 2014-08-14  Richard Biener  <rguenther@suse.de>
11293
11294         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
11295         (type_hash_canon): ... this and avoid 2nd lookup for the add.
11296
11297 2014-08-14  Richard Biener  <rguenther@suse.de>
11298
11299         PR tree-optimization/62090
11300         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
11301         (fold_builtin_2): Do not fold sprintf.
11302         (fold_builtin_3): Likewise.
11303         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
11304         moved from builtins.c.
11305         (gimple_fold_builtin): Fold sprintf.
11306
11307 2014-08-14  Richard Biener  <rguenther@suse.de>
11308
11309         PR rtl-optimization/62079
11310         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
11311         run cleanup_cfg.
11312
11313 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
11314
11315         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
11316         current_function_decl.
11317
11318 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
11319
11320         * cgraph.c (cgraph_node::function_symbol): Fix wrong
11321         cgraph_function_node to cgraph_node::function_symbol
11322         refactoring.
11323
11324 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
11325
11326         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
11327         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
11328
11329 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
11330
11331         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
11332         warning.
11333
11334 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
11335
11336         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
11337         generator.
11338
11339 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
11340
11341         PR target/62025
11342         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
11343         any registers that are used in mem_insn.
11344
11345 2014-08-12  Steve Ellcey  <sellcey@mips.com>
11346
11347         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler. 
11348
11349 2014-08-12  Steve Ellcey  <sellcey@mips.com>
11350
11351         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
11352         (MULTILIB_DIRNAMES): Ditto.
11353         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
11354         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
11355         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
11356         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
11357         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
11358         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
11359
11360 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11361
11362         PR target/61413
11363         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
11364         of __ARM_SIZEOF_WCHAR_T.
11365
11366 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11367
11368         PR target/62098
11369         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
11370         Remove unnecessary attributes.
11371
11372 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
11373
11374         * internal-fn.c (init_internal_fns): Fix off-by-one.
11375
11376 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11377             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11378             Anna Tikhonova  <anna.tikhonova@intel.com>
11379             Ilya Tocar  <ilya.tocar@intel.com>
11380             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11381             Ilya Verbin  <ilya.verbin@intel.com>
11382             Kirill Yukhin  <kirill.yukhin@intel.com>
11383             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11384
11385         * config/i386/i386.c (standard_sse_constant_opcode): Use
11386         vpxord/vpternlog if avx512 is availible.
11387
11388 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11389
11390         PR middle-end/62103
11391         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
11392         bitfields, that is when size doesn't match the size of type or the
11393         size of the constructor.
11394
11395 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
11396
11397         * config/rs6000/constraints.md (wh constraint): New constraint,
11398         for FP registers if direct move is available.
11399         (wi constraint): New constraint, for VSX/FP registers that can
11400         handle 64-bit integers.
11401         (wj constraint): New constraint for VSX/FP registers that can
11402         handle 64-bit integers for direct moves.
11403         (wk constraint): New constraint for VSX/FP registers that can
11404         handle 64-bit doubles for direct moves.
11405         (wy constraint): Make documentation match implementation.
11406
11407         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
11408         scalar_in_vmx_p field to simplify tests of whether SFmode or
11409         DFmode can go in the Altivec registers.
11410         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
11411         (rs6000_setup_reg_addr_masks): Likewise.
11412         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
11413         field, and wh/wi/wj/wk constraints.
11414         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
11415         the wh/wi/wj/wk constraints.
11416         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
11417         upper registers, prefer VSX registers unless the operation is a
11418         memory operation with REG+OFFSET addressing.
11419
11420         * config/rs6000/vsx.md (VSr mode attribute): Add support for
11421         DImode.  Change SFmode to use ww constraint instead of d to allow
11422         SF registers in the upper registers.
11423         (VSr2): Likewise.
11424         (VSr3): Likewise.
11425         (VSr5): Fix thinko in comment.
11426         (VSa): New mode attribute that is an alternative to wa, that
11427         returns the VSX register class that a mode can go in, but may not
11428         be the preferred register class.
11429         (VS_64dm): New mode attribute for appropriate register classes for
11430         referencing 64-bit elements of vectors for direct moves and normal
11431         moves.
11432         (VS_64reg): Likewise.
11433         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
11434         register allocator to only registers the data type can handle.
11435         (vsx_le_perm_load_<mode>): Likewise.
11436         (vsx_le_perm_store_<mode>): Likewise.
11437         (vsx_xxpermdi2_le_<mode>): Likewise.
11438         (vsx_xxpermdi4_le_<mode>): Likewise.
11439         (vsx_lxvd2x2_le_<mode>): Likewise.
11440         (vsx_lxvd2x4_le_<mode>): Likewise.
11441         (vsx_stxvd2x2_le_<mode>): Likewise.
11442         (vsx_add<mode>3): Likewise.
11443         (vsx_sub<mode>3): Likewise.
11444         (vsx_mul<mode>3): Likewise.
11445         (vsx_div<mode>3): Likewise.
11446         (vsx_tdiv<mode>3_internal): Likewise.
11447         (vsx_fre<mode>2): Likewise.
11448         (vsx_neg<mode>2): Likewise.
11449         (vsx_abs<mode>2): Likewise.
11450         (vsx_nabs<mode>2): Likewise.
11451         (vsx_smax<mode>3): Likewise.
11452         (vsx_smin<mode>3): Likewise.
11453         (vsx_sqrt<mode>2): Likewise.
11454         (vsx_rsqrte<mode>2): Likewise.
11455         (vsx_tsqrt<mode>2_internal): Likewise.
11456         (vsx_fms<mode>4): Likewise.
11457         (vsx_nfma<mode>4): Likewise.
11458         (vsx_eq<mode>): Likewise.
11459         (vsx_gt<mode>): Likewise.
11460         (vsx_ge<mode>): Likewise.
11461         (vsx_eq<mode>_p): Likewise.
11462         (vsx_gt<mode>_p): Likewise.
11463         (vsx_ge<mode>_p): Likewise.
11464         (vsx_xxsel<mode>): Likewise.
11465         (vsx_xxsel<mode>_uns): Likewise.
11466         (vsx_copysign<mode>3): Likewise.
11467         (vsx_float<VSi><mode>2): Likewise.
11468         (vsx_floatuns<VSi><mode>2): Likewise.
11469         (vsx_fix_trunc<mode><VSi>2): Likewise.
11470         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
11471         (vsx_x<VSv>r<VSs>i): Likewise.
11472         (vsx_x<VSv>r<VSs>ic): Likewise.
11473         (vsx_btrunc<mode>2): Likewise.
11474         (vsx_b2trunc<mode>2): Likewise.
11475         (vsx_floor<mode>2): Likewise.
11476         (vsx_ceil<mode>2): Likewise.
11477         (vsx_<VS_spdp_insn>): Likewise.
11478         (vsx_xscvspdp): Likewise.
11479         (vsx_xvcvspuxds): Likewise.
11480         (vsx_float_fix_<mode>2): Likewise.
11481         (vsx_set_<mode>): Likewise.
11482         (vsx_extract_<mode>_internal1): Likewise.
11483         (vsx_extract_<mode>_internal2): Likewise.
11484         (vsx_extract_<mode>_load): Likewise.
11485         (vsx_extract_<mode>_store): Likewise.
11486         (vsx_splat_<mode>): Likewise.
11487         (vsx_xxspltw_<mode>): Likewise.
11488         (vsx_xxspltw_<mode>_direct): Likewise.
11489         (vsx_xxmrghw_<mode>): Likewise.
11490         (vsx_xxmrglw_<mode>): Likewise.
11491         (vsx_xxsldwi_<mode>): Likewise.
11492         (vsx_xscvdpspn): Tighten constraints to only use register classes
11493         the types use.
11494         (vsx_xscvspdpn): Likewise.
11495         (vsx_xscvdpspn_scalar): Likewise.
11496
11497         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
11498         wj, and wk constraints.
11499         (GPR_REG_CLASS_P): New helper macro for register classes targeting
11500         general purpose registers.
11501
11502         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
11503         direct moves.
11504         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
11505         DImode instead of wm.  Use wk constraint for direct move of DFmode
11506         instead of wm.
11507         (extendsidi2_lfiwax): Likewise.
11508         (lfiwax): Likewise.
11509         (lfiwzx): Likewise.
11510         (movdi_internal64): Likewise.
11511
11512         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
11513         wk constraints. Make the wy constraint documentation match them
11514         implementation.
11515
11516 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
11517
11518         Replacement of isl_int by isl_val
11519         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
11520         (compute_bounds_for_param): use isl_val instead of isl_int
11521         (compute_bounds_for_loop): likewise
11522         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
11523         (build_linearized_memory_access): use isl_val instead of isl_int
11524         (pdr_stride_in_loop): likewise
11525         * graphite-optimize-isl.c:
11526         (getPrevectorMap): use isl_val instead of isl_int
11527         * graphite-poly.c:
11528         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
11529         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
11530         (extern the_isl_ctx): declare
11531         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
11532         (extract_affine_gmp): likewise
11533         (wrap): likewise
11534         (build_loop_iteration_domains): likewise
11535         (add_param_constraints): likewise
11536
11537 2014-08-11  Richard Biener  <rguenther@suse.de>
11538
11539         PR tree-optimization/62075
11540         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
11541         handle uses in patterns.
11542
11543 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11544             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11545             Anna Tikhonova  <anna.tikhonova@intel.com>
11546             Ilya Tocar  <ilya.tocar@intel.com>
11547             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11548             Ilya Verbin  <ilya.verbin@intel.com>
11549             Kirill Yukhin  <kirill.yukhin@intel.com>
11550             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11551
11552         * common/config/i386/i386-common.c
11553         (OPTION_MASK_ISA_AVX512VL_SET): Define.
11554         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
11555         (ix86_handle_option): Handle OPT_mavx512vl.
11556         * config/i386/cpuid.h (bit_AVX512VL): Define.
11557         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
11558         set -mavx512vl accordingly.
11559         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11560         OPTION_MASK_ISA_AVX512VL.
11561         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
11562         (ix86_option_override_internal): Define PTA_AVX512VL, handle
11563         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
11564         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
11565         * config/i386/i386.h (TARGET_AVX512VL): Define.
11566         (TARGET_AVX512VL_P(x)): Ditto.
11567         * config/i386/i386.opt: Add mavx512vl.
11568
11569 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
11570
11571         PR tree-optimization/62073
11572         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
11573         a basic block.
11574
11575 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11576             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11577             Anna Tikhonova  <anna.tikhonova@intel.com>
11578             Ilya Tocar  <ilya.tocar@intel.com>
11579             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11580             Ilya Verbin  <ilya.verbin@intel.com>
11581             Kirill Yukhin  <kirill.yukhin@intel.com>
11582             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11583
11584         * common/config/i386/i386-common.c
11585         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
11586         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
11587         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
11588         (ix86_handle_option): Handle OPT_mavx512bw.
11589         * config/i386/cpuid.h (bit_AVX512BW): Define.
11590         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
11591         set -mavx512bw accordingly.
11592         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11593         OPTION_MASK_ISA_AVX512BW.
11594         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
11595         (ix86_option_override_internal): Define PTA_AVX512BW, handle
11596         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
11597         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
11598         * config/i386/i386.h (TARGET_AVX512BW): Define.
11599         (TARGET_AVX512BW_P(x)): Ditto.
11600         * config/i386/i386.opt: Add mavx512bw.
11601
11602 2014-08-11  Richard Biener  <rguenther@suse.de>
11603
11604         PR tree-optimization/62070
11605         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
11606         Remove SSA checking.
11607
11608 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
11609
11610         * asan.c (asan_check_flags): New enum.
11611         (build_check_stmt_with_calls): Removed function.
11612         (build_check_stmt): Split inlining logic to
11613         asan_expand_check_ifn.
11614         (instrument_derefs): Rename parameter.
11615         (instrument_mem_region_access): Rename parameter.
11616         (instrument_strlen_call): Likewise.
11617         (asan_expand_check_ifn): New function.
11618         (asan_instrument): Remove old code.
11619         (pass_sanopt::execute): Change handling of
11620         asan-instrumentation-with-call-threshold.
11621         (asan_clear_shadow): Fix formatting.
11622         (asan_function_start): Likewise.
11623         (asan_emit_stack_protection): Likewise.
11624         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
11625         Update description.
11626         * internal-fn.c (expand_ASAN_CHECK): New function.
11627         * internal-fn.def (ASAN_CHECK): New internal function.
11628         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
11629         Update description.
11630         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
11631         * tree.c: Small comment fix.
11632
11633 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
11634
11635         * gimple.c (gimple_call_fnspec): Support internal functions.
11636         (gimple_call_return_flags): Use const.
11637         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
11638         * internal-fn.def: Add fnspec information.
11639         * internal-fn.h (internal_fn_fnspec): New function.
11640         (init_internal_fns): Declare new function.
11641         * internal-fn.c (internal_fn_fnspec_array): New global variable.
11642         (init_internal_fns): New function.
11643         * tree-core.h: Update macro call.
11644         * tree.c (build_common_builtin_nodes): Initialize internal fns.
11645
11646 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
11647
11648         * lto-streamer.h (struct output_block::symbol): Change from
11649         struct symtab_node to plain symtab_node.
11650         (referenced_from_this_partition_p): Change first parameter
11651         from struct symtab_node to plain symtab_node.
11652
11653 2014-08-10  Marek Polacek  <polacek@redhat.com>
11654
11655         PR c/51849
11656         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
11657
11658 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
11659
11660         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
11661         DECL correctly; do not give up on types in static storage.
11662
11663 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
11664
11665         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
11666
11667 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
11668
11669         * graphite-isl-ast-to-gimple.c:
11670         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
11671
11672         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
11673
11674 2014-08-08  Guozhi Wei  <carrot@google.com>
11675
11676         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
11677
11678 2014-08-08  Cary Coutant  <ccoutant@google.com>
11679
11680         * dwarf2out.c (get_skeleton_type_unit): Remove.
11681         (output_skeleton_debug_sections): Remove skeleton type units.
11682         (output_comdat_type_unit): Likewise.
11683         (dwarf2out_finish): Likewise.
11684
11685 2014-08-07  Yi Yang  <ahyangyi@google.com>
11686
11687         * predict.c (expr_expected_value_1): Remove the redundant assignment.
11688
11689 2014-08-08  Richard Biener  <rguenther@suse.de>
11690
11691         * lto-streamer.h (struct lto_input_block): Make it a class
11692         with a constructor.
11693         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
11694         (struct lto_function_header, struct lto_simple_header,
11695         struct lto_simple_header_with_strings,
11696         struct lto_decl_header, struct lto_function_header): Make
11697         a simple inheritance hieararchy.  Remove unused fields.
11698         (struct lto_asm_header): Remove.
11699         * lto-streamer-out.c (produce_asm): Adjust.
11700         (lto_output_toplevel_asms): Likewise.
11701         (produce_asm_for_decls): Likewise.
11702         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
11703         * data-streamer-in.c (string_for_index): Likewise.
11704         * ipa-inline-analysis.c (inline_read_section): Likewise.
11705         * ipa-prop.c (ipa_prop_read_section): Likewise.
11706         (read_replacements_section): Likewise.
11707         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
11708         * lto-section-in.c (lto_create_simple_input_block): Likewise.
11709         (lto_destroy_simple_input_block): Likewise.
11710         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
11711         (lto_input_toplevel_asms): Likewise.
11712
11713 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11714             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11715             Anna Tikhonova  <anna.tikhonova@intel.com>
11716             Ilya Tocar  <ilya.tocar@intel.com>
11717             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11718             Ilya Verbin  <ilya.verbin@intel.com>
11719             Kirill Yukhin  <kirill.yukhin@intel.com>
11720             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11721
11722         * common/config/i386/i386-common.c
11723         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
11724         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
11725         (ix86_handle_option): Handle OPT_mavx512dq.
11726         * config/i386/cpuid.h (bit_AVX512DQ): Define.
11727         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
11728         set -mavx512dq accordingly.
11729         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11730         OPTION_MASK_ISA_AVX512DQ.
11731         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
11732         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
11733         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
11734         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
11735         * config/i386/i386.h (TARGET_AVX512DQ): Define.
11736         (TARGET_AVX512DQ_P(x)): Ditto.
11737         * config/i386/i386.opt: Add mavx512dq.
11738
11739 2014-08-08  Richard Biener  <rguenther@suse.de>
11740
11741         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
11742         target_percent, target_percent_s): Export.
11743         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
11744         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
11745         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
11746         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
11747         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
11748         Move to gimple-fold.c.
11749         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
11750         strcat and strcpy.
11751         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
11752         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
11753         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
11754         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
11755         (rewrite_call_expr_array): Remove.
11756         (fold_builtin_sprintf_chk): Likewise.
11757         (fold_builtin_snprintf_chk): Likewise.
11758         (fold_builtin_varargs): Remove handling of sprintf_chk,
11759         vsprintf_chk, snprintf_chk and vsnprintf_chk.
11760         (gimple_fold_builtin_sprintf_chk): Remove.
11761         (gimple_fold_builtin_snprintf_chk): Likewise.
11762         (gimple_fold_builtin_varargs): Likewise.
11763         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
11764         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
11765         * gimple.c (gimple_seq_add_seq_without_update): New function.
11766         * gimple.h (gimple_seq_add_seq_without_update): Declare.
11767         * gimple-fold.c: Include output.h.
11768         (gsi_replace_with_seq_vops): New function, split out from ...
11769         (gimplify_and_update_call_from_tree): ... here.
11770         (replace_call_with_value): New function.
11771         (replace_call_with_call_and_fold): Likewise.
11772         (var_decl_component_p): Moved from builtins.c.
11773         (gimple_fold_builtin_memory_op): Moved from builtins.c
11774         fold_builtin_memory_op and rewritten to GIMPLE.
11775         (gimple_fold_builtin_memset): Likewise.
11776         (gimple_fold_builtin_strcpy): Likewise.
11777         (gimple_fold_builtin_strncpy): Likewise.
11778         (gimple_fold_builtin_strcat): Likewise.
11779         (gimple_fold_builtin_fputs): Likewise.
11780         (gimple_fold_builtin_memory_chk): Likewise.
11781         (gimple_fold_builtin_stxcpy_chk): Likewise.
11782         (gimple_fold_builtin_stxncpy_chk): Likewise.
11783         (gimple_fold_builtin_snprintf_chk): Likewise.
11784         (gimple_fold_builtin_sprintf_chk): Likewise.
11785         (gimple_fold_builtin_strlen): New function.
11786         (gimple_fold_builtin_with_strlen): New function split out from
11787         gimple_fold_builtin.
11788         (gimple_fold_builtin): Change signature and handle
11789         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
11790         here.  Call gimple_fold_builtin_with_strlen.
11791         (gimple_fold_call): Adjust.
11792
11793 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
11794
11795         * calls.c (precompute_arguments): Check
11796          promoted_for_signed_and_unsigned_p and set the promoted mode.
11797         (promoted_for_signed_and_unsigned_p): New function.
11798         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
11799         and set the promoted mode.
11800         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
11801         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
11802         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
11803
11804
11805 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
11806
11807         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
11808         instead of SUBREG_PROMOTED_UNSIGNED_SET.
11809         (expand_call): Likewise.
11810         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
11811         to get promoted mode.
11812         * combine.c (record_promoted_value): Skip > 0 comparison with
11813         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
11814         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
11815         of SUBREG_PROMOTED_UNSIGNED_P.
11816         (convert_modes): Likewise.
11817         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
11818         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
11819         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
11820         SUBREG_PROMOTED_UNSIGNED_SET.
11821         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
11822         instead of SUBREG_PROMOTED_UNSIGNED_SET.
11823         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
11824         SUBREG_PROMOTED_SET.
11825         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
11826         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
11827         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
11828         of SUBREG_PROMOTED_UNSIGNED_P.
11829         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
11830         (SUBREG_PROMOTED_SET): New define.
11831         (SUBREG_PROMOTED_GET): Likewise.
11832         (SUBREG_PROMOTED_SIGN): Likewise.
11833         (SUBREG_PROMOTED_SIGNED_P): Likewise.
11834         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
11835         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
11836         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
11837         instead of SUBREG_PROMOTED_UNSIGNED_GET.
11838         (nonzero_bits1): Skip > 0 comparison with the results as
11839         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
11840         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
11841         of !SUBREG_PROMOTED_UNSIGNED_P.
11842         * simplify-rtx.c (simplify_unary_operation_1): Use new
11843         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
11844         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
11845         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
11846         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
11847
11848 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
11849
11850         * ipa-devirt.c: Include gimple-pretty-print.h
11851         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
11852         further tests.
11853         (decl_maybe_in_construction_p): Fix conditional on cdtor check
11854         (get_polymorphic_call_info): Fix return value
11855         (type_change_info): New sturcture based on ipa-prop
11856         variant.
11857         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
11858         based on ipa-prop variant.
11859         (extr_type_from_vtbl_ptr_store): New function
11860         based on ipa-prop variant.
11861         (record_known_type): New function.
11862         (check_stmt_for_type_change): New function.
11863         (get_dynamic_type): New function.
11864         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
11865         * tree-ssa-pre.c: ipa-utils.h
11866         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
11867         machinery; sanity check with ipa-prop devirtualization.
11868         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
11869         polymorphic flag.
11870
11871 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
11872
11873         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
11874         * alias.c, cfgexpand.c, cgraphbuild.c,
11875         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
11876         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
11877         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
11878         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
11879         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
11880         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
11881         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
11882         dse.c, except.c, gengtype.c, gimple-expr.c,
11883         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
11884         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
11885         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
11886         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
11887         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
11888         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
11889         pointer-set.h.
11890         * pointer-set.c: Remove file.
11891         * pointer-set.h: Remove file.
11892
11893 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11894
11895         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
11896         * config/arm/types.md (f_sels, f_seld): Delete.
11897
11898 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11899
11900         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
11901         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
11902         (aarch64_movdi_<mode>high): Likewise.
11903         (aarch64_mov<mode>high_di): Likewise.
11904         (aarch64_movdi_<mode>low): Likewise.
11905         (aarch64_mov<mode>low_di): Likewise.
11906         (aarch64_movtilow_tilow): Likewise.
11907         Add comment explaining usage of fp,simd attributes and of
11908         TARGET_FLOAT and TARGET_SIMD.
11909
11910 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
11911             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11912
11913         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
11914         Use MOVN when one of the half-words is 0xffff.
11915
11916 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
11917
11918         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
11919
11920 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
11921
11922         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
11923         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
11924         (rfs_str): String corresponding to RFS_* constants.
11925         (rank_for_schedule_stats_t): New typedef.
11926         (rank_for_schedule_stats): New static variable.
11927         (rfs_result): New static function.
11928         (rank_for_schedule): Track statistics for deciding heuristics.
11929         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
11930         static functions.
11931         (ready_sort): Use them for debug printouts.
11932         (schedule_block): Init statistics state.  Print statistics on
11933         rank_for_schedule decisions.
11934
11935 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
11936
11937         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
11938
11939 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
11940
11941         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
11942         constraint.
11943
11944 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
11945
11946         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
11947         function to not conflict.
11948         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
11949         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
11950         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
11951         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
11952         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
11953         of pointer_map.
11954
11955 2014-08-07  Marek Polacek  <polacek@redhat.com>
11956
11957         * fold-const.c (fold_binary_loc): Add folding of
11958         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
11959
11960 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
11961
11962         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
11963         instead of type size.
11964         (ASM_FINISH_DECLARE_OBJECT): Likewise.
11965
11966 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
11967
11968         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
11969         (*thumb1_movqi_insn): Likewise.
11970         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
11971
11972 2014-08-07  Tom de Vries  <tom@codesourcery.com>
11973
11974         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
11975         (glibc_2_11_or_earlier): Remove effective-target keywords.
11976
11977 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
11978
11979         * config/arm/arm.c (bdesc_2arg): Fix typo.
11980         (arm_atomic_assign_expand_fenv): Remove The default implementation.
11981
11982 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
11983
11984         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
11985
11986 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
11987
11988         PR debug/61923
11989         * haifa-sched.c (advance_one_cycle): Fix dump.
11990         (schedule_block): Don't advance cycle if we are already at the
11991         beginning of the cycle.
11992
11993 2014-08-06  Martin Jambor  <mjambor@suse.cz>
11994
11995         PR ipa/61393
11996         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
11997
11998 2014-08-06  Richard Biener  <rguenther@suse.de>
11999
12000         PR lto/62034
12001         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
12002         SCCs here.
12003         (lto_input_tree): Pop SCCs here.
12004
12005 2014-08-06  Richard Biener  <rguenther@suse.de>
12006
12007         PR tree-optimization/61320
12008         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
12009         handle misaligned loads.
12010
12011 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
12012
12013         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
12014         (aarch64_expand_vec_perm_const): Check for dup before zip.
12015
12016 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12017
12018         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
12019         CONST_INT_P instead of GET_CODE and compare.
12020         (aarch64_select_cc_mode): Likewise.
12021         (aarch64_print_operand): Likewise.
12022         (aarch64_rtx_costs): Likewise.
12023         (aarch64_simd_valid_immediate): Likewise.
12024         (aarch64_simd_check_vect_par_cnst_half): Likewise.
12025         (aarch64_simd_emit_pair_result_insn): Likewise.
12026
12027 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
12028
12029         * gdbhooks.py (find_gcc_source_dir): New helper function.
12030         (class PassNames): New class, locating and parsing passes.def.
12031         (class BreakOnPass): New command "break-on-pass".
12032
12033 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
12034
12035         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
12036         getting olde.
12037
12038 2014-08-05  Richard Biener  <rguenther@suse.de>
12039
12040         PR rtl-optimization/61672
12041         * emit-rtl.h (mem_attrs_eq_p): Declare.
12042         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
12043         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
12044         * cfgcleanup.c (merge_memattrs): Likewise.
12045         Include emit-rtl.h.
12046
12047 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12048
12049         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
12050         rather than singleton vectors.
12051         (vqdmlsls_lane_s32): Likewise.
12052
12053 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12054
12055         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
12056         Use VSDQ_HSI mode iterator.
12057         (aarch64_sqrdmulh_laneq<mode>): Likewise.
12058         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
12059         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
12060         Use BUILTIN_VDQHS macro.
12061         (sqrdmulh_laneq): Likewise.
12062         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
12063         (vqdmlals_laneq_s32): Likewise.
12064         (vqdmlslh_laneq_s16): Likewise.
12065         (vqdmlsls_laneq_s32): Likewise.
12066         (vqdmulhh_laneq_s16): Likewise.
12067         (vqdmulhs_laneq_s32): Likewise.
12068         (vqrdmulhh_laneq_s16): Likewise.
12069         (vqrdmulhs_laneq_s32): Likewise.
12070
12071 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12072
12073         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
12074         (vmuld_laneq_f64): Likewise.
12075         (vmuls_laneq_f32): Likewise.
12076         (vmul_n_f64): Likewise.
12077         (vmuld_lane_f64): Reimplement in C.
12078         (vmuls_lane_f32): Likewise.
12079
12080 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12081
12082         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
12083         to reservation.
12084         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
12085
12086 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12087
12088         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
12089         (rbitsi2): Likewise.
12090         (*arm_rev): Set predicable and predicable_short_it attributes.
12091
12092 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12093
12094         * convert.c (convert_to_integer): Guard transformation to lrint by
12095         -fno-math-errno.
12096
12097 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
12098
12099         * config/aarch64/aarch64-builtins.c
12100         (aarch64_simd_builtin_type_mode): Delete.
12101         (v8qi_UP): Remap to V8QImode.
12102         (v4hi_UP): Remap to V4HImode.
12103         (v2si_UP): Remap to V2SImode.
12104         (v2sf_UP): Remap to V2SFmode.
12105         (v1df_UP): Remap to V1DFmode.
12106         (di_UP): Remap to DImode.
12107         (df_UP): Remap to DFmode.
12108         (v16qi_UP):V16QImode.
12109         (v8hi_UP): Remap to V8HImode.
12110         (v4si_UP): Remap to V4SImode.
12111         (v4sf_UP): Remap to V4SFmode.
12112         (v2di_UP): Remap to V2DImode.
12113         (v2df_UP): Remap to V2DFmode.
12114         (ti_UP): Remap to TImode.
12115         (ei_UP): Remap to EImode.
12116         (oi_UP): Remap to OImode.
12117         (ci_UP): Map to CImode.
12118         (xi_UP): Remap to XImode.
12119         (si_UP): Remap to SImode.
12120         (sf_UP): Remap to SFmode.
12121         (hi_UP): Remap to HImode.
12122         (qi_UP): Remap to QImode.
12123         (aarch64_simd_builtin_datum): Make mode a machine_mode.
12124         (VAR1): Build builtin name.
12125         (aarch64_init_simd_builtins): Remove dead code.
12126
12127 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
12128
12129         * graphite-isl-ast-to-gimple.c:
12130         (set_options): New function.
12131         (scop_to_isl_ast): Add calling of set_options.
12132
12133 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
12134
12135         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
12136         (analyze_iv_to_split_insn): Don't initialize them.
12137         (get_ivts_expr): Removed.
12138         (allocate_basic_variable, insert_base_initialization): Use
12139         SET_SRC instead of *get_ivts_expr.
12140         (split_iv): Use &SET_SRC instead of get_ivts_expr.
12141
12142 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
12143
12144         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
12145         (translate_isl_ast_for_loop): Add checking of the
12146         flag_loop_parallelize_all.
12147         (ast_build_before_for): New function.
12148         (scop_to_isl_ast): Add checking of the
12149         flag_loop_parallelize_all.
12150         * graphite-dependences.c: Move the defenition of the
12151         scop_get_dependences from graphite-optimize-isl.c to this file.
12152         (apply_schedule_on_deps): Add checking of the ux's emptiness.
12153         (carries_deps): Add checking of the x's value.
12154         * graphite-optimize-isl.c: Move the defenition of the
12155         scop_get_dependences to graphite-dependences.c.
12156         * graphite-poly.h: Add declarations of scop_get_dependences
12157         and carries_deps.
12158
12159 2014-08-04  Rohit  <rohitarulraj@freescale.com>
12160
12161         PR target/60102
12162         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
12163         names.
12164         (alt_reg_names): Likewise.
12165         (rs6000_dwarf_register_span): For SPE high registers, replace
12166         dwarf register numbers with GCC hard register numbers.
12167         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
12168         (rs6000_dbx_register_number): For SPE high registers, return dwarf
12169         register number for the corresponding GCC hard register number.
12170         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
12171         newly added GCC hard register numbers for SPE high registers.
12172         (DWARF_FRAME_REGISTERS):  Likewise.
12173         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
12174         (DWARF_FRAME_REGNUM): Likewise.
12175         (FIXED_REGISTERS): Likewise.
12176         (CALL_USED_REGISTERS): Likewise.
12177         (CALL_REALLY_USED_REGISTERS): Likewise.
12178         (REG_ALLOC_ORDER): Likewise.
12179         (enum reg_class): Likewise.
12180         (REG_CLASS_NAMES): Likewise.
12181         (REG_CLASS_CONTENTS): Likewise.
12182         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
12183
12184 2014-08-04  Richard Biener  <rguenther@suse.de>
12185
12186         * gimple-fold.h (gimple_fold_builtin): Remove.
12187         * gimple-fold.c (gimple_fold_builtin): Make static.
12188         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
12189         fold_stmt, not gimple_fold_builtin.
12190
12191 2014-08-04  Martin Liska <mliska@suse.cz>
12192
12193         * cgraph.h (csi_end_p): Removed.
12194         (csi_next): Likewise.
12195         (csi_node): Likewise.
12196         (csi_start): Likewise.
12197         (cgraph_node_in_set_p): Likewise.
12198         (cgraph_node_set_size): Likewise.
12199         (vsi_end_p): Likewise.
12200         (vsi_next): Likewise.
12201         (vsi_node): Likewise.
12202         (vsi_start): Likewise.
12203         (varpool_node_set_size): Likewise.
12204         (cgraph_node_set_nonempty_p): Likewise.
12205         (varpool_node_set_nonempty_p): Likewise.
12206         * cgraphunit.c (cgraph_process_new_functions): vec replaces
12207         cgraph_node_set.
12208         * ipa-inline-transform.c: Likewise.
12209         * ipa-utils.c (cgraph_node_set_new): Removed.
12210         (cgraph_node_set_add): Likewise.
12211         (cgraph_node_set_remove): Likewise.
12212         (cgraph_node_set_find): Likewise.
12213         (dump_cgraph_node_set): Likewise.
12214         (debug_cgraph_node_set): Likewise.
12215         (free_cgraph_node_set): Likewise.
12216         (varpool_node_set_new): Likewise.
12217         (varpool_node_set_add): Likewise.
12218         (varpool_node_set_remove): Likewise.
12219         (varpool_node_set_find): Likewise.
12220         (dump_varpool_node_set): Likewise.
12221         (free_varpool_node_set): Likewise.
12222         (debug_varpool_node_set): Likewise.
12223         * tree-emutls.c (struct tls_var_data):
12224         (emutls_index): Removed.
12225         (emutls_decl): Likewise.
12226         (gen_emutls_addr): Function implementation uses newly added
12227         hash_map<varpool_node *, tls_var_data>.
12228         (clear_access_vars): Likewise.
12229         (create_emultls_var): Likewise.
12230         (ipa_lower_emutls): Likewise.
12231         (reset_access): New function.
12232
12233 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
12234
12235         * config/i386/i386.c (ix86_option_override_internal): Add
12236         PTA_RDRND and PTA_MOVBE for bdver4.
12237
12238 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12239             James Greenhalgh  <james.greenhalgh@arm.com>
12240
12241         * doc/md.texi (clrsb): Document.
12242         (clz): Change reference to x into operand 1.
12243         (ctz): Likewise.
12244         (popcount): Likewise.
12245
12246 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12247
12248         PR target/61713
12249         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
12250         move to subtarget in serial version if result is ignored.
12251
12252 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12253             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12254
12255         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
12256         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
12257         (sched_analyze_insn): Update use of try_group_insn to
12258         sched_macro_fuse_insns.
12259         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
12260         arguments that are not conditional jumps.
12261
12262 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
12263
12264         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
12265         family information. Handle BTVER2 cpu with cpuid family value.
12266
12267 2014-08-04  Tom de Vries  <tom@codesourcery.com>
12268
12269         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
12270         (glibc_2_11_or_earlier): Document effective-target keywords.
12271
12272 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
12273
12274         * ipa-devirt.c (odr_type_warn_count): Add type.
12275         (possible_polymorphic_call_targets): Set it.
12276         (ipa_devirt): Use it.
12277
12278 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
12279
12280         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
12281         Document.
12282         * ipa-devirt.c: Include hash-map.h
12283         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
12284         (clear_speculation): Break out of ...
12285         (get_class_context): ... here; speed up handling obviously useless
12286         speculations.
12287         (odr_type_warn_count, decl_warn_count): New structures.
12288         (final_warning_record): New structure.
12289         (final_warning_records): New static variable.
12290         (possible_polymorphic_call_targets): Cleanup handling of
12291         speculative info; do not build speculation when user do not care;
12292         record info about warnings when asked for.
12293         (add_decl_warning): New function.
12294         (type_warning_cmp): New function.
12295         (decl_warning_cmp): New function.
12296         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
12297         (gate): Enable pass when warnings are requested.
12298         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
12299         options.
12300
12301 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
12302
12303         * hash-map.h (default_hashmap_traits::mark_key_deleted):
12304         Fix cast.
12305         (hash_map::remove): New method.
12306         (hash_map::traverse): New method.
12307         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
12308         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
12309         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
12310         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
12311         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
12312         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
12313         pointer_map.
12314
12315 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
12316
12317         * hash-set.h: new File.
12318         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
12319         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
12320         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
12321         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
12322         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
12323         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
12324         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
12325         varpool.c: Use hash_set instead of pointer_set.
12326
12327 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
12328
12329         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
12330
12331 2014-08-01  Jiong Wang <jiong.wang@arm.com>
12332
12333         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
12334         for frame access when strict_p is false.
12335
12336 2014-08-01  Renlin Li <renlin.li@arm.com>
12337 2014-08-01  Jiong Wang <jiong.wang@arm.com>
12338
12339         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
12340         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
12341         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
12342         Declaration.
12343         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
12344         predicate.
12345         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
12346         aarch64_mem_pair_offset.
12347
12348 2014-08-01  Jiong Wang <jiong.wang@arm.com>
12349
12350         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
12351         offset.
12352         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
12353         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
12354
12355 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
12356
12357         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
12358
12359 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
12360
12361         PR regression/61510
12362         * cgraphunit.c (analyze_functions): Use get_create rather than get
12363         for decls which are clones of abstract functions.
12364
12365 2014-08-01  Martin Liska  <mliska@suse.cz>
12366
12367         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
12368         * ipa-prop.h (count_formal_params): Global function created from static.
12369         * ipa-prop.c (count_formal_params): Likewise.
12370         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
12371         profiles for semantically equivalent functions.
12372         * passes.c (do_per_function): If we load body of a function
12373         during WPA, this condition should behave same.
12374         * varpool.c (ctor_for_folding): More tolerant assert for variable
12375         aliases created during WPA.
12376
12377 2014-08-01  Martin Liska  <mliska@suse.cz>
12378
12379         * doc/invoke.texi (Options That Control Optimization): Documentation
12380         for -foptimize-strlen introduced. Optimization levels default options
12381         fixed.
12382
12383 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
12384
12385         * opts.c (common_handle_option): Handle -fsanitize=alignment.
12386         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
12387         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
12388         type to bool.
12389         * stor-layout.h (min_align_of_type): New prototype.
12390         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
12391         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
12392         check.
12393         * ubsan.c: Include builtins.h.
12394         (ubsan_expand_bounds_ifn): Change return type to bool,
12395         always return true.
12396         (ubsan_expand_null_ifn): Change return type to bool, change
12397         argument to gimple_stmt_iterator *.  Handle both null and alignment
12398         sanitization, take type from ckind argument's type rather than
12399         first argument.
12400         (instrument_member_call): Removed.
12401         (instrument_mem_ref): Remove t argument, add mem and base arguments.
12402         Handle both null and alignment sanitization, don't say whole
12403         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
12404         call instead of 2 argument.
12405         (instrument_null): Adjust instrument_mem_ref caller.  Don't
12406         instrument calls here.
12407         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
12408         like SANITIZE_NULL.
12409         * stor-layout.c (min_align_of_type): New function.
12410         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
12411         Or it into SANITIZE_UNDEFINED.
12412         * doc/invoke.texi (-fsanitize=alignment): Document.
12413
12414 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12415
12416         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
12417
12418 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12419
12420         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
12421         inchash.
12422         (vn_reference_compute_hash): Dito.
12423         (vn_nary_op_compute_hash): Dito.
12424         (vn_phi_compute_hash): Dito.
12425         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
12426
12427 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12428
12429         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
12430         Rename to inchash:add_expr_commutative. Convert to inchash.
12431         (iterative_hash_hashable_expr): Rename to
12432         inchash:add_hashable_expr. Convert to inchash.
12433         (avail_expr_hash): Dito.
12434
12435 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12436
12437         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
12438         Convert to inchash.
12439
12440 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12441
12442         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
12443
12444 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12445
12446         * Makefile.in (OBJS): Add rtlhash.o
12447         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
12448         (loc_checksum): Dito.
12449         (loc_checksum_ordered): Dito.
12450         (hash_loc_operands): Dito.
12451         (hash_locs): Dito.
12452         (hash_loc_list): Dito.
12453         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
12454         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
12455         * rtlhash.c: New file.
12456         * rtlhash.h: New file.
12457
12458 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12459
12460         * inchash.h (inchash): Change inchash class to namespace.
12461         (class hash): ... Rename from inchash.
12462         (add_object): Move from macro to class template.
12463         * lto-streamer-out.c (hash_tree): Change inchash
12464         to inchash::hash.
12465         * tree.c (build_type_attribute_qual_variant): Dito.
12466         (type_hash_list): Dito.
12467         (attribute_hash_list): Dito.
12468         (iterative_hstate_expr): Rename to inchash::add_expr
12469         (build_range_type_1): Change inchash to inchash::hash
12470         and use hash::add_expr.
12471         (build_array_type_1): Dito.
12472         (build_function_type): Dito
12473         (build_method_type_directly): Dito.
12474         (build_offset_type): Dito.
12475         (build_complex_type): Dito.
12476         (make_vector_type): Dito.
12477         * tree.h (iterative_hash_expr): Dito.
12478
12479 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
12480
12481         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
12482
12483 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
12484
12485         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
12486         correct alphabetical position.
12487         (vpaddd_f64): Rewrite using builtins.
12488         (vpaddd_s64): Move to correct alphabetical position.
12489         (vpaddd_u64): New.
12490
12491 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
12492
12493         PR target/61844
12494         * config/sh/sh.c (sh_legitimate_address_p,
12495         sh_legitimize_reload_address): Handle reg+reg address modes when
12496         ALLOW_INDEXED_ADDRESS is false.
12497         * config/sh/predicates.md (general_movsrc_operand,
12498         general_movdst_operand): Likewise.
12499
12500 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
12501
12502         * config/aarch64/aarch64-builtins.c
12503         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
12504         BYTES_BIG_ENDIAN.
12505
12506 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
12507
12508         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
12509         the generated mask based on BYTES_BIG_ENDIAN.
12510         (aarch64_simd_check_vect_par_cnst_half): New.
12511         * config/aarch64/aarch64-protos.h
12512         (aarch64_simd_check_vect_par_cnst_half): New.
12513         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
12514         the check out to aarch64_simd_check_vect_par_cnst_half.
12515         (vect_par_cnst_lo_half): Likewise.
12516         * config/aarch64/aarch64-simd.md
12517         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
12518         (move_hi_quad_<mode>): Always generate a low mask.
12519
12520 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
12521
12522         * doc/invoke.texi (AVR Options): Add documentation about
12523         __AVR_DEVICE_NAME__ built-in macro.
12524
12525 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
12526
12527         PR target/61948
12528         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
12529         constraints are satisfied.
12530         (<shift>di3_neon): Likewise.
12531
12532 2014-07-31  Richard Biener  <rguenther@suse.de>
12533
12534         PR tree-optimization/61964
12535         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
12536         by structural equality.
12537
12538 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
12539
12540         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
12541         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
12542         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
12543         New enums.
12544         * gcc.c (sanitize_spec_function): Support new option.
12545         (SANITIZER_SPEC): Remove now redundant check.
12546         * opts.c (common_handle_option): Support new option.
12547         (finish_options): Check for incompatibilities.
12548         * toplev.c (process_options): Split userspace-specific checks.
12549
12550 2014-07-31  Richard Biener  <rguenther@suse.de>
12551
12552         * lto-streamer.h (struct output_block): Remove global.
12553         (struct data_in): Remove labels, num_named_labels and
12554         num_unnamed_labels.
12555         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
12556         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
12557
12558 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
12559
12560         PR c++/60517
12561         * common.opt (-Wreturn-local-addr): Moved from c.opt.
12562         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
12563         (isolate_path): New argument to avoid inserting a trap.
12564         (find_implicit_erroneous_behaviour): Handle returning the address
12565         of a local variable.
12566         (find_explicit_erroneous_behaviour): Likewise.
12567
12568 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
12569
12570         PR lto/61868
12571         * toplev.c (init_random_seed): Move piece of code never called to
12572         set_random_seed.
12573         (set_random_seed): see above.
12574
12575 2014-07-31  Tom de Vries  <tom@codesourcery.com>
12576
12577         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
12578
12579 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
12580
12581         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
12582         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
12583
12584 2014-07-31  Richard Biener  <rguenther@suse.de>
12585
12586         * data-streamer.h (streamer_write_data_stream): Declare here,
12587         renamed from ...
12588         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
12589         * lto-cgraph.c (lto_output_node): Adjust.
12590         (lto_output_varpool_node): Likewise.
12591         * data-streamer-out.c (streamer_string_index): Likewise.
12592         (streamer_write_data_stream, lto_append_block): Move from ...
12593         * lto-section-out.c (lto_output_data_stream,
12594         lto_append_block): ... here.
12595
12596 2014-07-30  Mike Stump  <mikestump@comcast.net>
12597
12598         * configure.ac: Also check for popen.
12599         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
12600         * configure: Regenerate.
12601         * config.in:  Regenerate.
12602
12603 2014-07-30  Martin Jambor  <mjambor@suse.cz>
12604
12605         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
12606         parameter to gimple.
12607
12608 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12609
12610         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
12611         address as second parameter to __tpf_eh_return routine.
12612
12613 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
12614
12615         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
12616         Thumb2.
12617
12618 2014-07-30  Tom Tromey  <tromey@redhat.com>
12619
12620         PR c/59855
12621         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
12622         * doc/extend.texi (Type Attributes): Document designated_init
12623         attribute.
12624
12625 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
12626
12627         * graphite-isl-ast-to-gimple.c:
12628         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
12629         (gcc_expression_from_isl_expression): Pass type to
12630         gcc_expression_from_isl_ast_expr_id.
12631
12632 2014-07-30  Richard Biener  <rguenther@suse.de>
12633
12634         * lto-streamer.h (lto_write_data): New function.
12635         * langhooks.c (lhd_append_data): Do not free block.
12636         * lto-section-out.c (lto_write_data): New function writing
12637         raw data to the current section.
12638         (lto_write_stream): Adjust for langhook semantic change.
12639         (lto_destroy_simple_output_block): Write header directly.
12640         * lto-opts.c (lto_write_options): Write options directly.
12641         * lto-streamer-out.c (produce_asm): Write heaeder directly.
12642         (lto_output_toplevel_asms): Likewise.
12643         (copy_function_or_variable): Copy data directly.
12644         (write_global_references): Output index table directly.
12645         (lto_output_decl_state_refs): Likewise.
12646         (write_symbol): Write data directly.
12647         (produce_symtab): Adjust.
12648         (produce_asm_for_decls): Output header and refs directly.
12649
12650 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
12651
12652         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
12653         to speculative_targets
12654         (get_class_context): Fix handling of contextes without outer type;
12655         avoid matching non-polymorphic types in LTO.
12656         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
12657         parameter to speculative_targetsp; handle speculation.
12658         (dump_possible_polymorphic_call_targets): Update dumping.
12659
12660 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
12661
12662         * common.opt (Wodr): Enable by default.
12663
12664 2014-07-29  Olivier Hainque  <hainque@adacore.com>
12665
12666         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
12667
12668 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
12669
12670         PR bootstrap/61914
12671         * gengtype.c (strtoken): New function.
12672         (create_user_defined_type): Replace strtok with strtoken.
12673
12674 2014-07-29  Nathan Sidwell  <nathan@acm.org>
12675
12676         * gcov-io.c (gcov_var): Make hidden.
12677         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
12678         (gcov_do_dump): Declare.
12679         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
12680
12681 2014-07-29  Martin Jambor  <mjambor@suse.cz>
12682
12683         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
12684         parameter to gimple.
12685         (sra_modify_assign): Likewise.
12686
12687 2014-07-29  Richard Biener  <rguenther@suse.de>
12688
12689         PR middle-end/52478
12690         * expr.c (expand_expr_real_2): Revert last change.
12691
12692 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
12693
12694         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
12695         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
12696         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
12697         call.
12698         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
12699         (contains_type_p): Forward declare.
12700         (polymorphic_call_target_hasher::hash): Hash speculative info.
12701         (polymorphic_call_target_hasher::equal): Compare speculative info.
12702         (get_class_context): Handle speuclation.
12703         (contains_type_p): Update.
12704         (get_polymorphic_call_info_for_decl): Update.
12705         (walk_ssa_copies): Break out from ...
12706         (get_polymorphic_call_info): ... here; set speculative context
12707         before giving up.
12708         * ipa-prop.c (ipa_write_indirect_edge_info,
12709         ipa_read_indirect_edge_info): Stream speculative context.
12710         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
12711         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
12712         SPECULATIVE_MAYBE_DERIVED_TYPE).
12713         (possible_polymorphic_call_targets overriders): Update.
12714         (dump_possible_polymorphic_call_targets overriders): Update.
12715         (dump_possible_polymorphic_call_target_p overriders): Update.
12716
12717 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
12718
12719         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
12720         ipa-devirt path; fix thinko there.
12721
12722 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
12723
12724         * config/i386/i386.c (ix86_return_in_memory): Replace one
12725         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
12726
12727 2014-07-28  Marek Polacek  <polacek@redhat.com>
12728
12729         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
12730
12731 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
12732
12733         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
12734         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
12735         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
12736         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
12737         (USE_LD_AS_NEEDED): Likewise.
12738         (ASM_APP_ON): Likewise.
12739         (ASM_APP_OFF): Likewise.
12740         (TARGET_POSIX_IO): Likewise.
12741         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
12742         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
12743         (USE_LD_AS_NEEDED): Likewise.
12744         (ASM_APP_ON): Likewise.
12745         (ASM_APP_OFF): Likewise.
12746         (TARGET_POSIX_IO): Likewise.
12747
12748 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
12749
12750         PR middle-end/61734
12751         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
12752         operators other than the equality operators.
12753
12754 2014-07-28  Richard Biener  <rguenther@suse.de>
12755
12756         PR middle-end/52478
12757         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
12758         sure to register SImode ones, not only >= word_mode ones.
12759         * expr.c (expand_expr_real_2): When expanding -ftrapv
12760         binops do not use OPTAB_LIB_WIDEN.
12761
12762 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
12763
12764         PR middle-end/61919
12765         * tree-outof-ssa.c (insert_partition_copy_on_edge)
12766         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
12767         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
12768         inserting them in the insn stream.
12769
12770 2014-07-28  Marek Polacek  <polacek@redhat.com>
12771
12772         PR middle-end/61913
12773         * common.opt (Wodr): Add Var.
12774
12775 2014-07-28  Richard Biener  <rguenther@suse.de>
12776
12777         PR tree-optimization/61921
12778         * tree-ssa-structalias.c (create_variable_info_for_1): Check
12779         if there is a varpool node before dereferencing it.
12780
12781 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
12782
12783         * graphite-sese-to-poly.c:
12784         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
12785         id of the pbb), which contains pointer to the pbb1.
12786
12787         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
12788
12789 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
12790
12791         * graphite-isl-ast-to-gimple.c:
12792         (graphite_create_new_guard): New function.
12793         (translate_isl_ast_node_if): New function.
12794         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
12795
12796         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
12797
12798 2014-07-27  Anthony Green  <green@moxielogic.com>
12799
12800         * config.gcc: Add moxie-*-moxiebox* configuration.
12801         * config/moxie/moxiebox.h: New file.
12802
12803 2014-07-26  Andrew Pinski  <apinski@cavium.com>
12804
12805         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
12806         from the read only register.
12807
12808 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
12809
12810         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
12811         as the allocation class if it isn't likely to be spilled.
12812
12813 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
12814
12815         * rtl.h (tls_referenced_p): Declare.
12816         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
12817         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
12818         (mips_cannot_force_const_mem): Use tls_referenced_p.
12819         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
12820         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
12821         instead of pa_tls_referenced_p.
12822         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
12823         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
12824         (pa_legitimate_constant_p): Likewise.
12825         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
12826         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
12827         (rs6000_cannot_force_const_mem, rs6000_emit_move)
12828         (rs6000_address_for_altivec): Use tls_referenced_p instead of
12829         rs6000_tls_referenced_p.
12830         (rs6000_tls_symbol_ref_1): Delete.
12831
12832 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
12833
12834         PR target/44551
12835         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
12836         Optimize inverse of a VEC_CONCAT.
12837
12838 2014-07-25  Xinliang David Li  <davidxl@google.com>
12839
12840         * params.def: New parameter.
12841         * coverage.c (get_coverage_counts): Check new flag.
12842         (coverage_compute_profile_id): Check new flag.
12843         (coverage_begin_function): Check new flag.
12844         (coverage_end_function): Check new flag.
12845         * value-prof.c (coverage_node_map_initialized_p): New function.
12846         (init_node_map): Populate map with all functions.
12847         * doc/invoke.texi: Document new parameter.
12848
12849 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
12850             Richard Biener <rguenther@suse.de>
12851
12852         * lto-streamer-out.c (struct sccs): Turn to ...
12853         (class DFS): ... this one; refactor the DFS walk so it can
12854         be re-done on per-SCC basis.
12855         (DFS::DFS): New constructor.
12856         (DFS::~DFS): New destructor.
12857         (hash_tree): Add new MAP argument holding in-SCC hash values;
12858         remove POINTER_TYPE hashing hack.
12859         (scc_entry_compare): Rename to ...
12860         (DFS::scc_entry_compare): ... this one.
12861         (hash_scc): Rename to ...
12862         (DFS::hash_scc): ... this one; pass output_block instead
12863         of streamer_cache; work harder to get unique and stable SCC
12864         hashes.
12865         (DFS_write_tree): Rename to ...
12866         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
12867         (lto_output_tree): Update.
12868
12869 2014-07-25  Andi Kleen  <ak@linux.intel.com>
12870
12871         * lto-streamer-out.c (hash_tree): Convert to inchash.
12872
12873 2014-07-25  Andi Kleen  <ak@linux.intel.com>
12874
12875         * tree.c (build_type_attribute_qual_variant): Use inchash.
12876         (type_hash_list): Dito.
12877         (attribute_hash_list): Dito
12878         (iterative_hstate_expr): Dito.
12879         (iterative_hash_expr): Dito.
12880         (build_range_type_1): Dito.
12881         (build_array_type_1): Dito.
12882         (build_function_type): Dito.
12883         (build_method_type_directly): Dito.
12884         (build_offset_type): Dito.
12885         (build_complex_type): Dito.
12886         (make_vector_type): Dito.
12887         * tree.h (iterative_hash_expr): Add compat wrapper.
12888         (iterative_hstate_expr): Add.
12889
12890 2014-07-25  Andi Kleen  <ak@linux.intel.com>
12891
12892         * Makefile.in (OBJS): Add inchash.o.
12893         (PLUGIN_HEADERS): Add inchash.h.
12894         * ipa-devirt.c: Include inchash.h.
12895         * lto-streamer-out.c: Dito.
12896         * tree-ssa-dom.c: Dito.
12897         * tree-ssa-pre.c: Dito.
12898         * tree-ssa-sccvn.c: Dito.
12899         * tree-ssa-tail-merge.c: Dito.
12900         * asan.c: Dito.
12901         * tree.c (iterative_hash_hashval_t): Move to ...
12902         (iterative_hash_host_wide_int): Move to ...
12903         * inchash.c: Here. New file.
12904         * tree.h (iterative_hash_hashval_t): Move to ...
12905         (iterative_hash_host_wide_int): Move to ...
12906         * inchash.h: Here. New file.
12907
12908 2014-07-25  Richard Biener  <rguenther@suse.de>
12909
12910         PR middle-end/61762
12911         PR middle-end/61894
12912         * fold-const.c (native_encode_int): Add and handle offset
12913         parameter to do partial encodings of expr.
12914         (native_encode_fixed): Likewise.
12915         (native_encode_real): Likewise.
12916         (native_encode_complex): Likewise.
12917         (native_encode_vector): Likewise.
12918         (native_encode_string): Likewise.
12919         (native_encode_expr): Likewise.
12920         * fold-const.c (native_encode_expr): Add offset parameter
12921         defaulting to -1.
12922         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
12923         (fold_ctor_reference): Handle all reads from tcc_constant
12924         ctors.
12925
12926 2014-07-25  Richard Biener  <rguenther@suse.de>
12927
12928         * tree-inline.c (estimate_move_cost): Mark speed_p argument
12929         as possibly unused.
12930
12931 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
12932
12933         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
12934
12935 2014-07-24  Kyle McMartin  <kyle@redhat.com>
12936
12937         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
12938
12939 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12940
12941         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
12942         Add prototype.
12943         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
12944         function.
12945         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
12946         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
12947         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
12948
12949 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12950
12951         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
12952         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
12953         aggregate types.  Instead, *all* aggregate types, except for single-
12954         element or homogeneous float/vector aggregates, are quadword-aligned
12955         if required by their type alignment.  Issue -Wpsabi note when a type
12956         is now treated differently than before.
12957
12958 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12959
12960         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
12961         does not fit fully into floating-point registers, and there is still
12962         space in the register parameter area, use GPRs to pass those parts
12963         of the argument.  Issue -Wpsabi note if any parameter is now treated
12964         differently than before.
12965         (rs6000_arg_partial_bytes): Update.
12966
12967 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
12968
12969         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
12970
12971 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
12972
12973         * rtl.h (target_rtl): Remove lang_dependent_initialized.
12974         * toplev.c (initialize_rtl): Don't use it.  Move previously
12975         "language-dependent" calls to...
12976         (backend_init): ...here.
12977         (lang_dependent_init_target): Don't set lang_dependent_initialized.
12978         Assert that RTL initialization hasn't happend yet.
12979
12980 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
12981
12982         PR rtl-optimization/61629
12983         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
12984         they have already been initialized.
12985
12986 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
12987
12988         PR middle-end/61268
12989         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
12990         DECL_INCOMING_RTL and entry_parm.
12991         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
12992         * calls.c (load_register_parameters): Likewise argument values.
12993         (emit_library_call_value_1, store_one_arg): Likewise argument
12994         save areas.
12995         * config/i386/i386.c (assign_386_stack_local): Likewise the local
12996         stack slot.
12997         * explow.c (validize_mem): Modify the argument in-place.
12998
12999 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13000
13001         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
13002         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
13003
13004 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13005
13006         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
13007         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
13008
13009 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13010
13011         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
13012         (aarch64_save_callee_saves): New parameter "skip_wb".
13013         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
13014
13015 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13016
13017         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
13018         "wb_candidate2".
13019         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
13020
13021 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
13022
13023         * graphite-isl-ast-to-gimple.c:
13024         (graphite_create_new_loop): Add calling of isl_id_free to properly
13025         decrement reference counts.
13026
13027         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
13028
13029 2014-07-24  Martin Liska  <mliska@suse.cz>
13030         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
13031         function used.
13032         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
13033         (rs6000_code_end): Likewise.
13034
13035 2014-07-24  Martin Liska  <mliska@suse.cz>
13036
13037         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
13038         symtab_node funtion used.
13039         (rs6000_xcoff_declare_object_name): Likewise.
13040
13041 2014-07-24  Martin Liska  <mliska@suse.cz>
13042
13043         * cgraphunit.c (compile): Correct function used.
13044
13045 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
13046
13047         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
13048         as non-indexable.
13049
13050 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
13051
13052         PR lto/61802
13053         * varasm.c (bss_initializer_p): Handle offlined ctors.
13054         (align_variable, get_variable_align): Likewise.
13055         (make_decl_one_only): Likewise.
13056         (default_binds_local_p_1): Likewise.
13057         (decl_binds_to_current_def_p): Likewise.
13058         (get_variable_section): Get constructor if it is offlined.
13059         (assemble_variable_contents): Sanity check that the caller
13060         streamed in the ctor in LTO.
13061
13062 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
13063
13064         * graphite-isl-ast-to-gimple.c:
13065         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
13066         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
13067         isl_ast_op_pdiv_r to the different case.
13068
13069         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
13070
13071 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13072
13073         PR middle-end/61876
13074         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
13075         when flag_errno_math is on.
13076
13077 2014-07-24  Martin Liska  <mliska@suse.cz>
13078
13079         * cgraph.h (varpool_node):
13080         (availability get_availability (void)):
13081         created from cgraph_variable_initializer_availability
13082         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
13083         created from: cgraph_variable_initializer_availability
13084         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
13085         (void finalize_named_section_flags (void)):
13086         created from varpool_finalize_named_section_flags
13087         (bool assemble_decl (void)): created from varpool_assemble_decl
13088         (void analyze (void)): created from varpool_analyze_node
13089         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
13090         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
13091         (void remove_initializer (void)): created from varpool_remove_initializer
13092         (tree get_constructor (void)): created from varpool_get_constructor
13093         (bool externally_visible_p (void)): created from varpool_externally_visible_p
13094         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
13095         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
13096         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
13097         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
13098         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
13099         (static bool output_variables (void)): created from varpool_output_variables
13100         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
13101         created from varpool_extra_name_alias
13102         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
13103         (static void dump_varpool (FILE *f)): created from dump_varpool
13104         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
13105         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
13106         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
13107         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
13108         (void assemble_aliases (void)): created from assemble_aliases
13109
13110 2014-07-24  Martin Liska  <mliska@suse.cz>
13111
13112         * cgraph.h (symtab_node):
13113         (void register_symbol (void)): created from symtab_register_node
13114         (void remove (void)): created from symtab_remove_node
13115         (void dump (FILE *f)): created from dump_symtab_node
13116         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
13117         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
13118         (struct ipa_ref *add_reference (symtab_node *referred_node,
13119         enum ipa_ref_use use_type)): created from add_reference 
13120         (struct ipa_ref *add_reference (symtab_node *referred_node,
13121         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
13122         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
13123         gimple stmt)): created from maybe_add_reference
13124         (bool semantically_equivalent_p (symtab_node *target)): created from
13125         symtab_semantically_equivalent_p
13126         (void remove_from_same_comdat_group (void)): created from
13127         remove_from_same_comdat_group
13128         (void add_to_same_comdat_group (symtab_node *old_node)): created from
13129         symtab_add_to_same_comdat_group
13130         (void dissolve_same_comdat_group_list (void)): created from
13131         symtab_dissolve_same_comdat_group_list
13132         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
13133         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
13134         created from symtab_alias_ultimate_target
13135         (inline symtab_node *next_defined_symbol (void)): created from
13136         symtab_next_defined_symbol
13137         (bool resolve_alias (symtab_node *target)): created from
13138         symtab_resolve_alias
13139         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
13140         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
13141         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
13142         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
13143         (void set_section (const char *section)): created from set_section_1 
13144         (enum availability get_availability (void)): created from symtab_node_availability
13145         (void make_decl_local (void)): created from symtab_make_decl_local
13146         (bool real_symbol_p (void)): created from symtab_read_node
13147         (can_be_discarded_p (void)): created from symtab_can_be_discarded
13148         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
13149         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
13150         symtab_in_same_comdat_p;
13151         (bool address_taken_from_non_vtable_p (void)): created from
13152         address_taken_from_non_vtable_p
13153         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
13154         (static void dump_table (FILE *)): created from dump_symtab
13155         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
13156         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
13157         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
13158         symtab_used_from_object_file_p 
13159         (void dump_base (FILE *)): created from dump_symtab_base
13160         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
13161         (void unregister (void)): created from symtab_unregister_node
13162         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
13163         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
13164         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
13165         symtab_nonoverwritable_alias_1
13166         * cgraph.h (cgraph_node):
13167         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
13168         created from cgraph_remove_node_and_inline_clones
13169         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
13170         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
13171         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
13172         (cgraph_node *function_symbol (enum availability *avail = NULL)):
13173         created from cgraph_function_node
13174         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
13175         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
13176         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
13177         created from cgraph_create_clone 
13178         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
13179         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
13180         created from cgraph_create_virtual_clone
13181         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
13182         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
13183         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
13184         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
13185         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
13186         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
13187         created from cgraph_function_version_info
13188         (struct cgraph_function_version_info *insert_new_function_version (void)):
13189         created from insert_new_cgraph_node_version
13190         (struct cgraph_function_version_info *function_version (void)): created from
13191         get_cgraph_node_version
13192         (void analyze (void)): created from analyze_function
13193         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
13194         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
13195         tree real_alias) cgraph_add_thunk
13196         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
13197         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
13198         created from cgraph_function_or_thunk_node
13199         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
13200         created from expand_thunk
13201         (void reset (void)): created from cgraph_reset_node
13202         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
13203         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
13204         (void remove (void)): created from cgraph_remove_node
13205         (void dump (FILE *f)): created from dump_cgraph_node
13206         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
13207         (bool get_body (void)): created from cgraph_get_body
13208         (void release_body (void)): created from cgraph_release_function_body
13209         (void unnest (void)): created from cgraph_unnest_node
13210         (void make_local (void)): created from cgraph_make_node_local
13211         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
13212         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
13213         gcov_type count, int freq)): created from cgraph_create_edge
13214         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
13215         gcov_type count, int freq)): created from cgraph_create_indirect_edge
13216         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
13217         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
13218         created from cgraph_create_edge_including_clones
13219         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
13220         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
13221         (void remove_callers (void)): created from cgraph_node_remove_callers
13222         (void remove_callees (void)): created from cgraph_node_remove_callees
13223         (enum availability get_availability (void)): created from cgraph_function_body_availability
13224         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
13225         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
13226         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
13227         (void call_duplication_hooks (cgraph_node *node2)): created from
13228         cgraph_call_node_duplication_hooks
13229         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
13230         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
13231         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
13232         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
13233         (void call_function_insertion_hooks (void)):
13234         created from cgraph_call_function_insertion_hooks
13235         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
13236         (bool local_p (void)): created from cgraph_local_node
13237         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
13238         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
13239         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
13240         (inline bool only_called_directly_or_aliased_p (void)):
13241         created from cgraph_only_called_directly_or_aliased_p
13242         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
13243         created from cgraph_will_be_removed_from_program_if_no_direct_calls
13244         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
13245         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
13246         (bool can_remove_if_no_direct_calls_p (void)):
13247         created from cgraph_can_remove_if_no_direct_calls_p
13248         (inline bool has_gimple_body_p (void)):
13249         created from cgraph_function_with_gimple_body_p
13250         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
13251         (static void dump_cgraph (FILE *f)): created from dump_cgraph
13252         (static inline void debug_cgraph (void)): created from debug_cgraph
13253         (static void record_function_versions (tree decl1, tree decl2)):
13254         created from record_function_versions
13255         (static void delete_function_version (tree decl)):
13256         created from delete_function_version
13257         (static void add_new_function (tree fndecl, bool lowered)):
13258         created from cgraph_add_new_function
13259         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
13260         (static cgraph_node * create (tree decl)): created from cgraph_create_node
13261         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
13262         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
13263         (static cgraph_node *get_for_asmname (tree asmname)):
13264         created from cgraph_node_for_asm
13265         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
13266         created from cgraph_same_body_alias 
13267         (static bool used_from_object_file_p_worker (cgraph_node *node,
13268         void *): new function
13269         (static bool non_local_p (cgraph_node *node, void *)):
13270         created from cgraph_non_local_node_p_1
13271         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
13272         created from verify_cgraph
13273         (static bool make_local (cgraph_node *node, void *)):
13274         created from cgraph_make_node_local
13275         (static cgraph_node *create_alias (tree alias, tree target)):
13276         created from cgraph_create_function_alias
13277         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
13278         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
13279         created from cgraph_create_edge_1
13280         * cgraph.h (varpool_node):
13281         (void remove (void)): created from varpool_remove_node
13282         (void dump (FILE *f)): created from dump_varpool_node
13283
13284 2014-07-24  Richard Biener  <rguenther@suse.de>
13285
13286         PR ipa/61823
13287         * tree-ssa-structalias.c (create_variable_info_for_1):
13288         Use varpool_get_constructor.
13289         (create_variable_info_for): Likewise.
13290
13291 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13292
13293         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
13294         subtract outgoing area size when restoring stack_pointer_rtx.
13295
13296 2014-07-24  Nick Clifton  <nickc@redhat.com>
13297
13298         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
13299         that operations are taking place in parallel.
13300         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
13301
13302 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
13303
13304         * omp-low.c (extract_omp_for_data): Add missing break statement.
13305
13306 2014-07-24  Richard Biener  <rguenther@suse.de>
13307
13308         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
13309         * tree-inline.c (estimate_move_cost): Add speed_p parameter
13310         and adjust MOVE_RATIO query accordingly.
13311         (estimate_num_insns): Adjust callers.
13312         * ipa-prop.c (ipa_populate_param_decls): Likewise.
13313         * ipa-cp.c (gather_context_independent_values,
13314         estimate_local_effects): Likewise.
13315         * ipa-split.c (consider_split): Likewise.
13316
13317 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
13318
13319         * config/i386/driver-i386.c: Remove names of unused arguments and
13320         unnecessary unused attributes.
13321         * config/i386/host-mingw32.c: Likewise.
13322         * config/i386/i386.c: Likewise.
13323         * config/i386/winnt-stubs.c: Likewise.
13324         * config/i386/winnt.c: Likewise.
13325
13326 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13327
13328         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
13329         (aarch64_gen_loadwb_pair): New helper function.
13330         (aarch64_expand_epilogue): Simplify code using new helper functions.
13331         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
13332
13333 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13334
13335         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
13336         (aarch64_gen_storewb_pair): New helper function.
13337         (aarch64_expand_prologue): Simplify code using new helper functions.
13338         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
13339
13340 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13341
13342         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
13343         Rename to aarch64_save_callee_saves, remove restore code.
13344         (aarch64_restore_callee_saves): New function.
13345
13346 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13347
13348         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
13349         (aarch64_save_callee_saves): New function to handle reg save
13350         for both core and vectore regs.
13351
13352 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13353
13354         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
13355         (aarch64_gen_store_pair): New helper function.
13356         (aarch64_save_or_restore_callee_save_registers)
13357         (aarch64_save_or_restore_fprs): Use new helper functions.
13358
13359 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13360
13361         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
13362         (aarch64_save_or_restore_callee_save_registers)
13363         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
13364
13365 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13366
13367         * config/aarch64/aarch64.c
13368         (aarch64_save_or_restore_callee_save_registers)
13369         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
13370
13371 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13372
13373         * config/aarch64/aarch64.c
13374         (aarch64_save_or_restore_callee_save_registers)
13375         (aarch64_save_or_restore_fprs): Remove 'increment'.
13376
13377 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13378
13379         * config/aarch64/aarch64.c
13380         (aarch64_save_or_restore_callee_save_registers)
13381         (aarch64_save_or_restore_fprs): Use register offset in
13382         cfun->machine->frame.reg_offset.
13383
13384 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13385
13386         * config/aarch64/aarch64.c
13387         (aarch64_save_or_restore_callee_save_registers)
13388         (aarch64_save_or_restore_fprs): Remove base_rtx.
13389
13390 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13391
13392         * config/aarch64/aarch64.c
13393         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
13394         to 'start_offset'.  Remove local variable 'start_offset'.
13395
13396 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13397
13398         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
13399         type to HOST_WIDE_INT.
13400
13401 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13402
13403         * config/aarch64/aarch64.c (aarch64_expand_prologue)
13404         (aarch64_save_or_restore_fprs)
13405         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
13406
13407 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13408
13409         * config/arm/t-rtems-eabi: Add
13410         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
13411         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
13412         mbig-endian/mthumb/march=armv7-r, and
13413         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
13414         multilibs.
13415
13416 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13417             Chris Johns <chrisj@rtems.org>
13418             Joel Sherrill <joel.sherrill@oarcorp.com>
13419
13420         * config.gcc: Add nios2-*-rtems*.
13421         * config/nios2/rtems.h: New file.
13422         * gcc/config/nios2/t-rtems: New file.
13423
13424 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
13425
13426         PR target/61396
13427         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
13428         constant numbers, not general constants.
13429         (rs6000_expand_vector_init): Ditto.
13430
13431 2014-07-23  Nathan Sidwell  <nathan@acm.org>
13432
13433         * gcov-tool.c (gcov_list): Declare here.
13434         (set_gcov_list): Remove.
13435         (gcov_output_files): Set gcov_list directly.
13436
13437 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
13438
13439         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
13440
13441 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13442
13443         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
13444         callee-saved registers are available for padding purpose
13445         and r3 is not mandatory, then prefer use those callee-saved
13446         instead of r3.
13447
13448 2014-07-23  Richard Biener  <rguenther@suse.de>
13449
13450         * params.def (PARAM_MAX_COMBINE_INSNS): New.
13451         * combine.c: Include statistics.h and params.h.
13452         (combine_instructions): Guard three and four insn combines
13453         with max-combine-insns value.  Record statistics for combines
13454         performed.
13455         * doc/invoke.texi (max-combine-insns): Document new param.
13456
13457 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
13458
13459         * graphite-isl-ast-to-gimple.c:
13460         (translate_isl_ast_node_block): New function.
13461         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
13462
13463         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
13464         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
13465
13466 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
13467
13468         * graphite-isl-ast-to-gimple.c:
13469         (get_max_schedule_dimensions): New function.
13470         (extend_schedule): Likewise.
13471         (generate_isl_schedule): Add calling of extend_schedule and
13472         get_max_schedule_dimensions.
13473
13474 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13475
13476         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
13477         (case UNSPEC): Handle UNSPEC_RBIT.
13478
13479 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13480
13481         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
13482         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
13483
13484 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13485
13486         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
13487
13488 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
13489
13490         * graphite-isl-ast-to-gimple.c:
13491         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
13492         (ivs_params_clear):
13493         (build_iv_mapping): New function.
13494         (translate_isl_ast_node_user): Likewise.
13495         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
13496
13497         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
13498         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
13499         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
13500
13501 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
13502
13503         PR target/55701
13504         * config/arm/arm.md (setmem): New pattern.
13505         * config/arm/arm-protos.h (struct tune_params): New fields.
13506         (arm_gen_setmem): New prototype.
13507         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
13508         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
13509         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
13510         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
13511         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
13512         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
13513         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
13514         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
13515         (arm_const_inline_cost): New function.
13516         (arm_block_set_max_insns): New function.
13517         (arm_block_set_non_vect_profit_p): New function.
13518         (arm_block_set_vect_profit_p): New function.
13519         (arm_block_set_unaligned_vect): New function.
13520         (arm_block_set_aligned_vect): New function.
13521         (arm_block_set_unaligned_non_vect): New function.
13522         (arm_block_set_aligned_non_vect): New function.
13523         (arm_block_set_vect, arm_gen_setmem): New functions.
13524
13525 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
13526
13527         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
13528
13529 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
13530
13531         PR target/61855
13532         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
13533         out of #ifdef __OPTIMIZE__.
13534
13535 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
13536
13537         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
13538         different trapping status if -fnon-call-exceptions is enabled.
13539
13540 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
13541
13542         * expr.c (store_field): Handle VOIDmode for calls that return values
13543         in multiple locations.
13544
13545 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13546
13547         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
13548         (altivec_vsldoi_<mode>): Likewise.
13549
13550 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
13551
13552         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
13553         to the number of characters in the line.
13554
13555 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
13556
13557         * graphite-isl-ast-to-gimple.c: Add using of
13558         build_nonstandard_integer_type instead of int128_integer_type_node.
13559
13560 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
13561
13562         * toplev.c (output_stack_usage): Adjust the location of the warning.
13563
13564 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
13565
13566         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
13567         (*membar_storeload): Disable for LEON3.
13568
13569 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13570
13571         PR rtl-optimization/61461
13572         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
13573
13574 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
13575
13576         PR target/61794
13577         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
13578         Fix instruction constraint.
13579         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
13580
13581 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
13582
13583         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
13584
13585 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
13586
13587         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
13588         GNU coding standards.
13589         (nds32_register_move_cost): Likewise.
13590         (nds32_memory_move_cost): Likewise.
13591         (nds32_address_cost): Likewise.
13592
13593 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13594
13595         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
13596
13597 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
13598
13599         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
13600         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
13601         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
13602         (HAVE_sync_compare_and_swapqi): Define.
13603         (HAVE_sync_compare_and_swaphi): Likewise.
13604         (HAVE_sync_compare_and_swapsi): Likewise.
13605
13606 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
13607
13608         * config/mips/p5600.md: Add missing cpu tests.
13609
13610 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13611
13612         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
13613         (vmla_f64): Likewise.
13614         (vfms_f64): Likewise.
13615         (vmls_f64): Likewise.
13616
13617 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13618
13619         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
13620         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
13621
13622 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13623
13624         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
13625         (vmlal_high_lane_s32): Likewise.
13626         (vmlal_high_lane_u16): Likewise.
13627         (vmlal_high_lane_u32): Likewise.
13628         (vmlsl_high_lane_s16): Likewise.
13629         (vmlsl_high_lane_s32): Likewise.
13630         (vmlsl_high_lane_u16): Likewise.
13631         (vmlsl_high_lane_u32): Likewise.
13632
13633 2014-07-17  Terry Guo  <terry.guo@arm.com>
13634
13635         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
13636         (alus_reg): Renamed to alus_sreg.
13637         * config/arm/arm-fixed.md: Change type of non-dsp instructions
13638         from alu_reg to alu_sreg.  Change type of dsp instructions from
13639         alu_reg to alu_dsp_reg.
13640         * config/arm/thumb1.md: Likewise.
13641         * config/arm/thumb2.md: Likewise.
13642         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
13643         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
13644         with alu_sreg and alus_sreg.
13645         * config/arm/arm1026ejs.md (alu_op): Likewise.
13646         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
13647         * config/arm/arm926ejs.md (9_alu_op): Likewise.
13648         * config/arm/fa526.md (526_alu_op): Likewise.
13649         * config/arm/fa606te.md (606te_alu_op): Likewise.
13650         * config/arm/fa626te.md (626te_alu_op): Likewise.
13651         * config/arm/fa726te.md (726te_alu_op): Likewise.
13652         * config/arm/fmp626.md (mp626_alu_op): Likewise.
13653         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
13654         alu_sreg, alu_dsp_reg and alus_sreg.
13655         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
13656         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
13657         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
13658         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
13659         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
13660         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
13661         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
13662         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
13663         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
13664         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
13665         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
13666         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
13667         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
13668         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
13669         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
13670         alus_reg to alus_sreg.
13671
13672 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
13673
13674         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
13675         infinity format.
13676
13677 2014-07-17  Richard Biener  <rguenther@suse.de>
13678
13679         PR rtl-optimization/61801
13680         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
13681         don't set reg_pending_barrier if it appears in a debug-insn.
13682
13683 2014-07-16  DJ Delorie  <dj@redhat.com>
13684
13685         * config/rx/rx.c (rx_option_override): Fix alignment values.
13686         (rx_align_for_label): Likewise.
13687
13688 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
13689
13690         PR target/61737.
13691         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
13692         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
13693         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
13694         functions.
13695         (cris_print_index, cris_print_operand, cris_constant_index_p)
13696         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
13697         (cris_address_cost): Ditto last CONSTANT_P.
13698         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
13699         callers changed.  Yield cris_offsettable_symbol for non-PIC
13700         constant symbolic expressions including labels.  Yield cris_unspec
13701         for all unspecs.
13702         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
13703         target to pic_offset_table_rtx for calls that will likely go
13704         through PLT, const0_rtx when they can't.  All callers changed.
13705         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
13706         symbolic expressions to be PICified.  Remove second, redundant,
13707         assert on can_create_pseudo_p returning non-zero.  Use
13708         replace_equiv_address_nv, not replace_equiv_address, for final
13709         operand update.
13710         * config/cris/cris.md ("movsi"): Move variable t to pattern
13711         toplevel. Adjust assert for new cris_symbol_type member.  Use
13712         CONSTANT_P instead of CONSTANT_ADDRESS_P.
13713         ("*movsi_internal") <case 9>: Make check for valid unspec operands
13714         for lapc stricter.
13715         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
13716         ("call", "call_value"): Use second incoming operand as a marker
13717         for pic-offset-table-register being used.
13718         ("*expanded_call_non_v32", "*expanded_call_v32")
13719         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
13720         second incoming operand to CALL, match cris_call_type_marker.
13721         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
13722         ("*expanded_call_side"): Ditto.  Fix typo in comment.
13723         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
13724         CONSTANT_P.
13725         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
13726         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
13727         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
13728         users changed.  Add members cris_offsettable_symbol and cris_unspec.
13729         (cris_symbol_type): Rename from cris_pic_symbol_type.
13730         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
13731         just CONSTANT_P.
13732         * config/cris/cris-protos.h (cris_symbol_type_of,
13733         cris_expand_pic_call_address): Adjust prototypes.
13734         (cris_legitimate_constant_p): New prototype.
13735
13736         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
13737         an existing tmake_file.  Don't add t-slibgcc and t-linux.
13738
13739 2014-07-17  Jason Merrill  <jason@redhat.com>
13740
13741         PR c++/61623
13742         * symtab.c (symtab_remove_from_same_comdat_group): Also
13743         set_comdat_group to NULL_TREE.
13744         (verify_symtab): Fix diagnostic.
13745
13746 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
13747
13748         PR target/61662
13749         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
13750
13751 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
13752
13753         Support location tracking for built-in macro tokens
13754         * input.h (is_location_from_builtin_token): New function declaration.
13755         * input.c (is_location_from_builtin_token): New function definition.
13756         * toplev.c (general_init): Tell libcpp what the pre-defined
13757         spelling location for built-in tokens is.
13758
13759 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
13760
13761         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
13762         on the FUNCTION_DECL.
13763
13764 2014-07-16  Richard Biener  <rguenther@suse.de>
13765
13766         PR other/61782
13767         * doc/extend.texi (always_inline): Clarify.
13768
13769 2014-07-15  Eric Christopher  <echristo@gmail.com>
13770
13771         * doc/invoke.texi (Link Options): Document -z option.
13772
13773 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
13774
13775         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
13776         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
13777
13778 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
13779
13780         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
13781
13782 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
13783
13784         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
13785         varpool_assemble_decl.
13786         * varpool.c (varpool_assemble_decl): Assert that node->definition is
13787         true.
13788
13789 2014-07-15  Michael Matz  <matz@suse.de>
13790
13791         PR rtl-optimization/61772
13792         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
13793
13794 2014-07-15  Richard Biener  <rguenther@suse.de>
13795
13796         * opts.c (default_options_table): Disable bit-ccp at -Og.
13797
13798 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
13799
13800         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
13801
13802 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
13803
13804         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
13805         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
13806         call langhook for unknown declaration.
13807         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
13808         * tree.h (DECL_ARGUMENTS): Update.
13809         * print-tree.c (print_node): Update.
13810         * tree-core.h (tree_decl_non_common): Remove arguments.
13811         (tree_function_decl): Add arguments.
13812
13813 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
13814
13815         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
13816
13817 2014-07-14  Richard Biener  <rguenther@suse.de>
13818
13819         PR tree-optimization/61779
13820         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
13821         simplifying a condition.
13822
13823 2014-07-14  Richard Biener  <rguenther@suse.de>
13824
13825         * builtins.c (c_strlen): Make only_value == 2 really only
13826         affect warning generation.
13827
13828 2014-07-14  Richard Biener  <rguenther@suse.de>
13829
13830         PR tree-optimization/61757
13831         PR tree-optimization/61783
13832         PR tree-optimization/61787
13833         * tree-ssa-dom.c (record_equality): Revert canonicalization
13834         change and add comment.
13835         (propagate_rhs_into_lhs): Revert previous fix, removing
13836         loop depth restriction again.
13837
13838 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13839
13840         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
13841         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
13842         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
13843         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
13844         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
13845         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
13846         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
13847
13848 2014-07-14  Richard Biener  <rguenther@suse.de>
13849
13850         * cgraph.h (decl_in_symtab_p): Make inline.
13851
13852 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
13853
13854         PR middle-end/61294
13855         * doc/invoke.texi (-Wmemset-transposed-args): Document.
13856
13857         PR target/61656
13858         * config/i386/i386.c (classify_argument): Don't merge classes above
13859         number of words.
13860
13861 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
13862
13863         * cgraph.h (symtab_node): Add nonzero_address.
13864         (decl_in_symtab_p): Break out from ...
13865         (symtab_get_node): ... here.
13866         * fold-const.c: Include cgraph.h
13867         (tree_single_nonzero_warnv_p): Use symtab to determine
13868         if symbol is non-zero.
13869         * symtab.c (symtab_node::nonzero_address): New method.
13870
13871 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
13872
13873         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
13874         forgotten in previous commit.
13875
13876 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
13877
13878         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
13879         on builtin types.
13880         * ipa-devirt.c: Include stor-layout.h and intl.h
13881         (odr_subtypes_equivalent_p): New function.
13882         (warn_odr): New function.
13883         (warn_type_mismatch): New function.
13884         (odr_types_equivalent_p): New function.
13885         (add_type_duplicate): Use it.
13886         * common.opt (Wodr): New flag.
13887         * doc/invoke.texi (Wodr): Document new warning.
13888
13889 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
13890
13891         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
13892         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
13893         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
13894         (varpool_get_constructor): Push CTORS_IN timevar.
13895         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
13896
13897 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
13898
13899         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
13900         Remove VOID_FTYPE_PUSHORT.
13901         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
13902         Change code to USHORT_FTYPE_VOID.
13903         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
13904         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
13905         (ix86_atomic_assign_expand_fenv): Update for
13906         __builtin_ia32_fnstsw changes.
13907         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
13908         (fnstsw): Change operand 0 to nonimmediate operand.
13909
13910 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
13911
13912         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
13913         (varpool_get_constructor): New function.
13914         (varpool_ctor_useable_for_folding_p): Break out from ...
13915         (ctor_for_folding): ... here; use varpool_get_constructor.
13916         (varpool_assemble_decl): Likewise.
13917         * lto-streamer.h (struct output_block): Turn cgraph_node
13918         to symbol filed.
13919         (lto_input_variable_constructor): Declare.
13920         * ipa-visibility.c (function_and_variable_visibility): Use
13921         varpool_get_constructor.
13922         * cgraph.h (varpool_get_constructor): Declare.
13923         (varpool_ctor_useable_for_folding_p): New function.
13924         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
13925         parameter; return error_mark_node for non-trivial constructors.
13926         (lto_write_tree_1, DFS_write_tree): Update use of
13927         get_symbol_initial_value.
13928         (output_function): Update initialization of symbol.
13929         (output_constructor): New function.
13930         (copy_function): Rename to ..
13931         (copy_function_or_variable): ... this one; handle vars too.
13932         (lto_output): Output variable sections.
13933         * lto-streamer-in.c (input_constructor): New function.
13934         (lto_read_body): Rename from ...
13935         (lto_read_body_or_constructor): ... this one; handle vars too.
13936         (lto_input_variable_constructor): New function.
13937         * ipa-prop.c (ipa_prop_write_jump_functions,
13938         ipa_prop_write_all_agg_replacement): Update.
13939         * lto-cgraph.c (compute_ltrans_boundary): Use it.
13940         (output_cgraph_opt_summary): Set symbol to NULL.
13941
13942 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
13943
13944         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
13945         non-polymorphic types.
13946         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
13947         * ipa-devirt.c (types_same_for_odr): Do not explode when one
13948         of types is not polymorphic.
13949
13950 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
13951
13952         * lra-constraints.c (remove_inheritance_pseudos): Process
13953         destination pseudo too.
13954
13955 2014-07-11  Rong Xu  <xur@google.com>
13956
13957         * gcov-tool.c (gcov_output_files): Fix build error introduced in
13958         commit r212448.
13959
13960 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
13961
13962         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
13963         * config/avr/avr-devices.c (AVR_MCU): Same.
13964         (avr_mcu_types): add text start value to end of device list.
13965         * config/avr/avr-mcus.def: Add text section start for all devices.
13966         (ata5782): Add new avr5 device.
13967         (ata5831): Same.
13968         * config/avr/avr-tables.opt: Regenerate.
13969         * config/avr/avr.h: Add declaration for text section start handler.
13970         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
13971         SPEC functions.
13972         (LINK_SPEC): Include text section start handler to linker spec.
13973         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
13974         pass -Ttext option to linker if the text section start for the device
13975         is not zero.
13976         * config/avr/t-multilib: Regenerate.
13977         * doc/avr-mmcu.texi: Regenerate.
13978
13979 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
13980
13981         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
13982         * config/rs6000/aix52.h (LINK_SPEC): Same.
13983         * config/rs6000/aix53.h (LINK_SPEC): Same.
13984         * config/rs6000/aix61.h (LINK_SPEC): Same.
13985         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
13986
13987 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
13988
13989         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
13990         (graphite_verify): New function.
13991         (ivs_params_clear): New function.
13992         (gcc_expression_from_isl_ast_expr_id): New function.
13993         (gcc_expression_from_isl_expr_int): New function.
13994         (binary_op_to_tree): New function.
13995         (ternary_op_to_tree): New function.
13996         (unary_op_to_tree): New function.
13997         (nary_op_to_tree): New function.
13998         (gcc_expression_from_isl_expr_op): New function.
13999         (gcc_expression_from_isl_expression): New function.
14000         (graphite_create_new_loop): New function.
14001         (translate_isl_ast_for_loop): New function.
14002         (get_upper_bound): New function.
14003         (graphite_create_new_loop_guard): New function.
14004         (translate_isl_ast_node_for): New function.
14005         (translate_isl_ast): New function.
14006         (add_parameters_to_ivs_params): New function.
14007         (scop_to_isl_ast): New parameter ip.
14008         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
14009
14010 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
14011
14012         * config/xtensa/predicates.md (call expander): Update for
14013         DECL_SECTION_NAME being string.
14014
14015 2014-07-11  Richard Biener  <rguenther@suse.de>
14016
14017         PR middle-end/61473
14018         * builtins.c (fold_builtin_memory_op): Inline memory moves that
14019         can be implemented with a single load followed by a single store.
14020         (c_strlen): Only warn when only_value is not 2.
14021
14022 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
14023
14024         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
14025
14026 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
14027
14028         PR target/61561
14029         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
14030         (*movhi_bytes): Likewise.
14031         (*arm_movqi_insn): Likewise.
14032
14033 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
14034
14035         PR target/56858
14036         * config/alpha/alpha.c: Include tree-pass.h, context.h
14037         and pass_manager.h.
14038         (pass_data_handle_trap_shadows): New pass.
14039         (pass_handle_trap_shadows::gate): New pass gate function.
14040         (make_pass_handle_trap_shadows): New function.
14041         (rest_of_handle_trap_shadows): Ditto.
14042
14043         (alpha_align_insns_1): Rename from alpha_align_insns.
14044         (pass_data_align_insns): New pass.
14045         (pass_align_insns::gate): New pass gate function.
14046         (make_pass_aling_insns): New function.
14047         (rest_of_align_insns): Ditto.
14048         (alpha_align_insns): Ditto.
14049
14050         (alpha_option_override): Declare handle_trap_shadows info
14051         and align_insns_info.  Register handle_trap_shadows and align_insns
14052         passes here.
14053         (alpha_reorg): Do not call alpha_trap_shadows and
14054         alpha_align_insn from here.
14055
14056         (alpha_pad_function_end): Do not skip BARRIERs.
14057
14058 2014-07-10  Rong Xu  <xur@google.com>
14059
14060         Add gcov-tool: an offline gcda profile processing tool support.
14061         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
14062         (gcov_is_error): Ditto.
14063         (gcov_read_string): Ditto.
14064         (gcov_read_sync): Ditto.
14065         * gcov-io.h: Move counter defines to gcov-counter.def.
14066         * gcov-dump.c (tag_counters): Use gcov-counter.def.
14067         * coverage.c: Ditto.
14068         * gcov-tool.c: Offline gcda profile processing tool.
14069         (unlink_gcda_file): Remove one gcda file.
14070         (unlink_profile_dir): Remove gcda files from the profile path.
14071         (gcov_output_files): Output gcda files to an output dir.
14072         (profile_merge): Merge two profiles in directory.
14073         (print_merge_usage_message): Print merge usage.
14074         (merge_usage): Print merge usage and exit.
14075         (do_merge): Driver for profile merge sub-command.
14076         (profile_rewrite): Rewrite profile.
14077         (print_rewrite_usage_message): Print rewrite usage.
14078         (rewrite_usage): Print rewrite usage and exit.
14079         (do_rewrite): Driver for profile rewrite sub-command.
14080         (print_usage): Print gcov-info usage and exit.
14081         (print_version): Print gcov-info version.
14082         (process_args): Process arguments.
14083         (main): Main routine for gcov-tool.
14084         * Makefile.in: Build and install gcov-tool.
14085         * gcov-counter.def: New file split from gcov-io.h.
14086         * doc/gcc.texi: Include gcov-tool.texi.
14087         * doc/gcov-tool.texi: Document for gcov-tool.
14088
14089 2014-07-10  Richard Biener  <rguenther@suse.de>
14090
14091         PR tree-optimization/61757
14092         * tree-ssa-dom.c (loop_depth_of_name): Restore.
14093         (propagate_rhs_into_lhs): Revert part of last change.
14094
14095 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
14096
14097         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
14098         FUNCTION_DECLs.
14099
14100 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
14101
14102         PR middle-end/53590
14103         * function.c (allocate_struct_function): Revert r188667 change.
14104
14105         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
14106
14107 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
14108
14109         * doc/install.texi: Remove links to defunct package providers for
14110         Solaris.
14111
14112 2014-07-09  Tom de Vries  <tom@codesourcery.com>
14113
14114         * final.c (get_call_fndecl): Declare.
14115         (self_recursive_call_p): New function.
14116         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
14117
14118 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14119
14120         * ipa-devirt.c (record_node): Walk through aliases.
14121
14122 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14123
14124         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
14125
14126 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14127
14128         Revert:
14129         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
14130
14131 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14132
14133         * ipa-visibility.c (function_and_variable_visibility): Remove
14134         temporary hack disabling local aliases on AIX.
14135
14136 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14137
14138         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
14139         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
14140
14141 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14142
14143         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
14144         * rs6000/rs6000.c: Inline output of .set instruction.
14145         (declare_alias_data): New struct.
14146         (rs6000_declare_alias): New function.
14147         (rs6000_xcoff_declare_function_name): Use it.
14148         (rs6000_xcoff_declare_object_name): New function.
14149         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
14150         (ASM_OUTPUT_DEF): Turn to empty definition.
14151
14152 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
14153
14154         PR bootstrap/61679
14155         * hash-table.h: use hash_table::value_type instead of
14156         Descriptor::value_type in the return types of several methods.
14157
14158 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
14159
14160         * tree-pass.h (pass_data): Remove has_execute member.
14161         * passes.c (execute_one_pass): Don't check pass->has_execute.
14162         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
14163         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
14164         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
14165         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
14166         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
14167         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
14168         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
14169         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
14170         gimple-low.c, gimple-ssa-isolate-paths.c,
14171         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
14172         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
14173         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
14174         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
14175         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
14176         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
14177         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
14178         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
14179         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
14180         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
14181         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
14182         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
14183         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
14184         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
14185         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
14186         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
14187         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
14188         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
14189         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
14190         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
14191         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
14192         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
14193         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
14194         web.c: Remove initializer for pass_data::has_execute.
14195
14196 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
14197
14198         * graphite-htab.h: Use hash_map instead of hash_table.
14199         * graphite-clast-to-gimple.c: Adjust.
14200         * passes.c: Use hash_map instead of hash_table.
14201         * sese.c: Likewise.
14202         * sese.h: Remove now unused code.
14203
14204 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
14205
14206         PR target/61599
14207         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
14208         than zero.
14209
14210 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
14211
14212         PR rtl-optimization/61673
14213         * combine.c (simplify_comparison): Test just mode's sign bit
14214         in tmode rather than the sign bit and any bits above it.
14215
14216 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
14217
14218         * graphite-isl-ast-to-gimple.c (generate_isl_context):
14219         Add __isl_give to the declaration.
14220         (generate_isl_schedule): Likewise.
14221         (scop_to_isl_ast): Likewise.
14222
14223 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14224
14225         * config/arm/arm.c (cortexa5_extra_costs): New table.
14226         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
14227
14228 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
14229
14230         PR tree-optimization/61725
14231         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
14232         range, use range_includes_zerop_p instead of integer_zerop on
14233         vr0->min, only use log2 of max if min is not negative.
14234
14235 2014-07-08  Richard Biener  <rguenther@suse.de>
14236
14237         * tree-ssa-dom.h (loop_depth_of_name): Remove.
14238         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
14239         restriction on loop depth difference.
14240         (record_equality): Likewise.
14241         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
14242         (loop_depth_of_name): Remove.
14243         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
14244         restriction on loop depth difference.
14245         (init_copy_prop): Likewise.
14246
14247 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14248
14249         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
14250         parameter.
14251         (walk_aliased_vdefs): Likewise.
14252         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
14253         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
14254         (detect_type_change_from_memory_writes): Check if entry was reached.
14255
14256 2014-07-08  Richard Biener  <rguenther@suse.de>
14257
14258         PR tree-optimization/61681
14259         * tree-ssa-structalias.c (find_what_var_points_to): Expand
14260         NONLOCAL inside ESCAPED.
14261
14262 2014-07-08  Richard Biener  <rguenther@suse.de>
14263
14264         PR tree-optimization/61680
14265         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
14266         Handle properly all read-write dependences with group accesses.
14267
14268 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
14269
14270         PR tree-optimization/61576
14271         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
14272         block containing reduction statement is predecessor of phi basi block.
14273
14274 2014-07-08  Marek Polacek  <polacek@redhat.com>
14275
14276         PR c/60226
14277         * fold-const.c (round_up_loc): Change the parameter type.
14278         Remove assert.
14279         * fold-const.h (round_up_loc): Adjust declaration.
14280         * stor-layout.c (finalize_record_size): Check for too large types.
14281
14282 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
14283
14284         * symtab.c: Include calls.h.
14285         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
14286
14287 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
14288
14289         * config/rs6000/rs6000.c (output_vec_const_move): Handle
14290         little-endian code generation.
14291         * config/rs6000/spe.md (spe_evmergehi): Rename to...
14292         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
14293         (spe_evmergehilo): Rename to...
14294         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
14295         (spe_evmergelo): Rename to...
14296         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
14297         (spe_evmergelohi): Rename to...
14298         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
14299         (spe_evmergehi, spe_evmergehilo): New expanders.
14300         (spe_evmergelo, spe_evmergelohi): Likewise.
14301         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
14302         (*frob_tf_ti): Likewise.
14303         (*frob_<mode>_di_2): Likewise.
14304         (*frob_tf_di_8_2): Likewise.
14305         (*frob_di_<mode>): Likewise.
14306         (*frob_ti_tf): Likewise.
14307         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
14308         (*frob_ti_<mode>_8_2): Likewise.
14309         (*frob_ti_tf_2): Likewise.
14310         (mov_si<mode>_e500_subreg0): Rename to...
14311         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
14312         endianness only.
14313         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
14314         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
14315         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
14316         the big endianness only.
14317         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
14318         (*mov_si<mode>_e500_subreg0_2): Rename to...
14319         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
14320         big big endianness only.
14321         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
14322         (*mov_si<mode>_e500_subreg4): Rename to...
14323         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
14324         endianness only.
14325         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
14326         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
14327         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
14328         the big endianness only.
14329         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
14330         pattern.
14331         (*mov_si<mode>_e500_subreg4_2): Rename to...
14332         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
14333         endianness only.
14334         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
14335         (*mov_sitf_e500_subreg8): Rename to...
14336         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
14337         endianness only.
14338         (*mov_sitf_e500_subreg8_le): New instruction pattern.
14339         (*mov_sitf_e500_subreg8_2): Rename to...
14340         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
14341         endianness only.
14342         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
14343         (*mov_sitf_e500_subreg12): Rename to...
14344         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
14345         endianness only.
14346         (*mov_sitf_e500_subreg12_le): New instruction pattern.
14347         (*mov_sitf_e500_subreg12_2): Rename to...
14348         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
14349         endianness only.
14350         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
14351
14352 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
14353
14354         * asan.c (instrument_strlen_call): Do not instrument first byte
14355         in strlen if already instrumented.
14356
14357 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14358
14359         * config/arm/arm.opt (mwords-little-endian): Delete.
14360         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
14361         of TARGET_LITTLE_WORDS.
14362         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
14363         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
14364         warning.
14365         * doc/invoke.texi: Remove references to -mwords-little-endian.
14366
14367 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
14368
14369         * expmed.c (struct init_expmed_rtl): Change all fields but
14370         pow2 and cint from struct rtx_def to rtx.
14371         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
14372         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
14373         at the end again.
14374
14375 2014-07-06  Marek Polacek  <polacek@redhat.com>
14376
14377         PR c/6940
14378         * doc/invoke.texi: Document -Wsizeof-array-argument.
14379
14380 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
14381
14382         * wide-int.h (wide_int_storage): Change declaration from struct
14383         to class.
14384
14385 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
14386
14387         * cgraph.c (cgraph_create_indirect_edge): Update call of
14388         get_polymorphic_call_info.
14389         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
14390         (possible_polymorphic_call_targets): Add parameter call.
14391         (decl_maybe_in_construction_p): New predicate.
14392         (get_polymorphic_call_info): Add parameter call;
14393         use decl_maybe_in_construction_p.
14394         * gimple-fold.c (fold_gimple_assign): Update use of
14395         possible_polymorphic_call_targets.
14396         (gimple_fold_call): Likewise.
14397         * ipa-prop.c: Inlcude calls.h
14398         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
14399         (param_type_may_change_p): New predicate.
14400         (detect_type_change_from_memory_writes): Break out from ...
14401         (detect_type_change): ... this one; use param_type_may_change_p.
14402         (detect_type_change_ssa): Use param_type_may_change_p.
14403         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
14404
14405 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
14406
14407         PR target/49423
14408         * config/arm/arm-protos.h (arm_legitimate_address_p,
14409         arm_is_constant_pool_ref): Add prototypes.
14410         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
14411         (arm_is_constant_pool_ref) New function.
14412         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
14413         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
14414         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
14415         operand. Remove pool_range and neg_pool_range attributes.
14416         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
14417         pool_range and neg_pool_range attributes.
14418         * config/arm/constraints.md (Uh): New constraint.
14419         (Uq): Don't allow constant pool references.
14420
14421 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
14422
14423         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
14424         (move_lo_quad_internal_be_<mode>): Likewise.
14425         (move_lo_quad_<mode>): Convert to define_expand.
14426         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
14427         (aarch64_simd_move_hi_quad_be_<mode>): New.
14428         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
14429         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
14430         (aarch64_combinez_be<mode>): New.
14431         (aarch64_combine<mode>): Convert to define_expand.
14432         (aarch64_combine_internal<mode>): New.
14433         (aarch64_simd_combine<mode>): Remove bogus RTL description.
14434
14435 2014-07-04  Tom de Vries  <tom@codesourcery.com>
14436
14437         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
14438         combination of earlyclobber and read/write modifiers.
14439
14440 2014-07-04  Tom de Vries  <tom@codesourcery.com>
14441
14442         * config/aarch64/aarch64-simd.md
14443         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
14444
14445 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
14446
14447         PR target/61714
14448         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
14449
14450 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
14451
14452         PR middle-end/61654
14453         * cgraphunit.c (expand_thunk): Call free_dominance_info.
14454
14455         PR tree-optimization/61684
14456         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
14457         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
14458
14459 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14460             Kito Cheng  <kito@0xlab.org>
14461             Monk Chiang  <sh.chiang04@gmail.com>
14462
14463         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
14464         (nds32_symbol_load_store_p): Move to ...
14465         (nds32_fp_as_gp_check_available): Move to ...
14466         * config/nds32/nds32-fp-as-gp.c: ... here.
14467         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
14468         extern declaration.
14469
14470 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14471             Kito Cheng  <kito@0xlab.org>
14472             Monk Chiang  <sh.chiang04@gmail.com>
14473
14474         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
14475         (nds32_expand_store_multiple): Move to ...
14476         (nds32_expand_movmemqi): Move to ...
14477         * config/nds32/nds32-memory-manipulation.c: ... here.
14478
14479 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14480             Kito Cheng  <kito@0xlab.org>
14481             Monk Chiang  <sh.chiang04@gmail.com>
14482
14483         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
14484         (nds32_output_casesi_pc_relative): Move to ...
14485         (nds32_output_casesi): Move to ...
14486         (nds32_mem_format): Move to ...
14487         (nds32_output_16bit_store): Move to ...
14488         (nds32_output_16bit_load): Move to ...
14489         (nds32_output_32bit_store): Move to ...
14490         (nds32_output_32bit_load): Move to ...
14491         (nds32_output_32bit_load_s): Move to ...
14492         (nds32_output_stack_push): Move to ...
14493         (nds32_output_stack_pop): Move to ...
14494         * config/nds32/nds32-md-auxiliary.c: ... here.
14495
14496 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14497             Ling-Hua Tseng  <uranus@tinlans.org>
14498
14499         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
14500         the purpose of this file.
14501
14502 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14503             Kito Cheng  <kito@0xlab.org>
14504             Monk Chiang  <sh.chiang04@gmail.com>
14505
14506         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
14507         (nds32_address_cost): Move implementation to ...
14508         * config/nds32/nds32-cost.c: ... here.
14509         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
14510         (nds32_address_cost_impl): Declare.
14511
14512 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14513             Kito Cheng  <kito@0xlab.org>
14514             Monk Chiang  <sh.chiang04@gmail.com>
14515
14516         * config/nds32/nds32.c
14517         (nds32_consecutive_registers_load_store_p): Move to ...
14518         (nds32_valid_multiple_load_store): Move to ...
14519         (nds32_valid_stack_push_pop): Move to ...
14520         (nds32_can_use_bclr_p): Move to ...
14521         (nds32_can_use_bset_p): Move to ...
14522         (nds32_can_use_btgl_p): Move to ...
14523         (nds32_can_use_bitci_p): Move to ...
14524         * config/nds32/nds32-predicates.c: ... here.
14525
14526 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14527             Kito Cheng  <kito@0xlab.org>
14528             Monk Chiang  <sh.chiang04@gmail.com>
14529
14530         * config/nds32/nds32.c
14531         (nds32_expand_builtin_null_ftype_reg): Move to ...
14532         (nds32_expand_builtin_reg_ftype_imm): Move to ...
14533         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
14534         (nds32_init_builtins): Move implementation to ...
14535         (nds32_expand_builtin): Move implementation to ...
14536         * config/nds32/nds32-intrinsic.c: ... here.
14537         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
14538         (nds32_expand_builtin_impl): Declare.
14539
14540 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14541             Kito Cheng  <kito@0xlab.org>
14542             Monk Chiang  <sh.chiang04@gmail.com>
14543
14544         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
14545         (nds32_emit_section_tail_template): Move to ...
14546         (nds32_emit_isr_jmptbl_section): Move to ...
14547         (nds32_emit_isr_vector_section): Move to ...
14548         (nds32_emit_isr_reset_conten): Move to ...
14549         (nds32_check_isr_attrs_conflict): Move to ...
14550         (nds32_construct_isr_vectors_information): Move to ...
14551         (nds32_asm_file_start): Move implementation to ...
14552         (nds32_asm_file_end): Move implementation to ...
14553         * config/nds32/nds32-isr.c: ... here.
14554         * config/nds32/nds32-protos.h
14555         (nds32_check_isr_attrs_conflict): Declare.
14556         (nds32_construct_isr_vectors_information): Declare.
14557         (nds32_asm_file_start_for_isr): Declare.
14558         (nds32_asm_file_end_for_isr): Declare.
14559
14560 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14561             Kito Cheng  <kito@0xlab.org>
14562             Monk Chiang  <sh.chiang04@gmail.com>
14563
14564         * config.gcc (nds32*): Add new modules to extra_objs.
14565         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
14566         (nds32be-*-*): Likewise.
14567         * config/nds32/nds32-cost.c: New file.
14568         * config/nds32/nds32-fp-as-gp.c: New file.
14569         * config/nds32/nds32-intrinsic.c: New file.
14570         * config/nds32/nds32-isr.c: New file.
14571         * config/nds32/nds32-md-auxiliary.c: New file.
14572         * config/nds32/nds32-memory-manipulation.c: New file.
14573         * config/nds32/nds32-pipelines-auxiliary.c: New file.
14574         * config/nds32/nds32-predicates.c: New file.
14575         * config/nds32/t-nds32: New file.
14576
14577 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
14578
14579         PR tree-optimization/61682
14580         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
14581         using cases and when one of the operands is equal to 1.
14582
14583 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
14584
14585         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
14586         ashr<mode>3): Correct mode of operands[2].
14587         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
14588         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
14589         Correct mode of operands[2].  Fix split condition.
14590
14591 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
14592
14593         * arm.md (arch): Add armv6_or_vfpv3.
14594         (arch_enabled): Add test for the above.
14595         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
14596         on VFP9.
14597         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
14598
14599 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
14600
14601         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
14602         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
14603         HWI 1 and negate the unsigned value.
14604         * expmed.c (expand_sdiv_pow2): For modes wider than word always
14605         use AND instead of shift.
14606         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
14607
14608 2014-07-03  Marek Polacek  <polacek@redhat.com>
14609
14610         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
14611         (-fsanitize=float-divide-by-zero): Move to the table with
14612         -fsanitize=undefined suboptions.
14613         (-fsanitize=float-cast-overflow): Likewise.
14614
14615 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
14616
14617         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
14618         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
14619         endianness.
14620
14621 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
14622
14623         * loop-invariant.c (struct invariant): Add a new member: eqno;
14624         (find_identical_invariants): Update eqno;
14625         (create_new_invariant): Init eqno;
14626         (get_inv_cost): Compute comp_cost with eqno;
14627
14628 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
14629
14630         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
14631         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
14632         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
14633         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
14634         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
14635
14636 2014-07-02  Christian Bruel  <christian.bruel@st.com>
14637
14638         PR target/29349
14639         PR target/53513
14640         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
14641         (make_preds_opaque): Delete.
14642         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
14643         (commit_mode_sets): New function.
14644         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
14645         Process all modes at once.
14646         * basic-block.h (pre_edge_lcm_avs): Declare.
14647         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
14648         Call clear_aux_for_edges. Fix comments.
14649         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
14650         (pre_edge_rev_lcm): Idem.
14651         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
14652         parameter.
14653         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
14654         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
14655         Idem.
14656         * config/i386/i386.c (x96_emit_mode_set): Idem.
14657         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
14658         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
14659         (fpscr_toggle) Disallow from delay slot.
14660         * target.def (emit_mode_set): Add prev_mode parameter.
14661         * doc/tm.texi: Regenerate.
14662
14663 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14664
14665         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
14666         variable i.
14667
14668 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
14669
14670         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
14671         vtable_pointer_value_to_vtable): Constify.
14672         (contains_polymorphic_type_p): Declare.
14673         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
14674         vtable_pointer_value_to_vtable): Constify.
14675         (contains_polymorphic_type_p): New predicate.
14676         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
14677         polymorphic types.
14678         (ipa_set_ancestor_jf): Likewise.
14679         (detect_type_change): Return false in easy cases.
14680         (compute_complex_assign_jump_func): Require type to contain
14681         polymorphic type.
14682         (compute_known_type_jump_func): Likewise.
14683
14684 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
14685
14686         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
14687         Remove.
14688         (type_in_anonymous_namespace_p): Constify argument.
14689         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
14690         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
14691         (main_odr_variant): New function.
14692         (hash_type_name): Make static; update assert; do not ICE on
14693         non-records.
14694         (types_same_for_odr): Bring here from tree.c; simplify and remove
14695         old structural comparing code that doesn't work for templates.
14696         (odr_hasher::equal): Update assert.
14697         (add_type_duplicate): Return true when bases should be computed;
14698         replace incomplete loader by complete; do not output duplicated
14699         warnings; do not ICE on non-records; set odr_violated flag.
14700         (get_odr_type): Be ready to replace incomplete type by complete
14701         one; work on ODR variants instead of main variants; reorder item
14702         in array so bases have still smaller indexes.
14703         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
14704         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
14705
14706 2014-07-01  Cary Coutant  <ccoutant@google.com>
14707
14708         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
14709         lookup.
14710         (resolve_addr_in_expr): When replacing the rtx in a location list
14711         entry, get a new address table entry.
14712         (dwarf2out_finish): Call index_location_lists even if there are no
14713         addr_index_table entries yet.
14714
14715 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
14716
14717         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
14718         change for not being obvious.
14719
14720 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
14721
14722         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
14723         unused argument.
14724
14725 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14726
14727         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
14728         (vcagt_f64): Likewise.
14729         (vcale_f64): Likewise.
14730         (vcaled_f64): Likewise.
14731         (vcales_f32): Likewise.
14732         (vcalt_f64): Likewise.
14733         (vcaltd_f64): Likewise.
14734         (vcalts_f32): Likewise.
14735
14736 2014-07-01  Marek Polacek  <polacek@redhat.com>
14737
14738         * doc/invoke.texi: Document -Wint-conversion.
14739
14740 2014-07-01  Marek Polacek  <polacek@redhat.com>
14741
14742         PR c/58286
14743         * doc/invoke.texi: Document -Wincompatible-pointer-types.
14744
14745 2014-07-01  Martin Liska  <mliska@suse.cz>
14746
14747         IPA REF alias refactoring
14748         * cgraph.h (iterate_direct_aliases): New function.
14749         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
14750         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
14751         FOR_EACH_ALIAS added.
14752         (cgraph_for_node_and_aliases): Likewise.
14753         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
14754         * ipa-inline.c (reset_edge_caches): Likewise.
14755         (update_caller_keys): Likewise.
14756         * trans-mem.c (ipa_tm_execute): Likewise.
14757         *varpool.c (varpool_analyze_node): Likewise.
14758         (varpool_for_node_and_aliases): Likewise.
14759         * ipa-ref.h (first_alias): New function.
14760         (last_alias): Likewise.
14761         (has_aliases_p): Likewise.
14762         * ipa-ref.c (ipa_ref::remove_reference): Removal function
14763         is sensitive to IPA_REF_ALIASes.
14764         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
14765         are put at the beginning of the list.
14766         (symtab_node::iterate_direct_aliases): New function.
14767
14768 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14769
14770         Revert:
14771         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
14772         type is complete.
14773         (write_ts_type_common_tree_pointers): Do not stream fields not set
14774         for incomplete types; do not stream duplicated fields for variants;
14775         sanity check that variant and type match.
14776         (write_ts_type_non_common_tree_pointers): Likewise.
14777         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
14778         TYPE_SIZE whether type is complete.
14779         (lto_input_ts_type_common_tree_pointers): Do same changes as in
14780         write_ts_type_common_tree_pointers
14781         (lto_input_ts_type_non_common_tree_pointers): Likewise.
14782
14783 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
14784
14785         * var-tracking.c (add_stores): Return instead of asserting if old
14786         and new values for conditional store are the same.
14787
14788 2014-06-30  Richard Henderson  <rth@redhat.com>
14789
14790         PR rtl-opt/61608
14791         PR target/39284
14792         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
14793         the cfg if there were any changes.
14794         * passes.def: Revert move of peephole2 after reorder_blocks;
14795         move duplicate_computed_gotos before peephole2.
14796
14797 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
14798
14799         * except.c (emit_note_eh_region_end): New helper function.
14800         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
14801         emit EH_REGION_END note.
14802         * jump.c (cleanup_barriers): Do not split a call and its
14803         corresponding CALL_ARG_LOCATION note.
14804
14805 2014-06-30  Jeff Law  <law@redhat.com>
14806
14807         PR tree-optimization/61607
14808         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
14809         deeper into the SSA_NAME_VALUE chain.
14810
14811 2014-06-30  Marek Polacek  <polacek@redhat.com>
14812
14813         * convert.c (convert_to_integer): Don't instrument conversions if the
14814         function has no_sanitize_undefined attribute.
14815         * ubsan.c: Don't run the ubsan pass if the function has
14816         no_sanitize_undefined attribute.
14817
14818 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
14819
14820         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
14821         -fsanitize=undefined suboptions.
14822
14823 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
14824
14825         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
14826         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
14827         against bigendian and adjust indices.
14828
14829 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
14830
14831         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
14832
14833 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14834
14835         PR target/61633
14836         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
14837         Add alternative; make early clobber.  Adjust both split patterns
14838         to use operand 0 as the working register.
14839
14840 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
14841
14842         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
14843         as ira_object_id_map might be NULL, or 1.
14844
14845 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
14846
14847         * loop-invariant.c (get_inv_cost): Handle register class.
14848         (gain_for_invariant): Check the register pressure of the inv
14849         and its overlapped register class, other than all.
14850
14851 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
14852
14853         * doc/invoke.texi (Optimize Options): Fix descriptions of
14854         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
14855
14856 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
14857
14858         * doc/extend.texi (Function Attributes): Update 'naked' attribute
14859         documentation.
14860
14861 2014-06-29  Tobias Grosser <tobias@grosser.es>
14862
14863         PR bootstrap/61650
14864         * graphite-isl-ast-to-gimple.c: Add missing guards.
14865
14866 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
14867
14868         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
14869         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
14870         * flag-types.h: Add new enum fgraphite_generator.
14871         * graphite-isl-ast-to-gimple.c: New.
14872         * graphite-isl-ast-to-gimple.h: New.
14873         * graphite.c (graphite_transform_loops): Add choice of Graphite
14874         code generator, which depends on flag_graphite_code_gen.
14875
14876 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
14877
14878         * graphite-dependences.c (subtract_commutative_associative_deps):
14879         Add NULL checking of the following variables: must_raw_no_source,
14880         may_raw_no_source, must_war_no_source, may_war_no_source,
14881         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
14882         must_war, may_war, must_waw, may_waw.
14883
14884 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
14885
14886         * graphite-clast-to-gimple.c: gloog is renamed to
14887         graphite_regenerate_ast_cloog.  gloog_error is renamed to
14888         graphite_regenerate_error.
14889         * graphite-clast-to-gimple.h: The definition of the struct
14890         bb_pbb_def is moved to graphite-htab.h.
14891         Add inclusion of the hash-table.h.
14892         * graphite-htab.h: The declaration of the function gloog is moved
14893         to graphite-clast-to-gimple.h and renamed to
14894         graphite_regenerate_ast_cloog.
14895         * graphite.c (graphite_transform_loops): gloog is renamed
14896         to graphite_regenerate_ast_cloog.
14897
14898 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14899
14900         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
14901         type is complete.
14902         (write_ts_type_common_tree_pointers): Do not stream fields not set
14903         for incomplete types; do not stream duplicated fields for variants;
14904         sanity check that variant and type match.
14905         (write_ts_type_non_common_tree_pointers): Likewise.
14906         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
14907         TYPE_SIZE whether type is complete.
14908         (lto_input_ts_type_common_tree_pointers): Do same changes as in
14909         write_ts_type_common_tree_pointers
14910         (lto_input_ts_type_non_common_tree_pointers): Likewise.
14911
14912 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14913
14914         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
14915
14916 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14917
14918         * tree-inline.c (remap_type_1): Do not duplicate fields
14919         that are shared in between type and its main variant.
14920
14921 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14922
14923         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
14924         of the type.
14925         (ipa_set_ancestor_jf) Likewise.
14926         (check_stmt_for_type_change): Check that we work on main variant.
14927         (detect_type_change): Look into main variant.
14928         (compute_known_type_jump_func): Check that main variant has BINFO.
14929
14930 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14931
14932         * ipa-devirt.c (set_type_binfo): New function.
14933         (add_type_duplicate): Use it.
14934         (get_odr_type): Sanity check that binfos points to main variants.
14935         (get_class_context): Be sure the context's outer_type is main variant.
14936         (contains_type_p): Walk main variant.
14937         (get_polymorphic_call_info_for_decl): Set outer_type to be
14938         main variant.
14939         (get_polymorphic_call_info): Likewise.
14940         (possible_polymorphic_call_targets): Sanity check that we operate
14941         on main variant.
14942
14943 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14944
14945         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
14946
14947 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14948
14949         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
14950         accidental change due to wide-int branch merge.
14951
14952 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14953
14954         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
14955         compressed debug support.
14956         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
14957         * configure: Regenerate.
14958         * config.in: Regenerate.
14959         * common.opt (compressed_debug_sections): New enum.
14960         (gz, gz=): New options.
14961         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
14962         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
14963         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
14964         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
14965         LINK_COMPRESS_DEBUG_SPEC.
14966         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
14967         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
14968         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
14969         (Debugging Options): Document -gz[=type].
14970
14971 2014-06-27  Martin Jambor  <mjambor@suse.cz>
14972
14973         PR ipa/61160
14974         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
14975         args_to_skip, use those from node instead.  Copy args_to_skip and
14976         combined_args_to_skip from node to the new thunk.
14977         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
14978         (cgraph_create_virtual_clone): Moved computation of
14979         combined_args_to_skip...
14980         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
14981
14982 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
14983
14984         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
14985         redundant diagnostic machinary.
14986
14987 2014-06-27  Richard Biener  <rguenther@suse.de>
14988
14989         * tree-ssa-math-opts.c (bswap_replace): Fix
14990         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
14991
14992 2014-06-27  Martin Liska  <mliska@suse.cz>
14993
14994         * gimple.h (gimple_location_safe): New function introduced.
14995         * cgraphunit.c (walk_polymorphic_call_targets): Usage
14996         of gimple_location_safe replaces gimple_location.
14997         (gimple_fold_call): Likewise.
14998         * ipa-devirt.c (ipa_devirt): Likewise.
14999         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
15000         * ipa.c (walk_polymorphic_call_targets): Likewise.
15001         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
15002
15003 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
15004
15005         PR tree-optimization/57233
15006         PR tree-optimization/61299
15007         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
15008         functions.
15009         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
15010         would be lowered to scalar shifts, check if corresponding
15011         shifts and vector BIT_IOR_EXPR are supported and don't lower
15012         or lower just to narrower vector type in that case.
15013         * expmed.c (expand_shift_1): Fix up handling of vector
15014         shifts and rotates.
15015
15016 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
15017
15018         PR target/61586
15019         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
15020
15021 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
15022
15023         * doc/invoke.texi (-fsemantic-interposition): Document.
15024         * common.opt (fsemantic-interposition): New flag.
15025         * varasm.c (decl_replaceable_p): Use it.
15026
15027 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15028
15029         PR target/61542
15030         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
15031         extraction other than index 3.
15032
15033 2014-06-26  Teresa Johnson  <tejohnson@google.com>
15034
15035         * doc/invoke.texi: Fix typo.
15036         * dumpfile.c: Add support for documented -fdump-* options
15037         optimized/missed/note/optall.
15038
15039 2014-06-26  Martin Jambor  <mjambor@suse.cz>
15040
15041         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
15042         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
15043         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
15044         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
15045         * opts.c (default_options_optimization): Set
15046         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
15047         * doc/invoke.texi (allow-load-data-races)
15048         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
15049         (allow-store-data-races): Document the new default.
15050
15051 2014-06-26  Martin Jambor  <mjambor@suse.cz>
15052
15053         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
15054         renamed to ipa_impossible_devirt_target.  Fix typo.
15055         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
15056         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
15057         ipa_impossible_devirt_target.
15058
15059 2014-06-26  Richard Biener  <rguenther@suse.de>
15060
15061         PR tree-optimization/61607
15062         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
15063         explaining why we restrict copies on loop depth.
15064         * tree-ssa-dom.c (cprop_operand): Remove restriction on
15065         on loop depth.
15066         (record_equivalences_from_phis): Instead add it here.
15067
15068 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
15069
15070         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
15071         (LTO_WRAPPER_OBJS): New variable.
15072         (lto-wrapper$(exeext)): Use it.
15073         * collect2.c: Include "collect-utils.h".
15074         (verbose, debug): Remove variables.
15075         (at_file_supplied): No longer static.
15076         (tool_name): New variable.
15077         (do_wait, fork_execute, maybe_unlink): Don't declare.
15078         (tool_cleanup): No longer static.
15079         (notice): Remove function.
15080         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
15081         fork_execute calls.
15082         (collect_wait, do_wait, collect_execute): Remove functions.
15083         (maybe_unlink): No longer static.
15084         * collect2.h (verbose, debug): Don't declare.
15085         (at_file_supplied): Declare.
15086         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
15087         changed.
15088         (collect_execute): Replace with implementation from collect2, plus a
15089         new arg use_atfile.  All callers changed.
15090         (collect_wait): Replace with implementation from collect2.
15091         (maybe_unlink_file): Remove function.
15092         (fork_execute): Replace with implementation from collect2, plus a
15093         new arg use_atfile.  All callers changed.
15094         (do_wait): Add call to utils_cleanup to the error path.
15095         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
15096         (tool_cleanup): Adjust declarations.
15097         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
15098         * tlink.c: Include "collect-utils.h".
15099         (tlink_execute): New arg use_atfile.  All callers changed.
15100         (tlink_init, tlink_execute): Remove declarations.
15101
15102         * collect-utils.c (save_temps): New variable.
15103         (do_wait): Use it instead of debug.  Use fatal_error.
15104         * collect-utils.h (save_temps): Declare.
15105         * collect2.c (verbose): Rename from vflag.  All uses changed.
15106         (tool_cleanup): New function, copied from collect_atexit.
15107         (collect_atexit, handler): Just call it.
15108         * collect2.h (verbose): Declaration renamed from vflag.
15109         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
15110         debug.
15111
15112         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
15113         (lto-wrapper$(exeext)): Link with collect-utils.o.
15114         * collect-utils.c: New file.
15115         * collect-utils.h: New file.
15116         * lto-wrapper.c: Include "collect-utils.h".
15117         (args_name): Delete variable.
15118         (tool_name): New variable.
15119         (tool_cleanup): New function.
15120         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
15121         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
15122         (fork_execute): Remove functions.
15123
15124 2014-06-26  Nick Clifton  <nickc@redhat.com>
15125
15126         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
15127
15128         * doc/extend.texi (Function Attributes): Fix typo in description
15129         of RX vector attribute.
15130
15131 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15132
15133         * config.gcc (supported_defaults): Error when passing either
15134         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
15135
15136 2014-06-26  Richard Biener  <rguenther@suse.de>
15137
15138         * tree-ssa-dom.c (cprop_operand): Remove restriction on
15139         propagating volatile pointers.
15140
15141 2014-06-26  Richard Biener  <rguenther@suse.de>
15142
15143         PR tree-optimization/61607
15144         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
15145         loop if we redirected its latch edge.
15146         (thread_block_1): Do not cancel loops prematurely.
15147
15148 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
15149
15150         * toplev.c (backend_init_target): Move init_emit_regs and
15151         init_regs to...
15152         (backend_init) ... here; skip ira_init_once and backend_init_target.
15153         (target_reinit) ... and here; clear
15154         this_target_rtl->lang_dependent_initialized.
15155         (lang_dependent_init_target): Clear
15156         this_target_rtl->lang_dependent_initialized;
15157         break out rtl initialization to ...
15158         (initialize_rtl): ... here; call also backend_init_target
15159         and ira_init_once.
15160         * toplev.h (initialize_rtl): New function.
15161         * function.c: Include toplev.h
15162         (init_function_start): Call initialize_rtl.
15163         * rtl.h (target_rtl): Add target_specific_initialized,
15164         lang_dependent_initialized.
15165
15166 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
15167             Jakub Jelinek  <jakub@redhat.com>
15168
15169         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
15170
15171 2014-06-25  Tom de Vries  <tom@codesourcery.com>
15172
15173         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
15174
15175 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15176
15177         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
15178         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
15179         Issue a strict overflow warning if appropriate.
15180
15181 2014-06-25  Martin Liska  <mliska@suse.cz>
15182
15183         IPA REF refactoring
15184         * Makefile.in: Removed header file (ipa-ref-inline.h).
15185         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
15186         called.
15187         (cgraph_speculative_call_info): Likewise.
15188         (cgraph_for_node_thunks_and_aliases): Likewise.
15189         (cgraph_for_node_and_aliases): Likewise.
15190         (verify_cgraph_node): Likewise.
15191         * cgraph.h: Batch of IPA REF functions become member functions of
15192         symtab_node: add_reference, maybe_add_reference, clone_references,
15193         clone_referring, clone_reference, find_reference,
15194         remove_stmt_references, remove_all_references,
15195         remove_all_referring, dump_references, dump_referring,
15196         has_alias_p, iterate_reference, iterate_referring.
15197         * cgraphbuild.c (record_reference): New IPA REF function used.
15198         (record_type_list): Likewise.
15199         (record_eh_tables): Likewise.
15200         (mark_address): Likewise.
15201         (mark_load): Likewise.
15202         (mark_store): Likewise.
15203         (pass_build_cgraph_edges): Likewise.
15204         (rebuild_cgraph_edge): Likewise.
15205         (cgraph_rebuild_references): Likewise.
15206         (pass_remove_cgraph_callee_edges): Likewise.
15207         * cgraphclones.c (cgraph_clone_node): Likewise.
15208         (cgraph_create_virtual_clone): Likewise.
15209         (cgraph_materialize_clone): Likewise.
15210         (cgraph_materialize_all_clones): Likewise.
15211         * cgraphunit.c (cgraph_reset_node): Likewise.
15212         (cgraph_reset_node): Likewise.
15213         (analyze_function): Likewise.
15214         (assemble_thunks_and_aliases): Likewise.
15215         (expand_function): Likewise.
15216         * ipa-comdats.c (propagate_comdat_group): Likewise.
15217         (enqueue_references): Likewise.
15218         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
15219         (create_specialized_node): Likewise.
15220         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
15221         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
15222         * ipa-inline.c (reset_edge_caches): Likewise.
15223         (update_caller_keys): Likewise.
15224         (execute): Likewise.
15225         * ipa-prop.c (remove_described_reference): Likewise.
15226         (propagate_controlled_uses): Likewise.
15227         (ipa_edge_duplication_hook): Likewise.
15228         (ipa_modify_call_arguments): Likewise.
15229         * ipa-pure-const.c (propagate_pure_const): Likewise.
15230         * ipa-ref-inline.h: Header file removed, functions moved
15231         to symtab_node class.
15232         * ipa-ref.c (remove_reference): New class member function.
15233         (cannot_lead_to_return): New class member function.
15234         (referring_ref_list): Likewise.
15235         (referred_ref_list): Likewise.
15236         Rest of functions moved to symtab_node class.
15237         * ipa-ref.h: New member functions remove_reference,
15238         cannot_lead_to_return, referring_ref_list, referred_ref_list added
15239         to ipa_ref class.
15240         ipa_ref_list class has new member functions: first_reference,
15241         first_referring, clear, nreferences.
15242         * ipa-reference.c (analyze_function): New IPA REF function used.
15243         (write_node_summary_p): Likewise.
15244         (ipa_reference_write_optimization_summary): Likewise.
15245         * ipa-split.c (split_function): Likewise.
15246         * ipa-utils.c (ipa_reverse_postorder): Likewise.
15247         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
15248         (function_and_variable_visibility): Likewise.
15249         * ipa.c (has_addr_references_p): Likewise.
15250         (process_references): Argument type changed.
15251         (symtab_remove_unreachable_nodes): New IPA REF function used.
15252         (process_references): Likewise.
15253         (set_writeonly_bit): Likewise.
15254         * lto-cgraph.c: Implementation of new symtab_node member functions
15255         that uses new IPA REF functions.
15256         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
15257         function used.
15258         * lto-streamer-out.c (output_symbol_p): Likewise.
15259         * lto-streamer.h (referenced_from_this_partition_p): Argument type
15260         changed.
15261         * symtab.c: Implementation of new IPA REF API.
15262         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
15263         (ipa_tm_create_version): Likewise.
15264         (ipa_tm_execute): Likewise.
15265         * tree-emutls.c (gen_emutls_addr): Likewise.
15266         * tree-inline.c (copy_bb): Likewise.
15267         (delete_unreachable_blocks_update_callgraph): Likewise.
15268         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
15269         (varpool_for_node_and_aliases): Likewise.
15270
15271 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
15272
15273         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
15274
15275 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
15276
15277         PR bootstrap/61598
15278         * fold-const.c (fold_checksum_tree): Use a hash_table of const
15279         tree_node * instead of tree_node *.
15280         (fold): Adjust.
15281         (print_fold_checksum): Likewise.
15282         (fold_check_failed): Likewise.
15283         (debug_fold_checksum): Likewise.
15284         (fold_build1_stat_loc): Likewise.
15285         (fold_build2_stat_loc): Likewise.
15286         (fold_build3_stat_loc): Likewise.
15287         (fold_build_call_array_loc): Likewise.
15288
15289 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
15290
15291         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
15292         implementation with call to...
15293         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
15294         function.
15295         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
15296         Declare.
15297
15298 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
15299
15300         PR tree-optimization/57742
15301         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
15302         after replacing the statement.
15303
15304 2014-06-25  Nick Clifton  <nickc@redhat.com>
15305
15306         * config/v850/v850.c (GHS_default_section_names): Change to const
15307         char * type.
15308         (GHS_current_section_names): Likewise.
15309         (v850_insert_attributes): Do not build strings, just assign the
15310         names directly.  Change the type of 'chosen_section' to const
15311         char*.
15312         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
15313         directly to the array entry.
15314         * config/v850/v850.h (GHS_default_section_names): Change to const
15315         char * type.
15316         (GHS_current_section_names): Likewise.
15317
15318 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
15319
15320         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
15321         (LANG_HOOKS_DECLS): Add it.
15322         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
15323         has correct type.
15324         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
15325         * langhooks.h (struct lang_hooks_for_decls): Add
15326         omp_clause_linear_ctor hook.
15327         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
15328         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
15329         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
15330         combined simd loop use omp_clause_linear_ctor hook.
15331
15332 2014-06-24  Cong Hou  <congh@google.com>
15333
15334         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
15335         pattern recognition.
15336         (type_conversion_p): PROMOTION is true if it's a type promotion
15337         conversion, and false otherwise.  Return true if the given expression
15338         is a type conversion one.
15339         * tree-vectorizer.h: Adjust the number of patterns.
15340         * tree.def: Add SAD_EXPR.
15341         * optabs.def: Add sad_optab.
15342         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
15343         * expr.c (expand_expr_real_2): Likewise.
15344         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
15345         * gimple.c (get_gimple_rhs_num_ops): Likewise.
15346         * optabs.c (optab_for_tree_code): Likewise.
15347         * tree-cfg.c (estimate_operator_cost): Likewise.
15348         * tree-ssa-operands.c (get_expr_operands): Likewise.
15349         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
15350         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
15351         * doc/generic.texi: Add document for SAD_EXPR.
15352         * doc/md.texi: Add document for ssad and usad.
15353
15354 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15355
15356         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
15357         qualification in cast.
15358
15359 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
15360
15361         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
15362         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
15363         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
15364         (tree_function_decl): ... here.
15365         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
15366         streaming of vindex to ...
15367         (write_ts_function_decl_tree_pointers): ... here.
15368         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
15369         Do not stream DECL_VINDEX.
15370         (lto_input_ts_function_decl_tree_pointers): Stream it here.
15371
15372 2014-06-24  Catherine Moore  <clm@codesourcery.com>
15373             Sandra Loosemore  <sandra@codesourcery.com>
15374
15375         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
15376         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
15377         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
15378
15379 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
15380
15381         * doc/invoke.texi (Warning Options): Remove duplicated
15382         -Wmaybe-uninitialized.
15383
15384 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
15385
15386         PR tree-optimization/57742
15387         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
15388         (handle_builtin_malloc, handle_builtin_memset): New functions.
15389         (strlen_optimize_stmt): Call them.
15390         * passes.def: Move strlen after loop+dom but before vrp.
15391
15392 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
15393
15394         PR target/61570
15395         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
15396         model family 6 CPU with has_longmode never use a CPU without
15397         64-bit support.
15398
15399 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
15400
15401         PR target/61570
15402         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
15403         the last change.
15404
15405 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15406
15407         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
15408         * dominance.c (iterate_fix_dominators): Use hash_map instead of
15409         pointer_map.
15410         * hash-map.h: New file.
15411         * ipa-comdats.c: Use hash_map instead of pointer_map.
15412         * ipa.c: Likewise.
15413         * lto-section-out.c: Adjust.
15414         * lto-streamer.h: Replace pointer_map with hash_map.
15415         * symtab.c (verify_symtab): Likewise.
15416         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
15417         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
15418         * tree-streamer.h: Likewise.
15419         * tree-streamer.c: Adjust.
15420         * pointer-set.h: Remove pointer_map.
15421
15422 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15423
15424         * hash-table.h: Add a template arg to choose between storing values
15425         and storing pointers to values, and then provide partial
15426         specializations for both.
15427         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
15428         should store, not the type values should point to.
15429         * tree-into-ssa.c (var_info_hasher): Likewise.
15430         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
15431         * tree-complex.c: Adjust.
15432         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
15433         table instead of int_tree_map *.
15434         * tree-parloops.c: Adjust.
15435         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
15436         type is being stored.
15437         * tree-vectorizer.c: Adjust.
15438
15439 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15440
15441         * hash-table.h: Remove a layer of indirection from hash_table so that
15442         it contains the hash table's data instead of a pointer to the data.
15443         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
15444         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
15445         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
15446         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
15447         fold-const.c, gcse.c, ggc-common.c,
15448         gimple-ssa-strength-reduction.c, gimplify.c,
15449         graphite-clast-to-gimple.c, graphite-dependences.c,
15450         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
15451         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
15452         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
15453         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
15454         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
15455         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
15456         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
15457         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
15458         tree-ssa-live.c, tree-ssa-loop-im.c,
15459         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
15460         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
15461         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
15462         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
15463         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
15464         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
15465         vtable-verify.c, vtable-verify.h: Adjust.
15466
15467 2014-06-24  Richard Biener  <rguenther@suse.de>
15468
15469         PR tree-optimization/61572
15470         * tree-ssa-sink.c (statement_sink_location): Do not sink
15471         loads from hard registers.
15472
15473 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
15474
15475         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
15476         not mentioned in clauses use private clause if the iterator is
15477         declared in #pragma omp for simd, and when adding lastprivate
15478         instead, add it to the outer #pragma omp for too.  Diagnose
15479         if the variable is private in outer context.  For simd collapse > 1
15480         loops, replace all iterators with temporaries.
15481         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
15482         same even in collapse > 1 loops.
15483
15484         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
15485         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
15486         non-NULL.
15487         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
15488         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
15489         non-NULL.
15490         (gimplify_adjust_omp_clauses): Likewise.
15491         * omp-low.c (lower_rec_simd_input_clauses,
15492         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
15493         safelen the same as safelen(1).
15494         * tree-nested.c (convert_nonlocal_omp_clauses,
15495         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
15496         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
15497         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
15498         Fixup handling of GIMPLE_OMP_TARGET.
15499         (convert_tramp_reference_stmt, convert_gimple_call): Handle
15500         GIMPLE_OMP_TARGET.
15501
15502 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
15503
15504         PR tree-optimization/61554
15505         * tree-ssa-propagate.c: Include "bitmap.h".
15506         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
15507         properly update constructor/destructor.
15508         (substitute_and_fold_dom_walker::before_dom_children):
15509         Remove call to gimple_purge_dead_eh_edges, add bb->index to
15510         need_eh_cleaup instead.
15511         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
15512         need_eh_cleanup.
15513
15514 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
15515
15516         * varpool.c (dump_varpool_node): Dump used_by_single_function.
15517         * tree-pass.h (make_pass_ipa_single_use): New pass.
15518         * cgraph.h (used_by_single_function): New flag.
15519         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
15520         Stream it.
15521         * passes.def (pass_ipa_single_use): Scedule.
15522         * ipa.c (BOTTOM): New macro.
15523         (meet): New function
15524         (propagate_single_user): New function.
15525         (ipa_single_use): New function.
15526         (pass_data_ipa_single_use): New pass.
15527         (pass_ipa_single_use): New pass.
15528         (pass_ipa_single_use::gate): New gate.
15529         (make_pass_ipa_single_use): New function.
15530
15531 2014-06-23  Kai Tietz  <ktietz@redhat.com>
15532
15533         PR target/39284
15534         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
15535         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
15536
15537 2014-06-23  Richard Biener  <rguenther@suse.de>
15538
15539         * tree-ssa-loop.c (gate_loop): New function.
15540         (pass_tree_loop::gate): Call it.
15541         (pass_data_tree_no_loop, pass_tree_no_loop,
15542         make_pass_tree_no_loop): New.
15543         * tree-vectorizer.c: Include tree-scalar-evolution.c
15544         (pass_slp_vectorize::execute): Initialize loops and SCEV if
15545         required.
15546         (pass_slp_vectorize::clone): New method.
15547         * timevar.def (TV_TREE_NOLOOP): New.
15548         * tree-pass.h (make_pass_tree_no_loop): Declare.
15549         * passes.def (pass_tree_no_loop): New pass group with
15550         SLP vectorizer.
15551
15552 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
15553
15554         PR target/61570
15555         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
15556         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
15557
15558 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
15559
15560         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
15561         "yes" where needed.
15562
15563 2014-06-23  Alan Modra  <amodra@gmail.com>
15564
15565         PR bootstrap/61583
15566         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
15567         to zero on debug statements.
15568
15569 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
15570
15571         PR target/60825
15572         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
15573         Ignore third operand if present by marking qualifier_internal.
15574
15575         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
15576
15577         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
15578         vector extension.
15579         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
15580         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
15581         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
15582         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
15583         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
15584         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
15585         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
15586         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
15587         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
15588         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
15589         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
15590         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
15591         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
15592         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
15593         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
15594         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
15595         logic in GCC vector extensions
15596
15597         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
15598         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
15599         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
15600         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
15601         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
15602         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
15603         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
15604         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
15605         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
15606         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
15607
15608         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
15609
15610         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
15611         extensions.
15612
15613         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
15614         (vget_low_s64): Use __GET_LOW macro.
15615         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
15616         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
15617         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
15618         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
15619         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
15620
15621         (vcombine_s64): Use GCC vector extensions; remove cast.
15622         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
15623         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
15624         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
15625         Fix type signature; remove cast.
15626
15627 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
15628
15629         PR target/60825
15630         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
15631         V1DFmode.
15632         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
15633         add V1DFmode
15634         (BUILTIN_VD1): New.
15635         (BUILTIN_VD_RE): Remove.
15636         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
15637         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
15638         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
15639         variant but not df.
15640         (vreinterpretv1df*, vreinterpret*v1df): New.
15641         (vreinterpretdf*, vreinterpret*df): Remove.
15642         * config/aarch64/aarch64-simd.md (aarch64_create,
15643         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
15644         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
15645         (VD1): New.
15646         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
15647         (vcreate_f64): Remove cast, use v1df builtin.
15648         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
15649         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
15650         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
15651         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
15652         vmov_n_f64, vst1_f64): Use gcc vector extensions.
15653         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
15654         add range check using __builtin_aarch64_im_lane_boundsi.
15655         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
15656         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
15657         type signature, use gcc vector extensions.
15658         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
15659         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
15660         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
15661         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
15662         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
15663         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
15664         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
15665         vreinterpret_u64_f64): Use v1df builtin not df.
15666
15667 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
15668
15669         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
15670         vector registers.
15671
15672 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
15673
15674         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
15675         priority directly.
15676
15677 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
15678
15679         * loop-invariant.c (pre_check_invariant_p): New function.
15680         (find_invariant_insn): Call pre_check_invariant_p.
15681
15682 2014-06-22  Richard Henderson  <rth@redhat.com>
15683
15684         PR target/61565
15685         * compare-elim.c (struct comparison): Add eh_note.
15686         (find_comparison_dom_walker::before_dom_children): Don't eliminate
15687         a redundant comparison in a different EH region.  Purge EH edges if
15688         necessary.
15689
15690 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15691
15692         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
15693         (var_shift): Use it.
15694         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
15695         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
15696         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
15697         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
15698         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
15699         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
15700         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
15701         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
15702         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
15703         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
15704         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
15705         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
15706         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
15707         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
15708         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
15709         *rotldi3_internal15be): Use the new attribute.  Merge register and
15710         integer alternatives.
15711
15712 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15713
15714         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
15715         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
15716         split, *ashrdi3_internal3 and split): Delete, merge into...
15717         (ashr<mode>3): New expander.
15718         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
15719         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
15720
15721 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15722
15723         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
15724         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
15725         *rotldi3_internal3 and split): Delete, merge into...
15726         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
15727         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
15728         Use "rotlw" extended mnemonic.
15729
15730 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15731
15732         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
15733         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
15734         and split, *ashldi3_internal3 and split): Delete, merge into...
15735         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
15736         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
15737
15738 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15739
15740         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
15741         (lshrsi3, two anonymous define_insns and define_splits,
15742         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
15743         *lshrdi3_internal3 and split): Delete, merge into...
15744         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
15745         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
15746
15747 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15748
15749         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
15750         Remove "O" alternative.
15751
15752 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
15753
15754         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
15755         (mips_move_from_gpr_cost): Likewise.
15756         (mips_register_move_cost): Update accordingly.
15757         (mips_secondary_reload_class): Remove name of in_p.
15758
15759 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
15760
15761         PR target/61503
15762         * config/i386/i386.md (x86_64_shrd, x86_shrd,
15763         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
15764
15765 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
15766
15767         * config/nios2/nios2.c: Include "builtins.h".
15768
15769 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
15770
15771         * cgraph.h (tls_model_names): New variable.
15772         * print-tree.c (print_node): Simplify.
15773         * varpool.c (tls_model_names): New variable.
15774         (dump_varpool_node): Output tls model.
15775
15776 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
15777
15778         * ipa-visibility.c (function_and_variable_visibility): Disable
15779         temporarily local aliases for some targets.
15780
15781 2014-06-20  Marek Polacek  <polacek@redhat.com>
15782
15783         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
15784         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
15785         into SANITIZE_UNDEFINED.
15786         * doc/invoke.texi: Describe -fsanitize=bounds.
15787         * gimplify.c (gimplify_call_expr): Add gimplification of internal
15788         functions created in the FEs.
15789         * internal-fn.c: Move "internal-fn.h" after "tree.h".
15790         (expand_UBSAN_BOUNDS): New function.
15791         * internal-fn.def (UBSAN_BOUNDS): New internal function.
15792         * internal-fn.h: Don't define internal functions here.
15793         * opts.c (common_handle_option): Add -fsanitize=bounds.
15794         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
15795         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
15796         * tree-core.h: Define internal functions here.
15797         (struct tree_base): Add ifn field.
15798         * tree-pretty-print.c: Include "internal-fn.h".
15799         (dump_generic_node): Handle functions without CALL_EXPR_FN.
15800         * tree.c (get_callee_fndecl): Likewise.
15801         (build_call_expr_internal_loc): New function.
15802         * tree.def (CALL_EXPR): Update description.
15803         * tree.h (CALL_EXPR_IFN): Define.
15804         (build_call_expr_internal_loc): Declare.
15805         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
15806         types.
15807         (ubsan_type_descriptor): Change bool parameter to enum
15808         ubsan_print_style.  Adjust the code.  Add handling of
15809         UBSAN_PRINT_ARRAY.
15810         (ubsan_expand_bounds_ifn): New function.
15811         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
15812         (ubsan_build_overflow_builtin): Likewise.
15813         (instrument_bool_enum_load): Likewise.
15814         (ubsan_instrument_float_cast): Likewise.
15815         * ubsan.h (enum ubsan_print_style): New enum.
15816         (ubsan_expand_bounds_ifn): Declare.
15817         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
15818
15819 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
15820
15821         * config/rs6000/rs6000.md: Append `DONE' to preparation
15822         statements of `bswap' pattern splitters.
15823
15824 2014-06-20  Tom de Vries  <tom@codesourcery.com>
15825
15826         * target.def (call_fusage_contains_non_callee_clobbers): Update
15827         definition.
15828         * doc/tm.texi: Regenerate.
15829
15830 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
15831             Max Ostapenko  <m.ostapenko@partner.samsung.com>
15832
15833         PR sanitizer/61547
15834         * asan.c (instrument_strlen_call): Fixed instrumentation of
15835         trailing byte.
15836
15837 2014-06-20  Martin Jambor  <mjambor@suse.cz>
15838
15839         PR ipa/61540
15840         * ipa-prop.c (impossible_devirt_target): New function.
15841         (try_make_edge_direct_virtual_call): Use it, also instead of
15842         asserting.
15843
15844 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
15845             Max Ostapenko  <m.ostapenko@partner.samsung.com>
15846
15847         PR sanitizer/61530
15848         * asan.c (build_check_stmt): Add condition.
15849
15850 2014-06-20  Martin Jambor  <mjambor@suse.cz>
15851
15852         PR ipa/61211
15853         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
15854         expanded clones.
15855
15856 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15857
15858         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
15859         Update comments.
15860         (VCONQ): Make comment more helpful.
15861         (VCON): Delete.
15862         * config/aarch64/aarch64-simd.md
15863         (aarch64_sqdmulh_lane<mode>):
15864         Use VCOND for operands 2.  Update lane checking and flipping logic.
15865         (aarch64_sqrdmulh_lane<mode>): Likewise.
15866         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
15867         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
15868         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
15869         attribute of operand 3 to VCOND.
15870         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
15871         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
15872         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
15873         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
15874         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
15875         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
15876         define_insn.
15877         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
15878         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
15879         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
15880         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
15881         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
15882         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
15883         operand to VCOND.  Update lane flipping and bounds checking logic.
15884         (aarch64_sqdmlal2_lane<mode>): Likewise.
15885         (aarch64_sqdmlsl_lane<mode>): Likewise.
15886         (aarch64_sqdmull_lane<mode>): Likewise.
15887         (aarch64_sqdmull2_lane<mode>): Likewise.
15888         (aarch64_sqdmlal_laneq<mode>):
15889         Replace VCON usage with VCONQ.
15890         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
15891         (aarch64_sqdmlal2_laneq<mode>): Emit
15892         aarch64_sqdmlal2_laneq<mode>_internal insn.
15893         Replace VCON with VCONQ.
15894         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
15895         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
15896         (aarch64_sqdmull_laneq<mode>): Emit
15897         aarch64_sqdmull_laneq<mode>_internal insn.
15898         Replace VCON with VCONQ.
15899         (aarch64_sqdmull2_laneq<mode>): Emit
15900         aarch64_sqdmull2_laneq<mode>_internal insn.
15901         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
15902         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
15903         of 3rd argument to int16x4_t.
15904         (vqdmlalh_lane_s16): Likewise.
15905         (vqdmlslh_lane_s16): Likewise.
15906         (vqdmull_high_lane_s16): Likewise.
15907         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
15908         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
15909         (vqdmlsl_lane_s16): Likewise.
15910         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
15911         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
15912         (vqdmlals_lane_s32): Likewise.
15913         (vqdmlsls_lane_s32): Likewise.
15914         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
15915         (vqdmulls_lane_s32): Likewise.
15916         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
15917         (vqdmlsl_lane_s32): Likewise.
15918         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
15919         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
15920         (vqrdmulhh_lane_s16): Likewise.
15921         (vqdmlsl_high_lane_s16): Likewise.
15922         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
15923         (vqdmlsl_high_lane_s32): Likewise.
15924         (vqrdmulhs_lane_s32): Likewise.
15925
15926 2014-06-20  Tom de Vries  <tom@codesourcery.com>
15927
15928         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
15929         get_call_reg_set_usage.
15930
15931 2014-06-20  Tom de Vries  <tom@codesourcery.com>
15932
15933         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
15934         it contains all call_used_regs.
15935
15936 2014-06-20  Tom de Vries  <tom@codesourcery.com>
15937
15938         * final.c (collect_fn_hard_reg_usage): Add and use variable
15939         function_used_regs.
15940
15941 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
15942
15943         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
15944         (set_init_priority, get_init_priority, set_fini_priority,
15945         get_fini_priority): New methods.
15946         * tree.c (init_priority_for_decl): Remove.
15947         (init_ttree): Do not initialize init priority.
15948         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
15949         (decl_priority_info): Remove.
15950         (decl_init_priority_insert): Rewrite.
15951         (decl_fini_priority_insert): Rewrite.
15952         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
15953         tree_priority_map_marked_p): Remove.
15954         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
15955         * lto-streamer-out.c (hash_tree): Do not hash priorities.
15956         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
15957         not output priorities.
15958         (pack_ts_function_decl_value_fields): Likewise.
15959         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
15960         not input priorities.
15961         (unpack_ts_function_decl_value_fields): Likewise.
15962         * symtab.c (symbol_priority_map): Declare.
15963         (init_priority_hash): Declare.
15964         (symtab_unregister_node): Unregister from priority hash, too.
15965         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
15966         New methods.
15967         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
15968         (symbol_priority_info): New function.
15969         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
15970         New methods.
15971         * tree-core.h (tree_priority_map): Remove.
15972
15973 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
15974
15975         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
15976         0xff to uint64_t before shifting it up.
15977
15978 2014-06-20  Julian Brown  <julian@codesourcery.com>
15979             Chung-Lin Tang  <cltang@codesourcery.com>
15980
15981         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
15982         TARGET_THUMB1_ONLY. Add comments.
15983
15984 2014-06-19  Tom de Vries  <tom@codesourcery.com>
15985
15986         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
15987         return type to void.
15988         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
15989
15990 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
15991
15992         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
15993         as "move", from depends_on.
15994
15995 2014-06-19  Terry Guo  <terry.guo@arm.com>
15996
15997         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
15998         stage.
15999
16000 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
16001
16002         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
16003         Remove cr5.
16004         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
16005
16006 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
16007
16008         PR target/61550
16009         * config/sh/sh.c (prepare_move_operands): Don't process TLS
16010         addresses here if reload in progress or completed.
16011
16012 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
16013
16014         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
16015         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
16016         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
16017         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
16018         (mips_register_priority): New function that implements the target
16019         hook TARGET_REGISTER_PRIORITY.
16020         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
16021         (mips_lra_p): Likewise for TARGET_LRA_P.
16022         (TARGET_REGISTER_PRIORITY): Define macro.
16023         (TARGET_SPILL_CLASS): Likewise.
16024         (TARGET_LRA_P): Likewise.
16025         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
16026         classes.
16027         (REG_CLASS_NAMES): Likewise.
16028         (REG_CLASS_CONTENTS): Likewise.
16029         (BASE_REG_CLASS): Use M16_SP_REGS.
16030         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
16031         New set attribute to enable alternatives depending on the register
16032         allocator used.
16033         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
16034         (*lea64): Disable pattern for MIPS16.
16035         * config/mips/mips.opt (mlra): New option.
16036
16037 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
16038
16039         * lra-constraints.c (base_to_reg): New function.
16040         (process_address): Use new function.
16041
16042 2014-06-18  Tom de Vries  <tom@codesourcery.com>
16043
16044         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
16045         * config/aarch64/aarch64.c
16046         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
16047         (aarch64_emit_call_insn): New function.
16048         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
16049         of emit_call_insn.
16050         * config/aarch64/aarch64.md (define_expand "call_internal")
16051         (define_expand "call_value_internal", define_expand "sibcall_internal")
16052         (define_expand "sibcall_value_internal"): New.
16053         (define_expand "call", define_expand "call_value")
16054         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
16055         expand variant and aarch64_emit_call_insn.
16056
16057 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
16058             Tom de Vries  <tom@codesourcery.com>
16059
16060         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
16061         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
16062         Redefine to true.
16063         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
16064         clobbers to CALL_INSN_FUNCTION_USAGE.
16065         (define_expand "sibcall_internal")
16066         (define_expand "sibcall_value_internal"): New.
16067         (define_expand "call", define_expand "call_value"): Add argument to
16068         arm_emit_call_insn.
16069         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
16070         (define_expand "sibcall_value"): Use sibcall_value_internal and
16071         arm_emit_call_insn.
16072
16073 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16074
16075         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
16076
16077 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16078
16079         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
16080         __udivmoddi4.
16081
16082 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16083
16084         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
16085         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
16086         annotations. Fix DWARF information.
16087
16088 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16089
16090         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
16091         __udivmoddi4, and fixups for negative operands.
16092
16093 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16094
16095         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
16096
16097 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16098
16099         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
16100         to __udivmoddi4.
16101
16102 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16103
16104         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
16105         manipulation.
16106
16107 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16108
16109         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
16110         describing register usage on function entry and exit.
16111
16112 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16113
16114         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
16115         (__aeabi_ldivmod): Fix whitespace.
16116
16117 2014-06-18  Andreas Schwab  <schwab@suse.de>
16118
16119         * doc/md.texi (Standard Names): Use @itemx for grouped items.
16120         Remove blank line after @item.
16121
16122 2014-06-18  Richard Henderson  <rth@redhat.com>
16123
16124         PR target/61545
16125         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
16126
16127 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16128
16129         * config/arm/arm.c (neon_vector_mem_operand): Allow register
16130         POST_MODIFY for neon loads and stores.
16131         (arm_print_operand): Output post-index register for neon loads and
16132         stores.
16133
16134 2014-06-18  Richard Biener  <rguenther@suse.de>
16135
16136         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
16137
16138 2014-06-18  Richard Biener  <rguenther@suse.de>
16139
16140         * tree-pass.h (make_pass_dce_loop): Remove.
16141         * passes.def: Replace pass_dce_loop with pass_dce.
16142         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
16143         changed free niter estimates and reset the scev cache.
16144         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
16145         make_pass_dce_loop): Remove.
16146         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
16147         (fini_copy_prop): Return whether something changed.  Always
16148         let substitute_and_fold perform DCE and free niter estimates
16149         and reset the scev cache if so.
16150         (execute_copy_prop): If sth changed schedule cleanup-cfg.
16151         (pass_data_copy_prop): Do not unconditionally schedule
16152         cleanup-cfg or update-ssa.
16153
16154 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
16155
16156         PR tree-optimization/61518
16157         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
16158         reduction var is used in reduction stmt or phi-function only.
16159
16160 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16161
16162         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
16163
16164 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16165
16166         PR tree-optimization/61517
16167         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
16168         whose rhs's first tree is the source expression instead of the
16169         expression itself.
16170         (find_bswap_or_nop): Likewise.
16171         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
16172         gimple stmt whose rhs's first tree is the source. In the memory source
16173         case, move the stmt to be replaced close to one of the original load to
16174         avoid the problem of a store between the load and the stmt's original
16175         location.
16176         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
16177         signature.
16178
16179 2014-06-18  Andreas Schwab  <schwab@suse.de>
16180
16181         PR rtl-optimization/54555
16182         * postreload.c (move2add_use_add2_insn): Substitute
16183         STRICT_LOW_PART only if it is cheaper.
16184
16185 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
16186
16187         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
16188         Do not use unspec as call operand.  Use memory_operand instead of
16189         memory_nox32_operand and add "m" operand constraint.  Disable
16190         pattern for TARGET_X32.
16191         (*sibcall_pop_memory): Ditto.
16192         (*sibcall_value_memory): Ditto.
16193         (*sibcall_value_pop_memory): Ditto.
16194         (sibcall peepholes): Merge SImode and DImode patterns using
16195         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
16196         Disable pattern for TARGET_X32.  Check if eliminated register is
16197         really dead after call insn.  Generate call RTX without unspec operand.
16198         (sibcall_value peepholes): Ditto.
16199         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
16200         instead of memory_nox32_operand.  Check if eliminated register is
16201         really dead after call insn. Generate call RTX without unspec operand.
16202         (sibcall_value_pop peepholes): Ditto.
16203         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
16204
16205 2014-06-18  Terry Guo  <terry.guo@arm.com>
16206
16207         PR target/61544
16208         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
16209         reach the head.
16210
16211 2014-06-18  Olivier Hainque  <hainque@adacore.com>
16212
16213         * tree-core.h (tree_block): Add an "end_locus" field, allowing
16214         memorization of the end of block source location.
16215         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
16216         * gimplify.c (gimplify_bind_expr): Propagate the block start and
16217         end source location info we have on the block entry/exit code we
16218         generate.
16219
16220 2014-06-18  Richard Biener  <rguenther@suse.de>
16221
16222         * common.opt (fssa-phiopt): New option.
16223         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
16224         but not with -Og.
16225         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
16226         * doc/invoke.texi (-fssa-phiopt): Document.
16227
16228 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16229
16230         * genattrtab.c (n_bypassed): New variable.
16231         (process_bypasses): Initialise n_bypassed.
16232         Count number of bypassed reservations.
16233         (make_automaton_attrs): Allocate space for bypassed reservations
16234         rather than number of bypasses.
16235
16236 2014-06-18  Richard Biener  <rguenther@suse.de>
16237
16238         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
16239         we propagated anything.
16240         (substitute_and_fold_dom_walker::before_dom_children): Something
16241         changed if we propagated into PHI arguments.
16242         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
16243         we removed a stmt.
16244
16245 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
16246
16247         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
16248         vector case.
16249         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
16250         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
16251         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
16252         Introduces alternative way of loads group permutaions.
16253         (vect_transform_grouped_load): Try alternative way of permutations.
16254
16255 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
16256
16257         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
16258         changed in ORT_TARGET region, don't jump to do_outer.
16259         (struct gimplify_adjust_omp_clauses_data): New type.
16260         (gimplify_adjust_omp_clauses_1): Adjust for data being
16261         a struct gimplify_adjust_omp_clauses_data pointer instead
16262         of tree *.  Pass pre_p as a new argument to
16263         lang_hooks.decls.omp_finish_clause hook.
16264         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
16265         splay_tree_foreach to pass both list_p and pre_p.
16266         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
16267         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
16268         gimplify_adjust_omp_clauses callers.
16269         * langhooks.c (lhd_omp_finish_clause): New function.
16270         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
16271         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
16272         * langhooks.h (struct lang_hooks_for_decls): Add a new
16273         gimple_seq * argument to omp_finish_clause hook.
16274         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
16275         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
16276         (scan_omp_parallel, lower_omp_for): When adding
16277         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
16278         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
16279         * tree-nested.c (convert_nonlocal_omp_clauses,
16280         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
16281         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
16282
16283 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
16284
16285         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
16286         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
16287
16288 2014-06-17  Xinliang David Li  <davidxl@google.com>
16289
16290         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
16291         * passes.c (pass_init_dump_file): Do not set initialize
16292         flag to false unconditionally.
16293
16294 2014-06-17  Richard Biener  <rguenther@suse.de>
16295
16296         * genopinit.c (main): Use vec<>::qsort method.
16297         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
16298         Likewise.
16299         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
16300
16301 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
16302
16303         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
16304         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
16305         (mips_move_to_gpr_cost): Remove ST_REGS case.
16306         (mips_move_from_gpr_cost): Likewise.
16307         (mips_register_move_cost): Likewise.
16308         (mips_secondary_reload_class): Likewise.
16309
16310 2014-06-17  Richard Biener  <rguenther@suse.de>
16311
16312         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
16313         (pass_all_optimizations): Move 3rd copy-prop pass from after
16314         fre to before ifcombine/phiopt.
16315
16316 2014-06-17  Richard Biener  <rguenther@suse.de>
16317
16318         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
16319         and allow all blocks to be forwarders.
16320
16321 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
16322
16323         PR target/61483
16324         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
16325         variable 'size'; calculate 'size' right in the front; use
16326         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
16327         pcum->aapcs_stack_words.
16328
16329 2014-06-17  Nick Clifton  <nickc@redhat.com>
16330
16331         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
16332         (umulhi3, mulsidi3, umulsidi3): Likewise.
16333
16334 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
16335
16336         PR middle-end/61508
16337         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
16338         check for section name.
16339
16340 2014-06-17  Richard Biener  <rguenther@suse.de>
16341
16342         * tree-ssa-propagate.c: Include domwalk.h.
16343         (substitute_and_fold): Outline main worker into a domwalker ...
16344         (substitute_and_fold_dom_walker::before_dom_children): ... here.
16345         Schedule stmts we can fully propagate for removal.  Remove
16346         poor-mans DCE.
16347         (substitute_and_fold): Apply a dominator walk to perform
16348         substitution.  Process stmts scheduled for removal here.
16349
16350 2014-06-17  Richard Biener  <rguenther@suse.de>
16351
16352         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
16353         of PHI node moving.
16354
16355 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
16356
16357         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
16358         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
16359         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
16360         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
16361         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
16362         TARGET_HARD_FLOAT.
16363         (get_fpscr) : Likewise.
16364
16365 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
16366
16367         PR rtl-optimization/61325
16368         * lra-constraints.c (valid_address_p): Add forward declaration.
16369         (simplify_operand_subreg): Check address validity before and after
16370         alter_reg of memory subreg.
16371
16372 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
16373
16374         * config/i386/i386.c (decide_alg): Correctly handle
16375         maximum size of stringop algorithm.
16376
16377 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
16378
16379         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
16380
16381 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
16382
16383         PR rtl-optimization/61522
16384         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
16385
16386 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
16387
16388         Revert:
16389         * symtab.c (symtab_node::reset_section): New method.
16390         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
16391         for localization.
16392         * cgraph.h (reset_section): Declare.
16393         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
16394         do not consider comdat locals.
16395         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
16396         for new symbol.
16397         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
16398         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
16399         reset sections of symbols dragged out of the comdats.
16400         (function_and_variable_visibility): Reset sections of
16401         localized symbols.
16402
16403 2014-06-16  Richard Biener  <rguenther@suse.de>
16404
16405         PR tree-optimization/61482
16406         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
16407         [-INF(OVF), +INF(OVF)] range.
16408
16409 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16410
16411         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
16412         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
16413         handling 32-bit multiplication.
16414
16415 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
16416
16417         PR middle-end/61430
16418         * lra-lives.c (process_bb_lives): Skip creating copy during
16419         insn scan when src/dest has constrained to same regno.
16420
16421 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
16422
16423         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
16424         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
16425
16426 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
16427
16428         * asan.c (check_func): New function.
16429         (maybe_create_ssa_name): Likewise.
16430         (build_check_stmt_with_calls): Likewise.
16431         (use_calls_p): Likewise.
16432         (report_error_func): Change interface.
16433         (build_check_stmt): Allow non-integer lengths; add support
16434         for new parameter.
16435         (asan_instrument): Likewise.
16436         (instrument_mem_region_access): Moved code to build_check_stmt.
16437         (instrument_derefs): Likewise.
16438         (instrument_strlen_call): Likewise.
16439         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
16440         * doc/invoke.texi: Describe new parameter.
16441         * params.def: Define new parameter.
16442         * params.h: Likewise.
16443         * sanitizer.def: Describe new builtins.
16444
16445 2014-06-16  Richard Biener  <rguenther@suse.de>
16446
16447         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16448         Make all defs available at the end.
16449         (eliminate): If we remove a PHI node schedule cfg-cleanup.
16450
16451 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
16452
16453         PR plugins/45078
16454         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
16455
16456 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
16457
16458         PR bootstrap/61516
16459         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
16460         initialization.  Replace remaining use of uid.
16461
16462 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
16463
16464         * c-family/c-common.c (handle_tls_model_attribute): Use
16465         set_decl_tls_model.
16466         * c-family/c-common.c (handle_tls_model_attribute): Use
16467         set_decl_tls_model.
16468         * cgraph.h (struct varpool_node): Add tls_model.
16469         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
16470         * tree.h (DECL_TLS_MODEL): Update.
16471         (DECL_THREAD_LOCAL_P): Check that variable is static.
16472         (decl_tls_model): Declare.
16473         (set_decl_tls_model): Declare.
16474         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
16475         set symbol prorperties.
16476         (get_emutls_init_templ_addr): Cleanup.
16477         (new_emutls_decl): Update.
16478         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
16479         (lto_input_varpool_node): Likewise.
16480         * lto-streamer-out.c (hash_tree): Likewise.
16481         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
16482         not stream DECL_TLS_MODEL.
16483         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
16484         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
16485
16486 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16487
16488         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
16489
16490 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16491
16492         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
16493         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
16494         lists.
16495         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
16496         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
16497         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
16498         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
16499         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
16500         (df_get_artificial_defs, df_get_artificial_uses)
16501         (df_single_def, df_single_use): Update accordingly.
16502         (df_refs_chain_dump): Take the first element in a linked list as
16503         parameter, rather than a pointer to an array of pointers.
16504         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
16505         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
16506         (df_chain_create_bb_process_use): Likewise.
16507         (df_md_bb_local_compute_process_def): Likewise.
16508         * fwprop.c (process_defs, process_uses): Likewise.
16509         (register_active_defs, update_uses): Likewise.
16510         (forward_propagate_asm): Update for new df_ref linking.
16511         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
16512         (df_null_ref_rec, df_null_mw_rec): Likewise.
16513         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
16514         explicitly.
16515         (df_scan_free_bb_info): Remove check for null artificial_defs.
16516         (df_install_ref_incremental): Adjust for new df_ref linking.
16517         Use a single-element insertion rather than a full sort.
16518         (df_ref_chain_delete_du_chain): Take the first element
16519         in a linked list as parameter, rather than a pointer to an array of
16520         pointers.
16521         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
16522         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
16523         (df_insn_info_delete): Remove check for null defs and call to
16524         df_scan_free_mws_vec.
16525         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
16526         null rather than df_null_*_rec.
16527         (df_insn_rescan_debug_internal): Likewise, and update null
16528         checks in the same way.  Remove check for null defs.
16529         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
16530         Move a single element rather doing a full sort.
16531         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
16532         linking.
16533         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
16534         Initialize df_ref and df_mw_hardreg lists to null rather than
16535         df_null_*_rec.
16536         (df_ref_compare): Take df_refs as parameter, transferring the
16537         old interface to...
16538         (df_ref_ptr_compare): ...this new function.
16539         (df_sort_and_compress_refs): Update accordingly.
16540         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
16541         old interface to...
16542         (df_mw_ptr_compare): ...this new function.
16543         (df_sort_and_compress_mws): Update accordingly.
16544         (df_install_refs, df_install_mws): Return a linked list rather than
16545         an array of pointers.
16546         (df_refs_add_to_chains): Assert that old lists are empty rather
16547         than freeing them.
16548         (df_insn_refs_verify): Don't handle null defs speciailly.
16549         * web.c (union_match_dups): Update for new df_ref linking.
16550
16551 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16552
16553         * df.h (df_ref_create, df_ref_remove): Delete.
16554         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
16555         (df_ref_remove): Likewise.
16556
16557 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16558
16559         * df.h (df_single_def, df_single_use): New functions.
16560         * ira.c (find_moveable_pseudos): Use them.
16561
16562 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16563
16564         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
16565         * df-problems.c (df_note_bb_compute): Use it.
16566         * regstat.c (regstat_bb_compute_ri): Likewise.
16567
16568 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16569
16570         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
16571         * cse.c (cse_extended_basic_block): Use them.
16572         * dce.c (mark_artificial_use): Likewise.
16573         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
16574         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
16575         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
16576         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
16577         (df_simulate_initialize_backwards): Likewise.
16578         (df_simulate_finalize_backwards): Likewise.
16579         (df_simulate_initialize_forwards): Likewise.
16580         (df_md_simulate_artificial_defs_at_top): Likewise.
16581         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
16582         * regrename.c (init_rename_info): Likewise.
16583         * regstat.c (regstat_bb_compute_ri): Likewise.
16584         (regstat_bb_compute_calls_crossed): Likewise.
16585
16586 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16587
16588         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
16589         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
16590         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
16591         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
16592         * combine.c (create_log_links): Likewise.
16593         * compare-elim.c (find_flags_uses_in_insn): Likewise.
16594         (try_eliminate_compare): Likewise.
16595         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
16596         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
16597         (remove_reg_equal_equiv_notes_for_defs): Likewise.
16598         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
16599         (word_dce_process_block, dce_process_block): Likewise.
16600         * ddg.c (def_has_ccmode_p): Likewise.
16601         * df-core.c (df_bb_regno_first_def_find): Likewise.
16602         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
16603         * df-problems.c (df_rd_simulate_one_insn): Likewise.
16604         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
16605         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
16606         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
16607         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
16608         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
16609         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
16610         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
16611         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
16612         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
16613         * fwprop.c (local_ref_killed_between_p): Likewise.
16614         (all_uses_available_at, free_load_extend): Likewise.
16615         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
16616         * hw-doloop.c (scan_loop): Likewise.
16617         * ifcvt.c (dead_or_predicable): Likewise.
16618         * init-regs.c (initialize_uninitialized_regs): Likewise.
16619         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
16620         (process_bb_node_lives): Likewise.
16621         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
16622         (find_moveable_pseudos): Likewise.
16623         * loop-invariant.c (check_dependencies, record_uses): Likewise.
16624         * recog.c (peep2_find_free_register): Likewise.
16625         * ree.c (get_defs): Likewise.
16626         * regstat.c (regstat_bb_compute_ri): Likewise.
16627         (regstat_bb_compute_calls_crossed): Likewise.
16628         * sched-deps.c (find_inc, find_mem): Likewise.
16629         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
16630         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
16631         * shrink-wrap.c (requires_stack_frame_p): Likewise.
16632         (prepare_shrink_wrap): Likewise.
16633         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
16634         * web.c (union_defs, pass_web::execute): Likewise.
16635         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
16636         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
16637
16638 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
16639
16640         * lra-assign.c (assign_by_spills): Add code to assign vector regs
16641         to inheritance pseudos.
16642         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
16643
16644 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
16645
16646         PR target/61415
16647         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
16648         (BU_MISC_2): Rename to ...
16649         (BU_LDBL128_2): ... this.
16650         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
16651         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
16652         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
16653         RS6000_BTM_LDBL128.
16654         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
16655         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
16656         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
16657         (unpacktf_1): Likewise.
16658         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
16659         (__builtin_longdouble_dw1): Likewise.
16660         * doc/sourcebuild.texi (longdouble128): Document.
16661
16662 2014-06-13  Jeff Law  <law@redhat.com>
16663
16664         PR rtl-optimization/61094
16665         PR rtl-optimization/61446
16666         * ree.c (combine_reaching_defs): Get the mode for the copy from
16667         the extension insn rather than the defining insn.
16668
16669 2014-06-13  Dehao Chen  <dehao@google.com>
16670
16671         * dwarf2out.c (add_linkage_name): Emit more linkage name.
16672
16673 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
16674
16675         * doc/install.texi (--enable-linker-plugin-configure-flags)
16676         (--enable-linker-plugin-flags): Document new flags.
16677
16678 2014-06-13  Martin Jambor  <mjambor@suse.cz>
16679
16680         PR ipa/61186
16681         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
16682         cache_token if returning early.
16683
16684 2014-06-13  Nick Clifton  <nickc@redhat.com>
16685
16686         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
16687         requested alignment is active.
16688         (LABEL_ALIGN): Likewise.
16689         (LOOP_ALIGN): Likewise.
16690
16691 2014-06-13  Richard Biener  <rguenther@suse.de>
16692
16693         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16694         Rewrite to propagate the VN result into all uses where
16695         possible and to remove stmts becoming dead because of that.
16696         (eliminate): Generalize stmt removal handling, remove in
16697         reverse dominator order to support proper debug stmt
16698         generation.  Update stmts before removing stmts.
16699         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
16700
16701 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16702
16703         PR tree-optimization/61375
16704         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
16705         symbolic number cannot be represented in an uint64_t.
16706         (find_bswap_or_nop_1): Likewise.
16707
16708 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
16709
16710         * symtab.c (symtab_node::reset_section): New method.
16711         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
16712         for localization.
16713         * cgraph.h (reset_section): Declare.
16714         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
16715         do not consider comdat locals.
16716         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
16717         for new symbol.
16718         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
16719         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
16720         reset sections of symbols dragged out of the comdats.
16721         (function_and_variable_visibility): Reset sections of
16722         localized symbols.
16723
16724 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
16725
16726         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
16727         to use symtab and decl_binds_to_current_def_p
16728         * tree-vectorizer.c (increase_alignment): Increase alignment
16729         of alias target, too.
16730
16731 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
16732
16733         PR middle-end/61486
16734         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
16735         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
16736         if outer combined construct is distribute.
16737         (gimplify_omp_for): For OMP_DISTRIBUTE set
16738         gimplify_omp_ctxp->distribute.
16739         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
16740         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
16741         mapping into decl map.
16742
16743 2014-06-12  Jason Merrill  <jason@redhat.com>
16744
16745         * common.opt (fabi-version): Change default to 0.
16746
16747 2014-06-12  Jason Merrill  <jason@redhat.com>
16748
16749         * toplev.c (process_options): Reject -fabi-version=1.
16750
16751 2014-06-12  Jeff Law  <law@redhat.com>
16752
16753         PR tree-optimization/61009
16754         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
16755         value when we stop processing a block due to problematic PHIs.
16756
16757 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
16758
16759         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
16760         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
16761         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
16762         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
16763         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
16764         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
16765         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
16766         are not in the spec.
16767
16768 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
16769
16770         PR target/59843
16771         * config/aarch64/aarch64-modes.def: Add V1DFmode.
16772         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
16773         Support V1DFmode.
16774
16775 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
16776
16777         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
16778
16779 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
16780
16781         PR target/61443
16782         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
16783         loading from address spaces.
16784
16785 2014-06-12  Martin Liska  <mliska@suse.cz>
16786
16787         PR ipa/61462
16788         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
16789         statement is reachable.
16790
16791 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
16792
16793         * symtab.c (section_hash): New hash.
16794         (symtab_unregister_node): Clear section before freeing.
16795         (hash_section_hash_entry): New haser.
16796         (eq_sections): New function.
16797         (symtab_node::set_section_for_node): New method.
16798         (set_section_1): Update.
16799         (symtab_node::set_section): Take string instead of tree as parameter.
16800         (symtab_resolve_alias): Update.
16801         * cgraph.h (section_hash_entry_d): New structure.
16802         (section_hash_entry): New typedef.
16803         (cgraph_node): Change comdat_group_ to x_comdat_group,
16804         change section_ to x_section and turn into section_hash_entry;
16805         update accestors; put set_section_for_node offline.
16806         * tree.c (decl_section_name): Turn into string.
16807         (set_decl_section_name): Change parameter to be string.
16808         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
16809         * sdbout.c (sdbout_one_type): Update.
16810         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
16811         * varasm.c (IN_NAMED_SECTION, get_named_section,
16812         resolve_unique_section, hot_function_section, get_named_text_section,
16813         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
16814         make_decl_rtl, default_unique_section): Update.
16815         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
16816         (c6x_elf_unique_section): Update.
16817         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
16818         * config/pa/pa.c (pa_function_section): Update.
16819         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
16820         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
16821         * config/arc/arc.c (arc_in_small_data_p): Update.
16822         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
16823         * config/mcore/mcore.c (mcore_unique_section): Update.
16824         * config/mips/mips.c (mips16_build_function_stub): Update.
16825         (mips16_build_call_stub): Update.
16826         (mips_function_rodata_section): Update.
16827         (mips_in_small_data_p): Update.
16828         * config/score/score.c (score_in_small_data_p): Update.
16829         * config/rx/rx.c (rx_in_small_data): Update.
16830         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
16831         (rs6000_xcoff_asm_named_section): Update.
16832         (rs6000_xcoff_unique_section): Update.
16833         * config/frv/frv.c (frv_string_begins_with): Update.
16834         (frv_in_small_data_p): Update.
16835         * config/v850/v850.c (v850_encode_data_area): Update.
16836         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
16837         (bfin_handle_l1_data_attribute): Update.
16838         (bfin_handle_l2_attribute): Update.
16839         * config/mep/mep.c (mep_unique_section): Update.
16840         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
16841         Update.
16842         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
16843         (h8300_handle_tiny_data_attribute): Update.
16844         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
16845         (m32r_in_small_data_p): Update.
16846         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
16847         * config/i386/i386.c (ix86_in_large_data_p): Update.
16848         * config/i386/winnt.c (i386_pe_unique_section): Update.
16849         * config/darwin.c (darwin_function_section): Update.
16850         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
16851         * tree-emutls.c (get_emutls_init_templ_addr): Update.
16852         (new_emutls_decl): Update.
16853         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
16854         input_varpool_node): Update.
16855         (ead_string_cst): Turn to ...
16856         (read_string): ... this one.
16857         * dwarf2out.c (secname_for_decl): Update.
16858         * asan.c (asan_protect_global): Update.
16859
16860 2014-06-11  DJ Delorie  <dj@redhat.com>
16861
16862         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
16863         cache lines.
16864         * config/rx/rx.c (rx_option_override): Likewise.
16865         (rx_align_for_label): Likewise.
16866
16867         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
16868
16869 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
16870
16871         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
16872         prototype.
16873
16874 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16875
16876         * common.md: New file.
16877         * doc/md.texi: Update description of generic, machine-independent
16878         constraints.
16879         * config/s390/constraints.md (e): Delete.
16880         * Makefile.in (md_file): Include common.md.
16881         * config/m32c/t-m32c (md_file): Likewise.
16882         * genpreds.c (general_mem): New array.
16883         (generic_constraint_letters): Remove constraints now defined by
16884         common.md.
16885         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
16886         Allow the first character to be '<' or '>' as well.
16887         * genoutput.c (general_mem): New array.
16888         (indep_constraints): Remove constraints now defined by common.md.
16889         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
16890         Remove special handling of 'm'.
16891         * ira-costs.c (record_reg_classes): Remove special handling of
16892         constraints now defined by common.md.
16893         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
16894         * ira-lives.c (single_reg_class): Likewise.
16895         (ira_implicitly_set_insn_hard_regs): Likewise.
16896         * lra-constraints.c (reg_class_from_constraints): Likewise.
16897         (process_alt_operands, process_address, curr_insn_transform): Likewise.
16898         * postreload.c (reload_cse_simplify_operands): Likewise.
16899         * reload.c (push_secondary_reload, scratch_reload_class)
16900         (find_reloads, alternative_allows_const_pool_ref): Likewise.
16901         * reload1.c (maybe_fix_stack_asms): Likewise.
16902         * targhooks.c (default_secondary_reload): Likewise.
16903         * stmt.c (parse_output_constraint): Likewise.
16904         * recog.c (preprocess_constraints): Likewise.
16905         (constrain_operands, peep2_find_free_register): Likewise.
16906         (asm_operand_ok): Likewise, but add a comment saying why 'o'
16907         must be handled specially.
16908
16909 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16910
16911         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
16912         * genpreds.c (have_const_dbl_constraints): Delete.
16913         (add_constraint): Don't set it.
16914         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
16915         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
16916         constraints using the lookup_constraint logic.
16917         * ira-lives.c (single_reg_class): Likewise.
16918         * ira.c (ira_setup_alts): Likewise.
16919         * lra-constraints.c (process_alt_operands): Likewise.
16920         * recog.c (asm_operand_ok, constrain_operands): Likewise.
16921         * reload.c (find_reloads): Likewise.
16922
16923 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16924
16925         * genpreds.c (const_int_start, const_int_end): New variables.
16926         (choose_enum_order): Output CONST_INT constraints before memory
16927         constraints.
16928         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
16929         Add CT_CONST_INT.
16930         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
16931         * ira.c (ira_setup_alts): Likewise.
16932         * lra-constraints.c (process_alt_operands): Likewise.
16933         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
16934         * reload.c (find_reloads): Likewise.
16935
16936 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16937
16938         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
16939         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
16940         * recog.c (preprocess_constraints): Update accordingly.
16941
16942 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16943
16944         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
16945         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
16946         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
16947         * genpreds.c (print_type_tree): New function.
16948         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
16949         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
16950         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
16951         Write out enum constraint_type and get_constraint_type.
16952         * lra-constraints.c (satisfies_memory_constraint_p): Take a
16953         constraint_num rather than a constraint string.
16954         (satisfies_address_constraint_p): Likewise.
16955         (reg_class_from_constraints): Avoid old constraint macros.
16956         (process_alt_operands, process_address_1): Likewise.
16957         (curr_insn_transform): Likewise.
16958         * ira-costs.c (record_reg_classes): Likewise.
16959         (record_operand_costs): Likewise.
16960         * ira-lives.c (single_reg_class): Likewise.
16961         (ira_implicitly_set_insn_hard_regs): Likewise.
16962         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
16963         * postreload.c (reload_cse_simplify_operands): Likewise.
16964         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
16965         (constrain_operands, peep2_find_free_register): Likewise.
16966         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
16967         (find_reloads, alternative_allows_const_pool_ref): Likewise.
16968         * reload1.c (maybe_fix_stack_asms): Likewise.
16969         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
16970         * targhooks.c (default_secondary_reload): Likewise.
16971         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
16972         to EXTRA_CONSTRAINT_STR.
16973         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
16974
16975 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16976
16977         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
16978         (write_constraint_satisfied_p_array): ...this new function.
16979         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
16980         an array.
16981         (write_insn_preds_c): Update accordingly.
16982
16983 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16984
16985         * genpreds.c (write_lookup_constraint): Rename to...
16986         (write_lookup_constraint_1): ...this.
16987         (write_lookup_constraint_array): New function.
16988         (write_tm_preds_h): Define lookup_constraint as an inline function
16989         that uses write_lookup_constraint_array where possible.
16990         (write_insn_preds_c): Update for the changes above.
16991
16992 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16993
16994         * doc/md.texi (regclass_for_constraint): Rename to...
16995         (reg_class_for_constraint): ...this.
16996         * genpreds.c (num_constraints, enum_order, register_start)
16997         (register_end, satisfied_start, memory_start, memory_end)
16998         (address_start, address_end): New variables.
16999         (add_constraint): Count the number of constraints.
17000         (choose_enum_order): New function.
17001         (write_enum_constraint_num): Iterate over enum_order.
17002         (write_regclass_for_constraint): Rename to...
17003         (write_reg_class_for_constraint_1): ...this and update output
17004         accordingly.
17005         (write_constraint_satisfied_p): Rename to...
17006         (write_constraint_satisfied_p_1): ...this and update output
17007         accordingly.  Do nothing if all extra constraints are register
17008         constraints.
17009         (write_insn_extra_memory_constraint): Delete.
17010         (write_insn_extra_address_constraint): Delete.
17011         (write_range_function): New function.
17012         (write_tm_preds_h): Define constraint_satisfied_p and
17013         reg_class_for_constraint as inline functions that do a range check
17014         before calling the out-of-line function.  Use write_range_function
17015         to implement insn_extra_{register,memory,address}_constraint,
17016         the first of which is new.
17017         (write_insn_preds_c): Update after above changes to write_* functions.
17018         (main): Call choose_enum_order.
17019
17020 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17021
17022         PR tree-optimization/61306
17023         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
17024         expression instead of its size.
17025         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
17026         false to prevent optimization when the result is unpredictable due to
17027         arithmetic right shift of signed type with highest byte is set.
17028         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
17029         (init_symbolic_number): Likewise.
17030         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
17031         when the result is unpredictable due to sign extension.
17032
17033 2014-06-11  Terry Guo  <terry.guo@arm.com>
17034
17035         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
17036         (*thumb1_addsi3): Ditto.
17037         (*thumb_subdi3): Ditto.
17038         (thumb1_subsi3_insn): Ditto.
17039         (*thumb_mulsi3): Ditto.
17040         (*thumb_mulsi3_v6): Ditto.
17041         (*thumb1_andsi3_insn): Ditto.
17042         (thumb1_bicsi3): Ditto.
17043         (*thumb1_iorsi3_insn): Ditto.
17044         (*thumb1_xorsi3_insn): Ditto.
17045         (*thumb1_ashlsi3): Ditto.
17046         (*thumb1_ashrsi3): Ditto.
17047         (*thumb1_lshrsi3): Ditto.
17048         (*thumb1_rotrsi3): Ditto.
17049         (*thumb1_negdi2): Ditto.
17050         (*thumb1_negsi2): Ditto.
17051         (*thumb1_abssi2): Ditto.
17052         (*thumb1_neg_abssi2): Ditto.
17053         (*thumb1_one_cmplsi2): Ditto.
17054         (*thumb1_zero_extendhisi2): Ditto.
17055         (*thumb1_zero_extendqisi2): Ditto.
17056         (*thumb1_zero_extendqisi2_v6): Ditto.
17057         (thumb1_extendhisi2): Ditto.
17058         (thumb1_extendqisi2): Ditto.
17059         (*thumb1_movdi_insn): Ditto.
17060         (*thumb1_movsi_insn): Ditto.
17061         (*thumb1_movhi_insn): Ditto.
17062         (thumb_movhi_clobber): Ditto.
17063         (*thumb1_movqi_insn): Ditto.
17064         (*thumb1_movhf): Ditto.
17065         (*thumb1_movsf_insn): Ditto.
17066         (*thumb_movdf_insn): Ditto.
17067         (movmem12b): Ditto.
17068         (movmem8b): Ditto.
17069         (cbranchqi4): Ditto.
17070         (cbranchsi4_insn): Ditto.
17071         (cbranchsi4_scratch): Ditto.
17072         (*negated_cbranchsi4): Ditto.
17073         (*tbit_cbranch): Ditto.
17074         (*tlobits_cbranch): Ditto.
17075         (*tstsi3_cbranch): Ditto.
17076         (*cbranchne_decr1): Ditto.
17077         (*addsi3_cbranch): Ditto.
17078         (*addsi3_cbranch_scratch): Ditto.
17079         (*thumb_cmpdi_zero): Ditto.
17080         (cstoresi_eq0_thumb1): Ditto.
17081         (cstoresi_ne0_thumb1): Ditto.
17082         (*cstoresi_eq0_thumb1_insn): Ditto.
17083         (*cstoresi_ne0_thumb1_insn): Ditto.
17084         (cstoresi_nltu_thumb1): Ditto.
17085         (cstoresi_ltu_thumb1): Ditto.
17086         (thumb1_addsi3_addgeu): Ditto.
17087         (*thumb_jump): Ditto.
17088         (*call_reg_thumb1_v5): Ditto.
17089         (*call_reg_thumb1): Ditto.
17090         (*call_value_reg_thumb1_v5): Ditto.
17091         (*call_value_reg_thumb1): Ditto.
17092         (*call_insn): Ditto.
17093         (*call_value_insn): Ditto.
17094         (thumb1_casesi_internal_pic): Ditto.
17095         (thumb1_casesi_dispatch): Ditto.
17096         (*thumb1_indirect_jump): Ditto.
17097         (prologue_thumb1_interwork): Ditto.
17098         (*epilogue_insns): Ditto.
17099         (consttable_1): Ditto.
17100         (consttable_2): Ditto.
17101         (tablejump): Ditto.
17102         (*thumb1_tablejump): Ditto.
17103         (thumb_eh_return): Ditto.
17104         (define_peephole2): Two of them are thumb1 only and got moved into
17105         new file thumb1.md.
17106         (define_split): Six of them are thumb1 only and got moved into new
17107         file thumb1.md.
17108         * config/arm/thumb1.md: New file comprised of above thumb1 only
17109         patterns.
17110
17111 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17112
17113         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
17114         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
17115         dependencies.
17116         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
17117         (aarch64_crc_builtin_datum): New struct.
17118         (aarch64_crc_builtin_data): New.
17119         (aarch64_init_crc32_builtins): New function.
17120         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
17121         (aarch64_crc32_expand_builtin): New.
17122         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
17123         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
17124         __ARM_FEATURE_CRC32 when appropriate.
17125         (TARGET_CRC32): Define.
17126         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
17127         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
17128         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
17129         (aarch64_<crc_variant>): New pattern.
17130         * config/aarch64/arm_acle.h: New file.
17131         * config/aarch64/iterators.md (CRC): New int iterator.
17132         (crc_variant, crc_mode): New int attributes.
17133         * doc/aarch64-acle-intrinsics.texi: New file.
17134         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
17135         Include aarch64-acle-intrinsics.texi.
17136
17137 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
17138
17139         * tree-vect-data-refs.c (vect_grouped_store_supported): New
17140         check for stores group of length 3.
17141         (vect_permute_store_chain): New permutations for stores group of
17142         length 3.
17143         * tree-vect-stmts.c (vect_model_store_cost): Change cost
17144         of vec_perm_shuffle for the new permutations.
17145
17146 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
17147
17148         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
17149         table rewriting temporarily on targets not supporting ONE_ONLY.
17150
17151 2014-06-11  Richard Biener  <rguenther@suse.de>
17152
17153         PR middle-end/61437
17154         Revert
17155         2014-06-04  Richard Biener  <rguenther@suse.de>
17156
17157         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
17158         TREE_PUBLIC and DECL_EXTERNAL decls.
17159
17160 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
17161
17162         * varasm.c (set_implicit_section): New function.
17163         (resolve_unique_section): Use it to set implicit section
17164         for aliases, too.
17165         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
17166         (default_function_section): Likewise.
17167         (decl_binds_to_current_def_p): Constify argument.
17168         * varasm.h (decl_binds_to_current_def_p): Update prototype.
17169         * asan.c (asan_protect_global): Use
17170         symtab_get_node (decl)->implicit_section.
17171         * symtab.c (dump_symtab_base): Dump implicit sections.
17172         (verify_symtab_base): Verify sanity of sectoins and comdats.
17173         (symtab_resolve_alias): Alias share the section of its target.
17174         (set_section_1): New function.
17175         (symtab_node::set_section): Move here, recurse to aliases.
17176         (verify_symtab): Check for duplicated symtab lists.
17177         * tree-core.h (implicit_section_name_p): Remove.
17178         * tree-vect-data-refs.c: Include varasm.h.
17179         (vect_can_force_dr_alignment_p): Fix conditional on when
17180         decl bints to current definition; use
17181         symtab_get_node (decl)->implicit_section.
17182         * cgraph.c (cgraph_make_node_local_1): Fix section set.
17183         * cgraph.h (struct symtab_node): Add implicit_section.
17184         (set_section): Rename to ...
17185         (set_section_for_node): ... this one.
17186         (set_section): Declare.
17187         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
17188         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
17189         input_overwrite_node, input_varpool_node): Stream implicit_section.
17190         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
17191         removal; it will fail in LTO.
17192
17193 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17194
17195         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
17196         Change second alternative type to f_mcr.
17197         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
17198         and 12th alternatives' types to f_mcr and f_mrc.
17199         (*movdi_aarch64): Same for 12th and 13th alternatives.
17200         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
17201         (aarch64_movtilow_tilow): Change type to fmov.
17202
17203 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
17204
17205         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
17206         (aarch64_save_or_restore_callee_save_registers): Fix layout.
17207
17208 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17209
17210         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
17211         New expander.
17212         (aarch64_sqrdmulh_lane<mode>): Likewise.
17213         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
17214         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
17215         (aarch64_sqdmulh_laneq<mode>): New expander.
17216         (aarch64_sqrdmulh_laneq<mode>): Likewise.
17217         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
17218         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
17219         (aarch64_sqdmulh_lane<mode>): New expander.
17220         (aarch64_sqrdmulh_lane<mode>): Likewise.
17221         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
17222         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
17223         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
17224         (aarch64_sqdmlal_laneq<mode>): Likewise.
17225         (aarch64_sqdmlsl_lane<mode>): Likewise.
17226         (aarch64_sqdmlsl_laneq<mode>): Likewise.
17227         (aarch64_sqdmlal2_lane<mode>): Likewise.
17228         (aarch64_sqdmlal2_laneq<mode>): Likewise.
17229         (aarch64_sqdmlsl2_lane<mode>): Likewise.
17230         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
17231         (aarch64_sqdmull_lane<mode>): Likewise.
17232         (aarch64_sqdmull_laneq<mode>): Likewise.
17233         (aarch64_sqdmull2_lane<mode>): Likewise.
17234         (aarch64_sqdmull2_laneq<mode>): Likewise.
17235
17236 2014-06-10  Richard Biener  <rguenther@suse.de>
17237
17238         PR tree-optimization/61438
17239         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
17240         (eliminate_dom_walker::before_dom_children): Only try to inhibit
17241         insertion of IVs if running PRE.
17242         (eliminate): Adjust.
17243         (pass_pre::execute): Likewise.
17244         (pass_fre::execute): Likewise.
17245
17246 2014-06-10  Richard Biener  <rguenther@suse.de>
17247
17248         PR middle-end/61456
17249         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
17250         Do not use the main variant for the type comparison.
17251         (ncr_compar): Likewise.
17252         (nonoverlapping_component_refs_p): Likewise.
17253
17254 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17255
17256         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
17257         REG_CFA_RESTORE mode.
17258
17259 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
17260
17261         * config/i386/i386.c (expand_vec_perm_pblendv): New.
17262         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
17263         expand_vec_perm_pblendv.
17264
17265 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17266
17267         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
17268         available.
17269         Simplify description of __crc32d and __crc32cd intrinsics.
17270         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
17271         availability.
17272
17273 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
17274
17275         PR lto/61334
17276         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
17277         * config.in: Regenerate.
17278         * configure: Likewise.
17279
17280 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
17281
17282         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
17283         and public vars.
17284         (intersect_static_var_sets): Remove.
17285         (propagate): Do not prune local statics.
17286
17287 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
17288
17289         PR fortran/60928
17290         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
17291         Set lastprivate_firstprivate even if omp_private_outer_ref
17292         langhook returns true.
17293         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
17294         langhook, call unshare_expr on new_var and call
17295         build_outer_var_ref to get the last argument.
17296
17297 2014-06-10  Marek Polacek  <polacek@redhat.com>
17298
17299         PR c/60988
17300         * doc/extend.texi: Add cindex for transparent_union.
17301
17302 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17303
17304         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
17305         init_symbolic_number ().
17306
17307 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
17308
17309         PR middle-end/61141
17310         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
17311         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
17312         (verify_rtl_sharing): Likewise.
17313
17314 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
17315
17316         PR c++/54442
17317         * tree.c (build_qualified_type): Use a canonical type for
17318         TYPE_CANONICAL.
17319
17320 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17321
17322         * config/arm/arm-modes.def: Remove XFmode.
17323
17324 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
17325
17326         PR target/61062
17327         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
17328         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
17329         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
17330         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
17331         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
17332         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
17333         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
17334         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
17335         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
17336
17337 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
17338
17339         * tree-core.h (tree_decl_with_vis): Remove section_name.
17340
17341 2014-06-09  Kito Cheng  <kito@0xlab.org>
17342
17343         * ira.c (ira): Don't call init_caller_save if LRA enabled
17344         since LRA use its own infrastructure to handle that.
17345
17346 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17347
17348         * symtab.c (dump_symtab_base): Update dumping.
17349         (symtab_make_decl_local): Clear only DECL_COMDAT.
17350         * tree-vect-data-refs.c (Check that variable is static before
17351         tampering with sections.
17352         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
17353         (cgraph_create_virtual_clone): Likewise.
17354         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
17355         (decl_section_name, set_decl_section_name): New accessors.
17356         (find_decls_types_r): Do not walk section name
17357         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
17358         (decl_comdat_group, decl_comdat_group_id): Constify.
17359         (decl_section_name, set_decl_section_name): Update.
17360         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
17361         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
17362         (cgraph_make_node_local_1): Clear section and comdat group.
17363         * cgraph.h (set_comdat_group): Sanity check.
17364         (get_section, set_section): New.
17365         * ipa-comdats.c (ipa_comdats): Use get_section.
17366         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
17367         * lto-streamer-out.c: Do not follow section names.
17368         * c-family/c-common.c (handle_section_attribute): Update.
17369         * lto-cgraph.c (lto_output_node): Output section.
17370         (lto_output_varpool_node): Likewise.
17371         (read_comdat_group): Rename to ...
17372         (read_identifier): ... this one.
17373         (read_string_cst): New function.
17374         (input_node, input_varpool_node): Input section names.
17375         * tree-emutls.c (get_emutls_init_templ_addr): Update.
17376         (new_emutls_decl): Update.
17377         (secname_for_decl): Check section names only of static vars.
17378         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
17379         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
17380         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
17381         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
17382         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
17383         * config/mcore/mcore.c (mcore_unique_section): Likewise.
17384         * config/mips/mips.c (mips16_build_function_stub): Likewise.
17385         * config/v850/v850.c (v850_insert_attributes): Likewise.
17386         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
17387         Likewise.
17388         (h8300_handle_tiny_data_attribute): Likewise.
17389         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
17390         (bfin_handle_l2_attribute): Likewise.
17391
17392 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17393
17394         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
17395         remove static initializer.
17396
17397 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17398
17399         * varasm.c (use_blocks_for_decl_p): Check symbol table
17400         instead of alias attribute.
17401         (place_block_symbol): Recurse on aliases.
17402
17403 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17404
17405         * ipa-visibility.c: Include varasm.h
17406         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
17407
17408 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17409
17410         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
17411         outputting aliases.
17412
17413 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
17414
17415         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
17416         from test_insn into GGC space escape via SET_SRC.
17417
17418 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
17419
17420         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
17421         call statement, if any.
17422         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
17423         statements, if any.  Tidy up.
17424
17425 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
17426
17427         PR target/61431
17428         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
17429         iterators, VSX_D that handles 64-bit types, and VSX_LE that
17430         handles swapping the two 64-bit double words on little endian
17431         systems.  Include V1TImode and optionally TImode in VSX_LE so that
17432         these types are properly swapped.  Change all of the insns and
17433         splits that do the 64-bit swaps to use VSX_LE.
17434         (vsx_le_perm_load_<mode>): Likewise.
17435         (vsx_le_perm_store_<mode>): Likewise.
17436         (splitters for little endian memory operations): Likewise.
17437         (vsx_xxpermdi2_le_<mode>): Likewise.
17438         (vsx_lxvd2x2_le_<mode>): Likewise.
17439         (vsx_stxvd2x2_le_<mode>): Likewise.
17440
17441 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
17442
17443         PR target/61423
17444         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
17445         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
17446         and corresponding splitters.  Zero extend general register
17447         or memory input operand to XMM temporary.  Enable for
17448         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
17449         (floatunssi<mode>2): Update expander predicate.
17450
17451 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
17452
17453         PR rtl-optimization/61325
17454         * lra-constraints.c (process_address_1): Check scale equal to one
17455         to prevent transformation: base + scale * index => base + new_reg.
17456
17457 2014-06-06  Richard Biener  <rguenther@suse.de>
17458
17459         PR tree-optimization/59299
17460         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
17461         a def operand.
17462         (nearest_common_dominator_of_uses): Likewise.
17463         (statement_sink_location): Adjust.  Support sinking loads.
17464
17465 2014-06-06  Martin Jambor  <mjambor@suse.cz>
17466
17467         * ipa-prop.c (get_place_in_agg_contents_list): New function.
17468         (build_agg_jump_func_from_list): Likewise.
17469         (determine_known_aggregate_parts): Renamed to
17470         determine_locally_known_aggregate_parts.  Moved some functionality
17471         to the two functions above, removed bound checks.
17472
17473 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
17474
17475         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
17476         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
17477         (aarch64_progress_pointer): Likewise.
17478         (aarch64_copy_one_part_and_move_pointers): Likewise.
17479         (aarch64_expand_movmen): Likewise.
17480         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
17481         * config/aarch64/aarch64.md (movmem<mode>): New.
17482
17483 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
17484
17485         * targhooks.c (default_add_stmt_cost): Call target specific
17486         hook instead of default one.
17487
17488 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17489
17490         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
17491         endianness instead of host endianness.
17492         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
17493         comments.
17494
17495 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17496
17497         PR debug/53927
17498         * function.c (instantiate_decls): Process the saved static chain.
17499         (expand_function_start): If not optimizing, save the static chain
17500         onto the stack.
17501         * tree-nested.c (convert_all_function_calls): Always create the static
17502         chain for nested functions if not optimizing.
17503
17504 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17505
17506         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
17507
17508 2014-06-06  Richard Biener  <rguenther@suse.de>
17509
17510         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
17511         (construct_init_block): Likewise.
17512         (construct_exit_block): Likewise.
17513         (pass_expand::execute): Likewise.
17514         * graphite.c (graphite_transforms): Replace check for current_loops
17515         with a check for > 1 loops.
17516         (pass_graphite_transforms::execute): Adjust.
17517         * ipa-split.c (split_function): Remove check for current_loops.
17518         * omp-low.c (expand_parallel_call): Likewise.
17519         (expand_omp_for_init_counts): Likewise.
17520         (extract_omp_for_update_vars): Likewise.
17521         (expand_omp_for_generic): Likewise.
17522         (expand_omp_sections): Likewise.
17523         (expand_omp_target): Likewise.
17524         * tracer.c (tail_duplicate): Likewise.
17525         (pass_tracer::execute): Likewise.
17526         * trans-mem.c (expand_transaction): Likewise.
17527         * tree-complex.c (expand_complex_div_wide): Likewise.
17528         * tree-eh.c (lower_resx): Likewise.
17529         (cleanup_empty_eh_merge_phis): Likewise.
17530         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
17531         current_loops with a check for > 1 loops.
17532         (pass_predcom::execute): Adjust.
17533         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
17534         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
17535         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
17536         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
17537         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
17538         * tree-switch-conversion.c (process_switch): Likewise.
17539         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
17540         * tree-vrp.c (vrp_visit_phi_node): Likewise.
17541         (execute_vrp): Likewise.
17542         * ubsan.c (ubsan_expand_null_ifn): Likewise.
17543
17544 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17545
17546         * rtl.h (insn_location): Declare.
17547         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
17548         with UNKNOWN_LOCATION.
17549         * emit-rtl.c (insn_location): New function.
17550         * final.c (notice_source_line): Check that the instruction has a
17551         location before retrieving it and use insn_location.
17552         * modulo-sched.c (loop_single_full_bb_p): Likewise.
17553         * print-rtl.c (print_rtx): Likewise.
17554
17555 2014-06-06  Richard Biener  <rguenther@suse.de>
17556
17557         * passes.def: Move 2nd VRP pass before phi-only-cprop.
17558
17559 2014-06-06  Christian Bruel  <christian.bruel@st.com>
17560
17561         PR tree-optimization/43934
17562         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
17563         cost.
17564
17565 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
17566
17567         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
17568         return NO_REGS for extra address and memory constraints.  Handle
17569         operands that match (or are equivalent to something that matches)
17570         extra constant constraints.  Ignore other non-register operands.
17571
17572 2014-06-06  Alan Modra  <amodra@gmail.com>
17573
17574         PR target/61300
17575         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
17576         * doc/tm.texi: Regenerate.
17577         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
17578         Use throughout in place of REG_PARM_STACK_SPACE.
17579         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
17580         "incoming" param.  Pass to rs6000_function_parms_need_stack.
17581         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
17582         prototype_p when incoming.  Use function decl when incoming
17583         to handle K&R style functions.
17584         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
17585         (INCOMING_REG_PARM_STACK_SPACE): Define.
17586
17587 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17588
17589         PR target/52472
17590         * cfgexpand.c (expand_debug_expr): Use address space of nested
17591         TREE_TYPE for ADDR_EXPR and MEM_REF.
17592
17593 2014-06-05  Jeff Law  <law@redhat.com>
17594
17595         PR tree-optimization/61289
17596         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
17597         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
17598         looking for those which match LHS.  All callers changed.
17599         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
17600         parameters and code which manipulated them.  All callers changed.
17601         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
17602         and DST_MAP parameters.  Simplify invalidation code by just calling
17603         invalidate_equivalences.  All callers changed.
17604         (thread_across_edge): Simplify now that we don't need to maintain
17605         the map of equivalences to invalidate.
17606
17607 2014-06-05  Kai Tietz  <ktietz@redhat.com>
17608             Richard Henderson  <rth@redhat.com>
17609
17610         PR target/46219
17611         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
17612         checking for !TARGET_X32.
17613         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
17614         (sibcall_intern): New define_insn, plus required peepholes.
17615         (sibcall_pop_intern): Likewise.
17616         (sibcall_value_intern): Likewise.
17617         (sibcall_value_pop_intern): Likewise.
17618
17619 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
17620
17621         * tree-inline.c (tree_function_versioning): Check DF info existence
17622         before accessing it.
17623
17624 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17625
17626         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
17627         frame_size.
17628         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
17629         aarch64_frame hard_fp_offset and frame_size.
17630         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
17631         frame_size; remove original_frame_size.
17632         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
17633         (aarch64_initial_elimination_offset): Remove frame_size and
17634         offset.  Use aarch64_frame frame_size.
17635
17636 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17637             Jiong Wang  <jiong.wang@arm.com>
17638             Renlin  <renlin.li@arm.com>
17639
17640         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
17641         initialization of R30 offset.  Update offset.  Iterate core
17642         regisers upto X30.  Remove X29, X30 specific code.
17643
17644 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17645             Jiong Wang  <jiong.wang@arm.com>
17646
17647         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
17648         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
17649         (aarch64_register_saved_on_entry): Adjust test.
17650
17651 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17652
17653         * config/aarch64/aarch64.h (machine_function): Move
17654         saved_varargs_size from here...
17655         (aarch64_frame): ... to here.
17656
17657         * config/aarch64/aarch64.c (aarch64_expand_prologue)
17658         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
17659         (aarch64_initial_elimination_offset)
17660         (aarch64_setup_incoming_varargs): Adjust location of
17661         saved_varargs_size.
17662
17663 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17664
17665         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
17666         layout comment.
17667
17668 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
17669             Prachi Godbole  <Prachi.Godbole@imgtec.com>
17670
17671         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
17672         mips32r5 entry to use PROCESSOR_P5600.
17673         * config/mips/mips-tables.opt: Regenerate.
17674         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
17675         * config/mips/mips.c (mips_fmadd_bypass): New function.
17676         (mips_rtx_cost_data): Add costs for p5600.
17677         (mips_issue_rate): Add support for p5600.
17678         (mips_multipass_dfa_lookahead): Likewise.
17679         * config/mips/mips.h (TUNE_P5600): New define.
17680         (TUNE_MACC_CHAINS): Add TUNE_P5600.
17681         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
17682         * config/mips/mips.md: Include p5600.md.
17683         (processor): Add p5600.
17684         * config/mips/p5600.md: New file.
17685
17686 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
17687
17688         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
17689         * config/i386/predicates.md (palignr_operand): New.
17690         Indicates if permutation is suitable for palignr instruction.
17691
17692 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
17693
17694         PR tree-optimization/61319
17695         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
17696         stmt belongs to loop.
17697
17698 2014-06-05  Richard Biener  <rguenther@suse.de>
17699
17700         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
17701         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
17702         (lookup_tmp_var): Adjust.
17703         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
17704
17705 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17706
17707         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
17708
17709 2014-06-05  Marek Polacek  <polacek@redhat.com>
17710
17711         PR c/49706
17712         * doc/invoke.texi: Document -Wlogical-not-parentheses.
17713
17714 2014-06-04  Tom de Vries  <tom@codesourcery.com>
17715
17716         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
17717         CONST_INT.
17718
17719 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
17720
17721         PR tree-optimization/61385
17722         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
17723
17724 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
17725
17726         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
17727         changed to use fatal_error.
17728         (main): Ensure lto_wrapper_cleanup is run atexit.
17729
17730 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17731
17732         * lra-constraints.c (valid_address_p): Move earlier in file.
17733         (address_eliminator): New structure.
17734         (satisfies_memory_constraint_p): New function.
17735         (satisfies_address_constraint_p): Likewise.
17736         (process_alt_operands, process_address, curr_insn_transform): Use them.
17737
17738 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17739
17740         * lra-int.h (lra_static_insn_data): Make operand_alternative a
17741         const pointer.
17742         (target_lra_int, default_target_lra_int, this_target_lra_int)
17743         (op_alt_data): Delete.
17744         * lra.h (lra_init): Delete.
17745         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
17746         (init_insn_code_data_once): Remove op_alt_data handling.
17747         (finish_insn_code_data_once): Likewise.
17748         (init_op_alt_data): Delete.
17749         (get_static_insn_data): Initialize operand_alternative to null.
17750         (free_insn_recog_data): Cast operand_alternative before freeing it.
17751         (setup_operand_alternative): Take the operand_alternative as
17752         parameter and assume it isn't already cached in the static
17753         insn data.
17754         (lra_set_insn_recog_data): Update accordingly.
17755         (lra_init): Delete.
17756         * ira.c (ira_init): Don't call lra_init.
17757         * target-globals.h (this_target_lra_int): Declare.
17758         (target_globals): Remove lra_int.
17759         (restore_target_globals): Update accordingly.
17760         * target-globals.c: Don't include lra-int.h.
17761         (default_target_globals, save_target_globals): Remove lra_int.
17762
17763 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17764
17765         * recog.h (operand_alternative): Convert reg_class, reject,
17766         matched and matches into bitfields.
17767         (preprocess_constraints): New overload.
17768         (preprocess_insn_constraints): New function.
17769         (preprocess_constraints): Take the insn as parameter.
17770         (recog_op_alt): Change into a pointer.
17771         (target_recog): Add x_op_alt.
17772         * recog.c (asm_op_alt): New variable.
17773         (recog_op_alt): Change into a pointer.
17774         (preprocess_constraints): New overload, replacing the old function
17775         definition with one that doesn't use global state.
17776         (preprocess_insn_constraints): New function.
17777         (preprocess_constraints): Use them.  Take the insn as parameter.
17778         Use asm_op_alt for asms.
17779         (recog_init): Free existing x_op_alt entries.
17780         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
17781         pointer const.
17782         (make_early_clobber_and_input_conflicts): Likewise.
17783         (process_bb_node_lives): Pass the insn to process_constraints.
17784         * reg-stack.c (check_asm_stack_operands): Likewise.
17785         (subst_asm_stack_regs): Likewise.
17786         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
17787         * regrename.c (build_def_use): Likewise.
17788         * sched-deps.c (sched_analyze_insn): Likewise.
17789         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
17790         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
17791         (note_invalid_constants): Likewise.
17792         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
17793         (ix86_legitimate_combined_insn): Make operand_alternative pointer
17794         const.
17795
17796 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17797
17798         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
17799         * ira-lives.c (check_and_make_def_conflict): Check for disabled
17800         alternatives.
17801         (make_early_clobber_and_input_conflicts): Likewise.
17802         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
17803
17804 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17805
17806         * recog.h (alternative_class): New function.
17807         (which_op_alt): Return a const recog_op_alt.
17808         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
17809         (subst_asm_stack_regs): Likewise.
17810         * config/arm/arm.c (note_invalid_constants): Likewise.
17811         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
17812         the operand_alternative; use alternative class instead.
17813         * sel-sched.c (get_reg_class): Likewise.
17814         * regrename.c (build_def_use): Likewise.
17815         (hide_operands, restore_operands, record_out_operands): Update type
17816         accordingly.
17817
17818 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17819
17820         * recog.h (recog_op_alt): Convert to a flat array.
17821         (which_op_alt): New function.
17822         * recog.c (recog_op_alt): Convert to a flat array.
17823         (preprocess_constraints): Update accordingly, grouping all
17824         operands of the same alternative together, rather than the
17825         other way around.
17826         * ira-lives.c (check_and_make_def_conflict): Likewise.
17827         (make_early_clobber_and_input_conflicts): Likewise.
17828         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
17829         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
17830         (subst_asm_stack_regs): Likewise.
17831         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
17832         * regrename.c (hide_operands, record_out_operands): Likewise.
17833         (build_def_use): Likewise.
17834         * sel-sched.c (get_reg_class): Likewise.
17835         * config/arm/arm.c (note_invalid_constants): Likewise.
17836
17837 2014-06-04  Jason Merrill  <jason@redhat.com>
17838
17839         PR c++/51253
17840         PR c++/61382
17841         * gimplify.c (gimplify_arg): Non-static.
17842         * gimplify.h: Declare it.
17843
17844 2014-06-04  Richard Biener  <rguenther@suse.de>
17845
17846         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
17847         TREE_PUBLIC and DECL_EXTERNAL decls.
17848
17849 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
17850
17851         * regcprop.c (copyprop_hardreg_forward_1): Account for
17852         HARD_REGNO_CALL_PART_CLOBBERED.
17853
17854 2014-06-04  Richard Biener  <rguenther@suse.de>
17855
17856         * configure.ac: Check whether the underlying type of int64_t
17857         is long or long long.
17858         * configure: Regenerate.
17859         * config.in: Likewise.
17860         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
17861         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
17862
17863 2014-06-04  Richard Biener  <rguenther@suse.de>
17864
17865         PR tree-optimization/60098
17866         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
17867         we hit a kill.
17868         (dse_optimize_stmt): Simplify, now that we found a kill
17869         earlier.
17870
17871 2014-06-04  Richard Biener  <rguenther@suse.de>
17872
17873         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
17874         of accesses with non-invariant address.
17875
17876 2014-06-04  Martin Liska  <mliska@suse.cz>
17877
17878         * cgraph.h (cgraph_make_wrapper): New function introduced.
17879         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
17880         * ipa-inline.h (inline_analyze_function): The function is global.
17881         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
17882
17883 2014-06-04  Martin Liska  <mliska@suse.cz>
17884
17885         * tree.h (private_lookup_attribute_starting): New function.
17886         (lookup_attribute_starting): Likewise.
17887         * tree.c (private_lookup_attribute_starting): Likewise.
17888
17889 2014-06-04  Martin Liska  <mliska@suse.cz>
17890
17891         * cgraph.h (expand_thunk): New argument added.
17892         (address_taken_from_non_vtable_p): New global function.
17893         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
17894         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
17895         * cgraphunit.c (analyze_function): Likewise.
17896         (assemble_thunks_and_aliases): Argument added to call.
17897         (expand_thunk): New argument forces to produce GIMPLE thunk.
17898
17899 2014-06-04  Martin Liska  <mliska@suse.cz>
17900
17901         * coverage.h (coverage_compute_cfg_checksum): Argument added.
17902         * coverage.c (coverage_compute_cfg_checksum): Likewise.
17903         * profile.c (branch_prob): Likewise.
17904
17905 2014-06-04  Martin Jambor  <mjambor@suse.cz>
17906
17907         PR ipa/61340
17908         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
17909         handler for switch on an ipa_ref_use enum.
17910         * ipa-reference.c (analyze_function): Likewise.
17911
17912 2014-06-04  Kai Tietz  <ktietz@redhat.com>
17913
17914         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
17915         from old call-instruction.
17916
17917 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
17918
17919         * config/aarch64/aarch64.c (aarch64_classify_address)
17920         (aarch64_legitimize_reload_address): Support full addressing modes
17921         for vector modes.
17922         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
17923         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
17924
17925 2014-06-03  Andrew Pinski  <apinski@cavium.com>
17926
17927         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
17928         for OP0.
17929
17930 2014-06-03  Andrew Pinski  <apinski@cavium.com>
17931
17932         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
17933         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
17934
17935 2014-06-03  Kai Tietz  <ktietz@redhat.com>
17936
17937         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
17938         for 64-bit ms-abi.
17939
17940 2014-06-03  Dehao Chen  <dehao@google.com>
17941
17942         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
17943         the same loop.
17944
17945 2014-06-03  Marek Polacek  <polacek@redhat.com>
17946
17947         PR c/60439
17948         * doc/invoke.texi: Document -Wswitch-bool.
17949         * function.c (stack_protect_epilogue): Cast controlling expression of
17950         the switch to int.
17951         * gengtype.c (walk_type): Generate switch expression with its
17952         controlling expression cast to int.
17953
17954 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
17955
17956         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
17957         and attiny841.
17958         * config/avr/avr-tables.opt: Regenerate.
17959         * config/avr/t-multilib: Regenerate.
17960         * doc/avr-mmcu.texi: Regenerate.
17961
17962 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
17963             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
17964
17965         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
17966         (ata6617c, ata664251): Add new avr35 devices.
17967         (ata6612c): Add new avr4 device.
17968         (ata6613c, ata6614q): Add new avr5 devices.
17969         * config/avr/avr-tables.opt: Regenerate.
17970         * config/avr/t-multilib: Regenerate.
17971         * doc/avr-mmcu.texi: Regenerate.
17972
17973 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
17974
17975         * gcc/config/aarch64/aarch64-builtins.c
17976         (aarch64_types_binop_ssu_qualifiers): New static data.
17977         (TYPES_BINOP_SSU): Define.
17978         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
17979         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
17980         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
17981         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
17982         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
17983         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
17984         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
17985         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
17986         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
17987         suffix to builtin function name, remove cast.
17988         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
17989         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
17990         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
17991
17992 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
17993
17994         * gcc/config/aarch64/aarch64-builtins.c
17995         (aarch64_types_binop_uus_qualifiers,
17996         aarch64_types_shift_to_unsigned_qualifiers,
17997         aarch64_types_unsigned_shiftacc_qualifiers): Define.
17998         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
17999         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
18000         sqshlu_n, uqshl_n): Update qualifiers.
18001         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
18002         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
18003         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
18004         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
18005         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
18006         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
18007         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
18008         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
18009         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
18010         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
18011         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
18012         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
18013         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
18014         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
18015         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
18016         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
18017         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
18018         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
18019         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
18020         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
18021         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
18022         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
18023         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
18024         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
18025         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
18026         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
18027         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
18028
18029 2014-06-03  Teresa Johnson  <tejohnson@google.com>
18030
18031         * tree-sra.c (modify_function): Record caller nodes after rebuild.
18032
18033 2014-06-02  Jason Merrill  <jason@redhat.com>
18034
18035         PR c++/61020
18036         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
18037
18038 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18039
18040         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
18041         location == 0.
18042
18043 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18044
18045         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
18046         New pattern.
18047         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
18048         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
18049         * config/aarch64/iterators.md (REVERSE): New iterator.
18050         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
18051         (rev_op): New int_attribute.
18052         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
18053         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
18054         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
18055         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
18056         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
18057         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
18058         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
18059         Replace temporary __asm__ with __builtin_shuffle.
18060
18061 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
18062
18063         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
18064         mips64r5.
18065         * config/mips/mips-tables.opt: Regenerate.
18066         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
18067         to use mips_isa_rev rather than ISA_MIPS32R2.
18068         * config/mips/mips.h (ISA_MIPS32R3): New define.
18069         (ISA_MIPS32R5): New define.
18070         (ISA_MIPS64R3): New define.
18071         (ISA_MIPS64R5): New define.
18072         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
18073         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
18074         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
18075         and mips64r5.
18076         (MIPS_ISA_SYNCI_SPEC): Likewise.
18077         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
18078         (LINK_SPEC): Added mips32r3 and mips32r5.
18079         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
18080         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
18081         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
18082         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
18083         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
18084         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
18085         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
18086
18087 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
18088
18089         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
18090         options.
18091         * config/mips/mips.opt (mxpa): New option.
18092         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
18093         assembler.
18094
18095 2014-06-03  Martin Jambor  <mjambor@suse.cz>
18096
18097         PR ipa/61160
18098         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
18099         thunks.
18100
18101 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18102
18103         PR tree-optimization/61328
18104         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
18105         initialization from find_bswap_or_nop_1.
18106         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
18107         in source_expr2 before using the size value the function sets. Also
18108         make use of init_symbolic_number () in both the old place and
18109         find_bswap_or_nop_load () to avoid reading uninitialized memory when
18110         doing recursion in the GIMPLE_BINARY_RHS case.
18111
18112 2014-06-03  Richard Biener  <rguenther@suse.de>
18113
18114         PR tree-optimization/61383
18115         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
18116         stmts can't trap.
18117
18118 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
18119
18120         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
18121         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
18122         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
18123         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
18124         in this file.
18125         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
18126         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
18127         * system.h: ...here and make it unconditional.
18128         * target.def (conditional_register_usage): Mention
18129         define_register_constraint instead of old-style constraint macros.
18130         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
18131         * doc/tm.texi: Regenerate.
18132         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
18133         protected by !USE_MD_CONSTRAINTS.
18134         * config/frv/frv.md: Remove quote from old version of documentation.
18135         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
18136         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
18137         CONST_DOUBLE_OK_FOR_LETTER.
18138         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
18139
18140 2014-06-02  Andrew Pinski  <apinski@cavium.com>
18141
18142         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
18143         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
18144         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
18145         file whose name depends on -mabi= and -mbig-endian.
18146         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
18147         Handle LP64 better and handle ilp32 too.
18148         (MULTILIB_OPTIONS): Delete.
18149         (MULTILIB_DIRNAMES): Delete.
18150
18151 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
18152
18153         * expr.h: Remove prototypes of functions defined in builtins.c.
18154         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
18155         Remove prototypes of functions defined in builtins.c.
18156         * builtins.h: Update prototype list to include all exported functions.
18157         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
18158         no_c99_libc_has_function): Move to targhooks.c
18159         (build_string_literal, build_call_expr_loc_array,
18160         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
18161         to tree.c.
18162         (expand_builtin_object_size, fold_builtin_object_size): Make static.
18163         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
18164         no_c99_libc_has_function): Relocate from builtins.c.
18165         * tree.c: Include builtins.h.
18166         (build_call_expr_loc_array, build_call_expr_loc_vec,
18167         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
18168         from builtins.c.
18169         * fold-const.h (fold_fma): Move prototype to builtins.h.
18170         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
18171         * asan.c: Include builtins.h.
18172         * cfgexpand.c: Likewise.
18173         * convert.c: Likewise.
18174         * emit-rtl.c: Likewise.
18175         * except.c: Likewise.
18176         * expr.c: Likewise.
18177         * fold-const.c: Likewise.
18178         * gimple-fold.c: Likewise.
18179         * gimple-ssa-strength-reduction.c: Likewise.
18180         * gimplify.c: Likewise.
18181         * ipa-inline.c: Likewise.
18182         * ipa-prop.c: Likewise.
18183         * lto-streamer-out.c: Likewise.
18184         * stmt.c: Likewise.
18185         * tree-inline.c: Likewise.
18186         * tree-object-size.c: Likewise.
18187         * tree-sra.c: Likewise.
18188         * tree-ssa-ccp.c: Likewise.
18189         * tree-ssa-forwprop.c: Likewise.
18190         * tree-ssa-loop-ivcanon.c: Likewise.
18191         * tree-ssa-loop-ivopts.c: Likewise.
18192         * tree-ssa-math-opts.c: Likewise.
18193         * tree-ssa-reassoc.c: Likewise.
18194         * tree-ssa-threadedge.c: Likewise.
18195         * tree-streamer-in.c: Likewise.
18196         * tree-vect-data-refs.c: Likewise.
18197         * tree-vect-patterns.c: Likewise.
18198         * tree-vect-stmts.c: Likewise.
18199         * config/aarch64/aarch64.c: Likewise.
18200         * config/alpha/alpha.c: Likewise.
18201         * config/arc/arc.c: Likewise.
18202         * config/arm/arm.c: Likewise.
18203         * config/avr/avr.c: Likewise.
18204         * config/bfin/bfin.c: Likewise.
18205         * config/c6x/c6x.c: Likewise.
18206         * config/cr16/cr16.c: Likewise.
18207         * config/cris/cris.c: Likewise.
18208         * config/epiphany/epiphany.c: Likewise.
18209         * config/fr30/fr30.c: Likewise.
18210         * config/frv/frv.c: Likewise.
18211         * config/h8300/h8300.c: Likewise.
18212         * config/i386/i386.c: Likewise.
18213         * config/i386/winnt.c: Likewise.
18214         * config/ia64/ia64.c: Likewise.
18215         * config/iq2000/iq2000.c: Likewise.
18216         * config/lm32/lm32.c: Likewise.
18217         * config/m32c/m32c.c: Likewise.
18218         * config/m32r/m32r.c: Likewise.
18219         * config/m68k/m68k.c: Likewise.
18220         * config/mcore/mcore.c: Likewise.
18221         * config/mep/mep.c: Likewise.
18222         * config/microblaze/microblaze.c: Likewise.
18223         * config/mips/mips.c: Likewise.
18224         * config/mmix/mmix.c: Likewise.
18225         * config/mn10300/mn10300.c: Likewise.
18226         * config/moxie/moxie.c: Likewise.
18227         * config/msp430/msp430.c: Likewise.
18228         * config/nds32/nds32.c: Likewise.
18229         * config/pa/pa.c: Likewise.
18230         * config/pdp11/pdp11.c: Likewise.
18231         * config/picochip/picochip.c: Likewise.
18232         * config/rl78/rl78.c: Likewise.
18233         * config/rs6000/rs6000.c: Likewise.
18234         * config/rx/rx.c: Likewise.
18235         * config/s390/s390.c: Likewise.
18236         * config/score/score.c: Likewise.
18237         * config/sh/sh.c: Likewise.
18238         * config/sparc/sparc.c: Likewise.
18239         * config/spu/spu.c: Likewise.
18240         * config/stormy16/stormy16.c: Likewise.
18241         * config/tilegx/tilegx.c: Likewise.
18242         * config/tilepro/tilepro.c: Likewise.
18243         * config/v850/v850.c: Likewise.
18244         * config/vax/vax.c: Likewise.
18245         * config/xtensa/xtensa.c: Likewise.
18246
18247 2014-06-02  Jeff Law  <law@redhat.com>
18248
18249         PR rtl-optimization/61094
18250         * ree.c (combine_reaching_defs): Do not reextend an insn if it
18251         was marked as do_no_reextend.  If a copy is needed to eliminate
18252         an extension, then mark it as do_not_reextend.
18253
18254 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18255
18256         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
18257
18258 2014-06-02  Richard Henderson  <rth@redhat.com>
18259
18260         PR target/61336
18261         * config/alpha/alpha.c (print_operand_address): Allow symbolic
18262         addresses inside asms.  Use output_operand_lossage instead of
18263         gcc_unreachable.
18264
18265 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
18266
18267         PR target/61239
18268         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
18269         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
18270
18271 2014-06-02  Tom de Vries  <tom@codesourcery.com>
18272
18273         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
18274         case that x has VOIDmode.
18275
18276 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
18277
18278         * varasm.c (copy_constant): Delete function.
18279         (build_constant_desc): Don't call it.
18280
18281 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18282
18283         PR target/61154
18284         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
18285         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
18286         with immediate_operand.
18287
18288 2014-06-02  Andreas Schwab  <schwab@suse.de>
18289
18290         * config/ia64/ia64.c
18291         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
18292         pending_data_specs first.
18293
18294 2014-06-02  Richard Biener  <rguenther@suse.de>
18295
18296         PR tree-optimization/61378
18297         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
18298         valueized_anything.
18299
18300 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
18301
18302         * config/i386/constraints.md (Bw): Rename from 'w'.
18303         (Bz): Rename from 'z'.
18304         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
18305
18306 2014-06-01  Kai Tietz  <ktietz@redhat.com>
18307
18308         PR target/61377
18309         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
18310         * config/i386/i386.md (sibcall_insn_operand): Use Bs
18311         instead of m constraint.
18312
18313 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
18314
18315         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
18316         a separate alternative where the scratch operand 2 is marked as
18317         early clobber.
18318
18319 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
18320
18321         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
18322         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
18323         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
18324         and __builtins_arm_get_fpscr.
18325         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
18326         __builtins_arm_get_fpscr.
18327         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
18328         __builtins_arm_ldfpscr.
18329         (arm_atomic_assign_expand_fenv): New function.
18330         * config/arm/vfp.md (set_fpscr): New pattern.
18331         (get_fpscr) : Likewise.
18332         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
18333         VUNSPEC_SET_FPSCR.
18334         * doc/extend.texi (AARCH64 Built-in Functions) : Document
18335         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
18336
18337 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
18338
18339         * asan.c (report_error_func): Add SLOW_P argument, use
18340         BUILT_IN_ASAN_*_N if set.
18341         (build_check_stmt): Likewise.
18342         (instrument_derefs): If T has insufficient alignment,
18343         force same handling as for odd sizes.
18344
18345         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
18346         BUILT_IN_ASAN_REPORT_STORE_N): New.
18347         * asan.c (struct asan_mem_ref): Change access_size type to
18348         HOST_WIDE_INT.
18349         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
18350         update_mem_ref_hash_table): Likewise.
18351         (asan_mem_ref_hasher::hash): Hash in a HWI.
18352         (report_error_func): Change size_in_bytes argument to HWI.
18353         Use *_N builtins if size_in_bytes is larger than 16 or not power of
18354         two.
18355         (build_shadow_mem_access): New function.
18356         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
18357         Handle size_in_bytes not power of two or larger than 16.
18358         (instrument_derefs): Don't give up if size_in_bytes is not
18359         power of two or is larger than 16.
18360
18361 2014-05-30  Kai Tietz  <ktietz@redhat.com>
18362
18363         PR target/60104
18364         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
18365         for sibling-tail-calls.
18366         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
18367         to its use.
18368         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
18369         (sibcall_insn_operand): Add check for sibcall_memory_operand.
18370
18371 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
18372
18373         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
18374         * config/avr/avr-tables.opt: Regenerate.
18375         * config/avr/t-multilib: Regenerate.
18376         * doc/avr-mmcu.texi: Regenerate.
18377
18378 2014-05-30  Ian Lance Taylor  <iant@google.com>
18379
18380         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
18381         target("sse").
18382
18383 2014-05-30  Tom de Vries  <tom@codesourcery.com>
18384
18385         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
18386         Redefine as true.
18387
18388 2014-05-30  Tom de Vries  <tom@codesourcery.com>
18389
18390         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
18391         * lra.c (initialize_lra_reg_info_element): Add init of
18392         actual_call_used_reg_set field.
18393         (lra): Call lra_create_live_ranges before lra_inheritance for
18394         -fuse-caller-save.
18395         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
18396         -fuse-caller-save.
18397         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
18398         instead of call_used_reg_set for -fuse-caller-save.
18399         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
18400
18401 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18402
18403         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
18404         to mov_imm.
18405         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
18406
18407 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
18408
18409         * ira.c (ira_get_dup_out_num): Check for output operands at
18410         the start of the loop.  Handle cases where an included alternative
18411         follows an excluded one.
18412
18413 2014-05-29  Mike Stump  <mikestump@comcast.net>
18414
18415         PR debug/61352
18416         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
18417         post ld passes when lto is used.
18418
18419 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
18420
18421         PR rtl-optimization/61325
18422         * lra-constraints.c (process_address): Rename to process_address_1.
18423         (process_address): New function.
18424
18425 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
18426
18427         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
18428         TYPES_BINOPV): New static data.
18429         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
18430         New builtin.
18431         * config/aarch64/aarch64-simd.md (aarch64_ext,
18432         aarch64_im_lane_boundsi): New patterns.
18433         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
18434         patterns for EXT.
18435         (aarch64_evpc_ext): New function.
18436
18437         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
18438
18439         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
18440         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
18441         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
18442         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
18443         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
18444
18445 2014-05-29  Tom de Vries  <tom@codesourcery.com>
18446
18447         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
18448
18449 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
18450             Richard Sandiford  <rdsandiford@googlemail.com>
18451
18452         * arm/iterators.md (shiftable_ops): New code iterator.
18453         (t2_binop0, arith_shift_insn): New code attributes.
18454         * arm/predicates.md (shift_nomul_operator): New predicate.
18455         * arm/arm.md (insn_enabled): Delete.
18456         (enabled): Remove insn_enabled test.
18457         (*arith_shiftsi): Delete.  Replace with ...
18458         (*<arith_shift_insn>_multsi): ... new pattern.
18459         (*<arith_shift_insn>_shiftsi): ... new pattern.
18460         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
18461
18462 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
18463             Tom de Vries  <tom@codesourcery.com>
18464
18465         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
18466         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
18467         clobber.
18468         (mips_split_call): Use POST_CALL_TMP_REG.
18469         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
18470
18471 2014-05-29  Tom de Vries  <tom@codesourcery.com>
18472
18473         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
18474         with #ifdef STACK_REGS.
18475
18476 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
18477
18478         * varasm.c (get_variable_section): Walk aliases.
18479         (place_block_symbol): Walk aliases.
18480
18481 2014-05-28  Tom de Vries  <tom@codesourcery.com>
18482
18483         Revert:
18484         2014-05-28  Tom de Vries  <tom@codesourcery.com>
18485
18486         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
18487         * lra.c (initialize_lra_reg_info_element): Add init of
18488         actual_call_used_reg_set field.
18489         (lra): Call lra_create_live_ranges before lra_inheritance for
18490         -fuse-caller-save.
18491         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
18492         -fuse-caller-save.
18493         * lra-constraints.c (need_for_call_save_p): Use
18494         actual_call_used_reg_set instead of call_used_reg_set for
18495         -fuse-caller-save.
18496         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
18497
18498 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
18499
18500         * doc/md.texi: Document that the % constraint character must
18501         be at the beginning of the string.
18502         * genoutput.c (validate_insn_alternatives): Check that '=',
18503         '+' and '%' only appear at the beginning of a constraint.
18504         * ira.c (commutative_constraint_p): Delete.
18505         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
18506         at the start of the string.
18507         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
18508         duplicate '='s.
18509         * config/arm/neon.md (bicdi3_neon): Likewise.
18510         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
18511         (slt_si, sltu_si): Likewise.
18512         * config/vax/vax.md (sbcdi3): Likewise.
18513         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
18514         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
18515         (mul64): Move '%' to beginning of constraint.
18516         * config/arm/arm.md (*xordi3_insn): Likewise.
18517         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
18518         (xorsi3): Likewise.
18519
18520 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
18521
18522         * doc/md.texi: Document the restrictions on the "enabled" attribute.
18523
18524 2014-05-28  Jason Merrill  <jason@redhat.com>
18525
18526         PR c++/47202
18527         * cgraph.h (symtab_node::get_comdat_group_id): New.
18528         * cgraphunit.c (analyze_functions): Call it.
18529         * symtab.c (dump_symtab_node): Likewise.
18530         * tree.c (decl_comdat_group_id): New.
18531         * tree.h: Declare it.
18532         * lto-streamer-out.c (write_symbol): Use it.
18533         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
18534
18535 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
18536
18537         PR bootstrap/PR61146
18538         * wide-int.cc: Do not include longlong.h when compiling with clang.
18539
18540 2014-05-28  Richard Biener  <rguenther@suse.de>
18541
18542         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
18543         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
18544         (vrp_visit_assignment_or_call): Print less vertical space.
18545         (vrp_visit_stmt): Likewise.
18546         (vrp_visit_phi_node): Likewise.  For a PHI argument with
18547         VR_VARYING range consider recording it as copy.
18548
18549 2014-05-28  Richard Biener  <rguenther@suse.de>
18550
18551         Revert
18552         2014-05-28  Richard Biener  <rguenther@suse.de>
18553
18554         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
18555
18556 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18557
18558         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
18559         sufficiently aligned and an offset is used at the same time.
18560         (expand_expr_real_1): Likewise.
18561
18562 2014-05-28  Richard Biener  <rguenther@suse.de>
18563
18564         PR middle-end/61045
18565         * fold-const.c (fold_comparison): When folding
18566         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
18567         the sign of the remaining constant operand stays the same.
18568
18569 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
18570
18571         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
18572         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
18573         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
18574         to the assembler.
18575         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
18576         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
18577         (m32bit-doubles) Likewise.
18578         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
18579         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
18580         option for RL78.
18581
18582 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18583
18584         * configure.ac ($gcc_cv_ld_clearcap): New test.
18585         * configure: Regenerate.
18586         * config.in: Regenerate.
18587         * config/sol2.opt (mclear-hwcap): New option.
18588         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
18589         * config/sol2-clearcap.map: Moved here from
18590         testsuite/gcc.target/i386/clearcap.map.
18591         * config/sol2-clearcapv2.map: Move here from
18592         gcc.target/i386/clearcapv2.map.
18593         * config/t-sol2 (install): Depend on install-clearcap-map.
18594         (install-clearcap-map): New target.
18595         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
18596         -mclear-hwcap.
18597
18598 2014-05-28  Richard Biener  <rguenther@suse.de>
18599
18600         * hwint.h (*_HALF_WIDE_INT*): Move to ...
18601         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
18602         ... here and remove the rest.
18603         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
18604
18605 2014-05-28  Richard Biener  <rguenther@suse.de>
18606
18607         PR tree-optimization/61335
18608         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
18609         new range fails, drop to varying.
18610
18611 2014-05-28  Olivier Hainque  <hainque@adacore.com>
18612
18613         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
18614         (CPP_SPEC): Add entry for -mcpu=8548.
18615         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
18616         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
18617
18618 2014-05-28  Tom de Vries  <tom@codesourcery.com>
18619
18620         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
18621         * lra.c (initialize_lra_reg_info_element): Add init of
18622         actual_call_used_reg_set field.
18623         (lra): Call lra_create_live_ranges before lra_inheritance for
18624         -fuse-caller-save.
18625         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
18626         -fuse-caller-save.
18627         * lra-constraints.c (need_for_call_save_p): Use
18628         actual_call_used_reg_set instead of call_used_reg_set for
18629         -fuse-caller-save.
18630         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
18631
18632 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18633             Tom de Vries  <tom@codesourcery.com>
18634
18635         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
18636         to gccoptlist.
18637         (@item -fuse-caller-save): New item.
18638
18639 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18640             Tom de Vries  <tom@codesourcery.com>
18641
18642         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
18643         OPT_fuse_caller_save.
18644
18645 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18646             Tom de Vries  <tom@codesourcery.com>
18647
18648         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
18649         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
18650         get_call_reg_set_usage.
18651         * resource.c (mark_set_resources, mark_target_live_regs): Use
18652         get_call_reg_set_usage.
18653         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
18654         field.
18655         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
18656         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
18657         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18658         * ira-build.c (ira_create_allocno): Init
18659         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18660         (create_cap_allocno, propagate_allocno_info)
18661         (propagate_some_info_from_allocno)
18662         (copy_info_to_removed_store_destinations): Handle
18663         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18664         * ira-costs.c (ira_tune_allocno_costs): Use
18665         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
18666
18667 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18668             Tom de Vries  <tom@codesourcery.com>
18669
18670         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
18671         and function_used_regs_valid fields.
18672         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
18673         find_all_hard_reg_sets.
18674         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
18675         (get_call_reg_set_usage): New function.
18676         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
18677         * regs.h (get_call_reg_set_usage): Declare.
18678
18679 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
18680
18681         PR libgcc/61152
18682         * config/dbx.h (License): Add Runtime Library Exception.
18683         * config/newlib-stdint.h (License): Same.
18684         * config/rtems.h (License): Same
18685         * config/initfini-array.h (License): Same
18686         * config/v850/v850.h (License): Same.
18687         * config/v850/v850-opts.h (License): Same
18688         * config/v850/rtems.h (License): Same.
18689
18690 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
18691
18692         PR target/61044
18693         * doc/extend.texi (Local Labels): Note that label differences are
18694         not supported for AVR.
18695
18696 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
18697             Olivier Hainque  <hainque@adacore.com>
18698
18699         * rtl.h (set_for_reg_notes): Declare.
18700         * emit-rtl.c (set_for_reg_notes): New function.
18701         (set_unique_reg_note): Use it.
18702         * optabs.c (add_equal_note): Likewise
18703
18704 2014-05-27  Andrew Pinski  <apinski@cavium.com>
18705
18706         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
18707         Use <w> for the register in assembly template.
18708         (stack_protect_test): Use the mode of operands[0] for the result.
18709         (stack_protect_test_<mode>): Use <w> for the register
18710         in assembly template.
18711
18712 2014-05-27  DJ Delorie  <dj@redhat.com>
18713
18714         * config/rx/rx.c (add_vector_labels): New.
18715         (rx_output_function_prologue): Call it.
18716         (rx_handle_func_attribute): Don't require empty arguments.
18717         (rx_handle_vector_attribute): New.
18718         (rx_attribute_table): Add "vector" attribute.
18719         * doc/extend.texi (interrupt, vector): Document new/changed
18720         RX-specific attributes.
18721
18722         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
18723
18724 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
18725
18726         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
18727         predicate to detect a negative quotient.
18728
18729 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
18730
18731         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
18732         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
18733         Add X - Y CMP 0 to X CMP Y transformation.
18734         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
18735
18736 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
18737
18738         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
18739         before printing.
18740
18741 2014-05-27  Steve Ellcey  <sellcey@mips.com>
18742
18743         * config/mips/mips.c: Add include of cgraph.h.
18744
18745 2014-05-27  Richard Biener  <rguenther@suse.de>
18746
18747         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
18748
18749 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
18750
18751         PR libgcc/61152
18752         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
18753         * config/arm/arm-cores.def (License): Same.
18754         * config/arm/arm-opts.h (License): Same.
18755         * config/arm/aout.h (License): Same.
18756         * config/arm/bpabi.h (License): Same.
18757         * config/arm/elf.h (License): Same.
18758         * config/arm/linux-elf.h (License): Same.
18759         * config/arm/linux-gas.h (License): Same.
18760         * config/arm/netbsd-elf.h (License): Same.
18761         * config/arm/uclinux-eabi.h (License): Same.
18762         * config/arm/uclinux-elf.h (License): Same.
18763         * config/arm/vxworks.h (License): Same.
18764
18765 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18766
18767         * config/arm/neon.md (neon_bswap<mode>): New pattern.
18768         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
18769         (arm_init_neon_builtins): Handle NEON_BSWAP.
18770         Define required type nodes.
18771         (arm_expand_neon_builtin): Handle NEON_BSWAP.
18772         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
18773         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
18774         * config/arm/iterators.md (VDQHSD): New mode iterator.
18775
18776 2014-05-27  Richard Biener  <rguenther@suse.de>
18777
18778         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
18779         Try using literal operands when comparing value-ranges failed.
18780
18781 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
18782
18783         * ira.c (commutative_operand): Adjust for change to recog_data.
18784         [Missing from previous commit.]
18785
18786 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
18787
18788         * system.h (TEST_BIT): New macro.
18789         * recog.h (alternative_mask): New type.
18790         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
18791         (recog_data_d): Replace alternative_enabled_p array with
18792         enabled_alternatives.
18793         (target_recog): New structure.
18794         (default_target_recog, this_target_recog): Declare.
18795         (get_enabled_alternatives, recog_init): Likewise.
18796         * recog.c (default_target_recog, this_target_recog): New variables.
18797         (get_enabled_alternatives): New function.
18798         (extract_insn): Use it.
18799         (recog_init): New function.
18800         (preprocess_constraints, constrain_operands): Adjust for change to
18801         recog_data.
18802         * postreload.c (reload_cse_simplify_operands): Likewise.
18803         * reload.c (find_reloads): Likewise.
18804         * ira-costs.c (record_reg_classes): Likewise.
18805         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
18806         all alternatives after a disabled one would be skipped.
18807         (ira_implicitly_set_insn_hard_regs): Likewise.
18808         * ira.c (ira_setup_alts): Adjust for change to recog_data.
18809         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
18810         with enabled_alternatives.
18811         * lra.c (free_insn_recog_data): Update accordingly.
18812         (lra_update_insn_recog_data): Likewise.
18813         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
18814         * lra-constraints.c (process_alt_operands): Likewise.  Handle
18815         only_alternative as part of the enabled mask.
18816         * target-globals.h (this_target_recog): Declare.
18817         (target_globals): Add a recog field.
18818         (restore_target_globals): Restore this_target_recog.
18819         * target-globals.c: Include recog.h.
18820         (default_target_globals): Initialize recog field.
18821         (save_target_globals): Likewise.
18822         * reginfo.c (reinit_regs): Call recog_init.
18823         * toplev.c (backend_init_target): Likewise.
18824
18825 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
18826
18827         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
18828         rather than any named insn's code.
18829
18830 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
18831
18832         PR libgcc/61152
18833         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
18834         * config/arm/arm-cores.def (License): Same.
18835
18836 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
18837
18838         * tree.h (decl_comdat_group): Declare.
18839         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
18840         * tree.c (decl_comdat_group): Here.
18841
18842 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
18843
18844         PR rtl-optimization/61222
18845         * combine.c (simplify_shift_const_1): When moving a PLUS outside
18846         the shift, truncate the PLUS operand to the result mode.
18847
18848 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
18849
18850         PR target/61271
18851         * config/i386/i386.c (ix86_rtx_costs)
18852         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
18853         Fix condition.
18854
18855 2014-05-26  Martin Jambor  <mjambor@suse.cz>
18856
18857         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
18858         subreg uses.
18859
18860 2014-05-26  Richard Biener  <rguenther@suse.de>
18861
18862         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
18863         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
18864         Provide specializations.
18865         (wi::int_traits <HOST_WIDE_INT>,
18866         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
18867
18868 2014-05-26  Alan Modra  <amodra@gmail.com>
18869
18870         PR target/61098
18871         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
18872         params and return a bool.  Remove dead code.  Update comment.
18873         Assert we have a const_int source.  Remove bogus code from
18874         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
18875         handling of constants > 2G and reg_equal note, from..
18876         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
18877         return value.  Update comment.  If we can, use a new pseudo
18878         for intermediate calculations.
18879         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
18880         prototype.
18881         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
18882         call to rs6000_emit_set_const in splitter.
18883         (movdi_internal64+2, +3): Likewise.
18884
18885 2014-05-26  Richard Biener  <rguenther@suse.de>
18886
18887         * system.h: Define __STDC_FORMAT_MACROS before
18888         including inttypes.h.
18889         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
18890         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
18891         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
18892         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
18893         HOST_WIDEST_INT_C): Remove.
18894         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
18895         if C99 inttypes.h is not available.
18896         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
18897         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
18898         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
18899         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
18900         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
18901         (struct output_info): Likewise.
18902         (print_statistics): Adjust.
18903         (dump_bitmap_statistics): Likewise.
18904         * bt-load.c (migrate_btr_defs): Print with PRId64.
18905         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
18906         (MAX_SAFE_MULTIPLIER): Adjust.
18907         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
18908         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
18909         dump_cgraph_node): Likewise.
18910         * final.c (dump_basic_block_info): Likewise.
18911         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
18912         * gcov.c (format_gcov): Likewise.
18913         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
18914         for calculation.
18915         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
18916         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
18917         (inline_small_functions, dump_overall_stats, dump_inline_stats):
18918         Use PRId64 for dumping.
18919         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
18920         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
18921         (add_allocno_hard_regs): Adjust.
18922         * loop-doloop.c (doloop_modify): Print using PRId64.
18923         * loop-iv.c (inverse): Compute in uint64_t.
18924         (determine_max_iter, iv_number_of_iterations): Likewise.
18925         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
18926         Print using PRId64.
18927         * lto-streamer-out.c (write_symbol): Use uint64_t.
18928         * mcf.c (CAP_INFINITY): Use int64_t maximum.
18929         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
18930         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
18931         * modulo-sched.c (const_iteration_count): Use int64_t.
18932         (sms_schedule): Dump using PRId64.
18933         * predict.c (dump_prediction): Likewise.
18934         * pretty-print.h (pp_widest_integer): Remove.
18935         * profile.c (get_working_sets, is_edge_inconsistent,
18936         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
18937         * tree-pretty-print.c (pp_double_int): Remove case handling
18938         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
18939         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
18940         and adjust users.
18941         (pass_optimize_bswap::execute): Remove restriction on hosts.
18942         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
18943         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
18944         * tree.c (widest_int_cst_value): Remove.
18945         * tree.h (widest_int_cst_value): Likewise.
18946         * value-prof.c (dump_histogram_value): Print using PRId64.
18947         * gengtype.c (main): Also inject int64_t.
18948         * ggc-page.c (struct max_alignment): Use int64_t.
18949         * alloc-pool.c (struct allocation_object_def): Likewise.
18950         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
18951         for computation.
18952         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
18953         * doc/tm.texi: Regenerated.
18954         * gengtype-lex.l (IWORD): Handle [u]int64_t.
18955         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
18956         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
18957         mmix_output_register_setting): Use [u]int64_t in prototypes.
18958         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
18959         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
18960         mmix_output_octa, mmix_output_shifted_value): Adjust.
18961         (mmix_intval): Adjust.  Remove unreachable case.
18962         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
18963
18964 2014-05-26  Richard Biener  <rguenther@suse.de>
18965
18966         * configure.ac: Drop __int64 type check.  Insist that we
18967         found uint64_t and int64_t.
18968         * hwint.h (HOST_BITS_PER___INT64): Remove.
18969         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
18970         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
18971         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
18972         (HOST_WIDEST_FAST_INT): Remove __int64 case.
18973         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
18974         for dst_q_src_df_rms_cdt.
18975         * configure: Regenerate.
18976         * config.in: Likewise.
18977
18978 2014-05-26  Michael Tautschnig  <mt@debian.org>
18979
18980         PR target/61249
18981         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
18982         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
18983
18984 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
18985
18986         PR rtl-optimization/61278
18987         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
18988
18989 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
18990
18991         PR rtl-optimization/61220
18992         Part of PR rtl-optimization/61225
18993         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
18994         insn; skip split_edge for a block with only one successor.
18995
18996 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
18997
18998         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
18999         for variables.
19000
19001 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19002
19003         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
19004         (update_vtable_references): New function.
19005         (function_and_variable_visibility): Rewrite also vtable initializers.
19006         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
19007
19008 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19009
19010         * ggc.h (ggc_grow): New function.
19011         * ggc-none.c (ggc_grow): New function.
19012         * ggc-page.c (ggc_grow): Likewise.
19013
19014 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19015
19016         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
19017         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
19018         comdat_can_be_unshared_p, cgraph_externally_visible_p,
19019         varpool_externally_visible_p, can_replace_by_local_alias,
19020         update_visibility_by_resolution_info, function_and_variable_visibility,
19021         pass_data_ipa_function_and_variable_visibility,
19022         make_pass_ipa_function_and_variable_visibility,
19023         whole_program_function_and_variable_visibility,
19024         pass_data_ipa_whole_program_visibility,
19025         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
19026         * cgraph.h (cgraph_local_node_p): Declare.
19027         * ipa-visibility.c: New file.
19028         * Makefile.in (OBJS): Add ipa-visiblity.o
19029
19030 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19031
19032         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
19033         that var decl is available.
19034
19035 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19036
19037         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
19038         symtab_node pointer.
19039         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
19040         (find_decls_types_r): Do not walk COMDAT_GROUP.
19041         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
19042         * varasm.c (make_decl_one_only): Use set_comdat_group;
19043         create node if needed.
19044         * ipa-inline-transform.c (save_inline_function_body): Update
19045         way we decl->symtab mapping.
19046         * symtab.c (symtab_hash, hash_node, eq_node
19047         symtab_insert_node_to_hashtable): Remove.
19048         (symtab_register_node): Update.
19049         (symtab_unregister_node): Update.
19050         (symtab_get_node): Reimplement as inline function.
19051         (symtab_add_to_same_comdat_group): Update.
19052         (symtab_dissolve_same_comdat_group_list): Update.
19053         (dump_symtab_base): Update.
19054         (verify_symtab_base): Update.
19055         (symtab_make_decl_local): Update.
19056         (fixup_same_cpp_alias_visibility): Update.
19057         (symtab_nonoverwritable_alias): Update.
19058         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
19059         * ipa.c (update_visibility_by_resolution_info): UPdate.
19060         * bb-reorder.c: Include cgraph.h
19061         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
19062         with comdat groups.
19063         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
19064         * cgraph.c (cgraph_get_create_node): Update.
19065         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
19066         and comdat_group_.
19067         (symtab_get_node): Make inline.
19068         (symtab_insert_node_to_hashtable): Remove.
19069         (symtab_can_be_discarded): Update.
19070         (decl_comdat_group): New function.
19071         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
19072         Update.
19073         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
19074         comdat group name.
19075         (read_comdat_group): New function.
19076         (input_node, input_varpool_node): Use it.
19077         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
19078         comdat groups.
19079         * mips.c (mips_start_unique_function): Likewise.
19080         (ix86_code_end): Likewise.
19081         (rs6000_code_end): Likweise.
19082         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
19083
19084 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19085
19086         * gengtype-state.c (fatal_reading_state): Bring offline.
19087         * optabs.c (widening_optab_handler): Bring offline.
19088         * optabs.h (widening_optab_handler): Likewise.
19089         * final.c (get_attr_length_1): Likewise.
19090
19091 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19092
19093         * sched-int.h (sd_iterator_cond): Manually tail recurse.
19094
19095 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19096
19097         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
19098         (ppc440-compare): Include shift with dot.
19099         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
19100         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
19101         without dot.
19102         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
19103         without dot.
19104         (e6500_sfx2): Include it.
19105         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
19106         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
19107         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
19108         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
19109         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
19110         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
19111         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
19112         *lshiftrt_internal1le, *lshiftrt_internal1be,
19113         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
19114         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
19115         *rotldi3_internal10le, *rotldi3_internal10be,
19116         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
19117         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
19118         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
19119         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
19120         define_insns): Use type "shift" in the appropriate alternatives.
19121
19122 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19123
19124         * config/rs6000/rs6000.md (type): Add "logical".  Delete
19125         "fast_compare".
19126         (dot): Adjust comment.
19127         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
19128         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
19129         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
19130         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
19131         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
19132         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
19133         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
19134         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
19135
19136         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
19137         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
19138         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
19139         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
19140         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
19141         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
19142         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
19143         * config/rs6000/8540.md (ppc8540_su): Adjust.
19144         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19145         cell-cmp-microcoded): Adjust.
19146         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
19147         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19148         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
19149         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
19150         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
19151         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
19152         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
19153         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
19154         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
19155         Adjust.
19156         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
19157         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
19158         Adjust.  Adjust comment.
19159         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
19160         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
19161
19162 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19163
19164         * config/rs6000/rs6000.md (type): Add "add".
19165         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
19166         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
19167         define_insns): Use it.
19168         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
19169
19170         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
19171         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
19172         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
19173         * config/rs6000/601.md (ppc601-integer): Adjust.
19174         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
19175         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
19176         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
19177         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
19178         * config/rs6000/8540.md (ppc8540_su): Adjust.
19179         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19180         cell-cmp-microcoded): Adjust.
19181         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
19182         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19183         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
19184         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
19185         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
19186         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
19187         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
19188         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
19189         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
19190         Adjust.
19191         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
19192         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
19193         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
19194         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
19195
19196 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19197
19198         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
19199         "delayed_compare", "var_delayed_compare".
19200         (var_shift): New attribute.
19201         (cell_micro): Adjust.
19202         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
19203         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
19204         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
19205         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
19206         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
19207         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
19208         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
19209         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
19210         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
19211         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
19212         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
19213         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
19214         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
19215         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
19216         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
19217         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
19218         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
19219         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
19220         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
19221         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
19222         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
19223         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
19224         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
19225         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19226         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
19227
19228         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
19229         * config/rs6000/440.md (ppc440-integer): Adjust.
19230         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
19231         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
19232         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
19233         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
19234         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
19235         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
19236         * config/rs6000/8540.md (ppc8540_su): Adjust.
19237         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19238         cell-cmp-microcoded): Adjust.
19239         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
19240         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19241         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
19242         e500mc64_delayed): Adjust.
19243         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
19244         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
19245         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
19246         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
19247         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
19248         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
19249         power6-delayed-compare, power6-var-delayed-compare): Adjust.
19250         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
19251         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
19252         Adjust comment.
19253         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
19254         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
19255
19256 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19257
19258         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
19259         (bits): New mode_attr.
19260         (idiv_ldiv): Delete mode_attr.
19261         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
19262         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19263         rs6000_adjust_priority, is_nonpipeline_insn,
19264         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
19265
19266         * config/rs6000/40x.md (ppc403-idiv): Adjust.
19267         * config/rs6000/440.md (ppc440-idiv): Adjust.
19268         * config/rs6000/476.md (ppc476-idiv): Adjust.
19269         * config/rs6000/601.md (ppc601-idiv): Adjust.
19270         * config/rs6000/603.md (ppc603-idiv): Adjust.
19271         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
19272         ppc620-ldiv): Adjust.
19273         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
19274         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
19275         * config/rs6000/8540.md (ppc8540_divide): Adjust.
19276         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
19277         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
19278         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
19279         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
19280         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
19281         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
19282         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
19283         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
19284         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
19285         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
19286         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
19287         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
19288         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
19289         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
19290         * config/rs6000/titan.md (titan_fxu_div): Adjust.
19291
19292 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19293
19294         * config/rs6000/rs6000.md (type): Delete "insert_word",
19295         "insert_dword".  Add "insert".
19296         (size): Update comment.
19297         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19298         insn_must_be_first_in_group): Adjust.
19299         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
19300         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
19301         *insvsi_internal6, insvdi_internal): Adjust.
19302
19303         * config/rs6000/40x.md (ppc403-integer): Adjust.
19304         * config/rs6000/440.md (ppc440-integer): Adjust.
19305         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
19306         * config/rs6000/601.md (ppc601-integer): Adjust.
19307         * config/rs6000/603.md (ppc603-integer): Adjust.
19308         * config/rs6000/6xx.md (ppc604-integer): Adjust.
19309         * config/rs6000/7450.md (ppc7450-integer): Adjust.
19310         * config/rs6000/7xx.md (ppc750-integer): Adjust.
19311         * config/rs6000/8540.md (ppc8540_su): Adjust.
19312         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
19313         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
19314         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19315         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
19316         * config/rs6000/e5500.md (e5500_sfx): Adjust.
19317         * config/rs6000/e6500.md (e6500_sfx): Adjust.
19318         * config/rs6000/mpc.md (mpccore-integer): Adjust.
19319         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
19320         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
19321         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
19322         * config/rs6000/power7.md (power7-integer): Adjust.
19323         * config/rs6000/power8.md (power8-1cyc): Adjust.
19324         * config/rs6000/rs64.md (rs64a-integer): Adjust.
19325         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
19326
19327 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19328
19329         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
19330         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
19331         (size): New attribute.
19332         (dot): New attribute.
19333         (cell_micro): Adjust.
19334         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
19335         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
19336         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
19337         umuldi3_highpart): Adjust.
19338         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19339         rs6000_adjust_priority, is_nonpipeline_insn,
19340         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
19341
19342         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
19343         ppc405-imul3): Adjust.
19344         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
19345         * config/rs6000/476.md (ppc476-imul): Adjust.
19346         * config/rs6000/601.md (ppc601-imul): Adjust.
19347         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
19348         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
19349         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
19350         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
19351         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
19352         Adjust.
19353         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
19354         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
19355         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
19356         cell-imul): Adjust.
19357         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
19358         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
19359         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
19360         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
19361         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
19362         * config/rs6000/mpc.md (mpccore-imul): Adjust.
19363         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
19364         power4-lmul, power4-imul, power4-imul3): Adjust.
19365         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
19366         power5-lmul, power5-imul, power5-imul3): Adjust.
19367         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
19368         power6-lmul, power6-imul, power6-imul3): Adjust.
19369         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
19370         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
19371
19372         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
19373         rs64a-lmul): Adjust.
19374         * config/rs6000/titan.md (titan_imul): Adjust.
19375
19376 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19377
19378         * config/rs6000/rs6000.md (type): Add new value "halfmul".
19379         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
19380         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
19381         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
19382         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
19383         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
19384         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
19385         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
19386         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
19387         * config/rs6000/titan.md: Delete nonsensical comment.
19388         (titan_imul): Add type imul3.
19389         (titan_mulhw): Remove type imul3; add type halfmul.
19390
19391 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19392
19393         * config/rs6000/rs6000.md (type): Reorder, reformat.
19394
19395 2014-05-23  Martin Jambor  <mjambor@suse.cz>
19396
19397         PR tree-optimization/53787
19398         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
19399         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
19400         analysis_done, update all uses.
19401         * ipa-prop.c: Include domwalk.h
19402         (param_analysis_info): Removed.
19403         (param_aa_status): New type.
19404         (ipa_bb_info): Likewise.
19405         (func_body_info): Likewise.
19406         (ipa_get_bb_info): New function.
19407         (aa_overwalked): Likewise.
19408         (find_dominating_aa_status): Likewise.
19409         (parm_bb_aa_status_for_bb): Likewise.
19410         (parm_preserved_before_stmt_p): Changed to use new param AA info.
19411         (load_from_unmodified_param): Accept func_body_info as a parameter
19412         instead of parms_ainfo.
19413         (parm_ref_data_preserved_p): Changed to use new param AA info.
19414         (parm_ref_data_pass_through_p): Likewise.
19415         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
19416         (compute_complex_assign_jump_func): Changed to use new param AA info.
19417         (compute_complex_ancestor_jump_func): Likewise.
19418         (ipa_compute_jump_functions_for_edge): Likewise.
19419         (ipa_compute_jump_functions): Removed.
19420         (ipa_compute_jump_functions_for_bb): New function.
19421         (ipa_analyze_indirect_call_uses): Likewise, moved variable
19422         declarations down.
19423         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
19424         and info, moved variable declarations down.
19425         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
19426         node and info.
19427         (ipa_analyze_stmt_uses): Likewise.
19428         (ipa_analyze_params_uses): Removed.
19429         (ipa_analyze_params_uses_in_bb): New function.
19430         (ipa_analyze_controlled_uses): Likewise.
19431         (free_ipa_bb_info): Likewise.
19432         (analysis_dom_walker): New class.
19433         (ipa_analyze_node): Handle node-specific forbidden analysis,
19434         initialize and free func_body_info, use dominator walker.
19435         (ipcp_modif_dom_walker): New class.
19436         (ipcp_transform_function): Create and free func_body_info, use
19437         ipcp_modif_dom_walker, moved a lot of functionality there.
19438
19439 2014-05-23  Marek Polacek  <polacek@redhat.com>
19440             Jakub Jelinek  <jakub@redhat.com>
19441
19442         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
19443         * gcc.c (sanitize_spec_function): Likewise.
19444         * convert.c (convert_to_integer): Include "ubsan.h".  Add
19445         floating-point to integer instrumentation.
19446         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
19447         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
19448         SANITIZE_NONDEFAULT.
19449         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
19450         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
19451         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
19452         * ubsan.c: Include "realmpfr.h" and "dfp.h".
19453         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
19454         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
19455         float/double/long double.
19456         (ubsan_instrument_float_cast): New function.
19457         * ubsan.h (ubsan_instrument_float_cast): Declare.
19458
19459 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
19460
19461         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
19462         predicate.
19463         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
19464         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
19465         Adjust for tailcalling through registers.
19466         * config/aarch64/aarch64.h (enum reg_class): New caller save
19467         register class.
19468         (REG_CLASS_NAMES): Likewise.
19469         (REG_CLASS_CONTENTS): Likewise.
19470         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
19471         Allow tailcalling without decls.
19472
19473 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
19474
19475         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
19476         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
19477
19478         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
19479         gsi, and variables v_* to v*.
19480
19481 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
19482
19483         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
19484
19485 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
19486
19487         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
19488         * omp-low.c: Update accordingly.
19489
19490         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
19491         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
19492         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
19493         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
19494         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
19495         GF_OMP_TARGET_KIND_UPDATE.
19496
19497         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
19498         Explicitly enumerate the expected region types.
19499
19500 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
19501
19502         PR other/56955
19503         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
19504         documentation; the old documentation didn't clearly state the
19505         constraints on the contents of the pointed-to storage.
19506
19507 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19508
19509         Fix bootstrap error on ia64
19510         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
19511         Return default value.
19512
19513 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19514
19515         PR tree-optimization/54733
19516         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
19517         (CMPNOP): Define.
19518         (find_bswap_or_nop_load): New.
19519         (find_bswap_1): Renamed to ...
19520         (find_bswap_or_nop_1): This. Also add support for memory source.
19521         (find_bswap): Renamed to ...
19522         (find_bswap_or_nop): This. Also add support for memory source and
19523         detection of bitwise operations equivalent to load in target
19524         endianness.
19525         (execute_optimize_bswap): Likewise. Also move its leading comment back
19526         in place and split statement transformation into ...
19527         (bswap_replace): This.
19528
19529 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
19530
19531         PR rtl-optimization/61215
19532         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
19533         simplify_gen_subreg until final substitution.
19534
19535 2014-05-23  Alan Modra  <amodra@gmail.com>
19536
19537         PR target/61231
19538         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
19539         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
19540         Use "Y" constraint rather than "m".
19541
19542 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
19543
19544         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
19545         define.
19546         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
19547         New function declaration.
19548         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
19549         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
19550         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
19551         (aarch64_init_builtins) : Initialize builtins
19552         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
19553         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
19554         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
19555         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
19556         and __builtins_aarch64_set_fpsr.
19557         (aarch64_atomic_assign_expand_fenv): New function.
19558         * config/aarch64/aarch64.md (set_fpcr): New pattern.
19559         (get_fpcr) : Likewise.
19560         (set_fpsr) : Likewise.
19561         (get_fpsr) : Likewise.
19562         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
19563          and UNSPECV_SET_FPSR.
19564         * doc/extend.texi (AARCH64 Built-in Functions) : Document
19565         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
19566         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
19567
19568 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
19569
19570         PR rtl-optimization/60969
19571         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
19572         constraints.  Set up mem cost for NO_REGS case.
19573
19574 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
19575
19576         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
19577
19578 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
19579
19580         * config/darwin.c: Include "lto-section-names.h".
19581         (LTO_SEGMENT_NAME): Don't define.
19582         * config/i386/winnt.c: Include "lto-section-names.h".
19583         * lto-streamer.c: Include "lto-section-names.h".
19584         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
19585         * lto-wrapper.c: Include "lto-section-names.h".
19586         (LTO_SECTION_NAME_PREFIX): Don't define.
19587         * lto-section-names.h: New file.
19588         * cgraphunit.c: Include "lto-section-names.h".
19589
19590 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
19591
19592         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
19593
19594 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
19595
19596         PR target/61208
19597         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
19598
19599 2014-05-22  Nick Clifton  <nickc@redhat.com>
19600
19601         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
19602
19603 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
19604
19605         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
19606         -> (T)A transformation to integer types.
19607
19608 2014-05-22  Teresa Johnson  <tejohnson@google.com>
19609
19610         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
19611         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
19612         (gcov_rewrite): Use gcov_nonruntime_assert.
19613         (gcov_open): Ditto.
19614         (gcov_write_words): Ditto.
19615         (gcov_write_length): Ditto.
19616         (gcov_read_words): Use gcov_nonruntime_assert, and remove
19617         gcc_assert from IN_LIBGCOV code.
19618         (gcov_read_summary): Use gcov_error to flag profile corruption.
19619         (gcov_sync): Use gcov_nonruntime_assert.
19620         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
19621         (gcov_histo_index): Use gcov_nonruntime_assert.
19622         (static void gcov_histogram_merge): Ditto.
19623         (compute_working_sets): Ditto.
19624         * gcov-io.h (gcov_nonruntime_assert): Define.
19625         (gcov_error): Define for !IN_LIBGCOV
19626
19627 2014-05-22  Richard Biener  <rguenther@suse.de>
19628
19629         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
19630         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
19631         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
19632         and deallocation site.
19633         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
19634         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
19635         passing through the incoming points-to set.
19636         (handle_lhs_call): Use flags argument instead of recomputing it.
19637         (find_func_aliases_for_call): Call handle_lhs_call with proper
19638         call return flags.
19639
19640 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
19641
19642         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
19643         all padding bits in REAL_VALUE_TYPE are cleared.
19644
19645 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19646
19647         Cleanup and improve multipass_dfa_lookahead_guard
19648         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
19649         (core2i7_first_cycle_multipass_begin,)
19650         (core2i7_first_cycle_multipass_issue,)
19651         (core2i7_first_cycle_multipass_backtrack): Update signature.
19652         * config/ia64/ia64.c
19653         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
19654         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
19655         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
19656         hook definition.
19657         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
19658         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
19659         values.
19660         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
19661         return values.
19662         * doc/tm.texi: Regenerate.
19663         * doc/tm.texi.in
19664         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
19665         * haifa-sched.c (ready_try): Make signed to allow negative values.
19666         (rebug_ready_list_1): Update.
19667         (choose_ready): Simplify.
19668         (sched_extend_ready_list): Update.
19669
19670 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19671
19672         Remove IA64 speculation tweaking flags
19673         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
19674         speculation tuning flags.
19675         (msched-prefer-non-data-spec-insns,)
19676         (msched-prefer-non-control-spec-insns): Obsolete options.
19677         * haifa-sched.c (choose_ready): Remove handling of
19678         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
19679         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
19680         and PREFER_NON_DATA_SPEC.
19681         * sel-sched.c (process_spec_exprs): Remove handling of
19682         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
19683
19684 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19685
19686         Improve scheduling debug output
19687         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
19688         (advance_one_cycle): Update.
19689         (schedule_insn, queue_to_ready): Add debug printouts.
19690         (debug_ready_list_1): New static function.
19691         (debug_ready_list): Update.
19692         (max_issue): Add debug printouts.
19693         (dump_insn_stream): New static function.
19694         (schedule_block): Use it.  Also better indent printouts.
19695
19696 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19697
19698         Fix sched_insn debug counter
19699         * haifa-sched.c (schedule_insn): Update.
19700         (struct haifa_saved_data): Add nonscheduled_insns_begin.
19701         (save_backtrack_point, restore_backtrack_point): Update.
19702         (first_nonscheduled_insn): New static function.
19703         (queue_to_ready, choose_ready): Use it.
19704         (schedule_block): Init nonscheduled_insns_begin.
19705         (sched_emit_insn): Update.
19706
19707
19708 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
19709
19710         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
19711         to GENERAL_REGS.
19712         (aarch64_secondary_reload) : LikeWise.
19713         (aarch64_class_max_nregs) : Remove CORE_REGS.
19714         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
19715         (REG_CLASS_NAMES) : Likewise.
19716         (REG_CLASS_CONTENTS) : LikeWise.
19717         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
19718
19719 2014-05-21  Guozhi Wei  <carrot@google.com>
19720
19721         PR target/61202
19722         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
19723         constraint.
19724         (vqdmulhq_n_s16): Likewise.
19725
19726 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
19727
19728         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
19729
19730 2014-05-21  Marek Polacek  <polacek@redhat.com>
19731
19732         PR sanitizer/61272
19733         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
19734
19735 2014-05-21  Martin Jambor  <mjambor@suse.cz>
19736
19737         * doc/invoke.texi (Optimize Options): Document parameters
19738         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
19739         ipa-cp-array-index-hint-bonus.
19740
19741 2014-05-21  Mark Wielaard  <mjw@redhat.com>
19742
19743         PR debug/16063
19744         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
19745         version >= 3 or not strict DWARF.
19746         * langhooks.h (struct lang_hooks_for_types): Add
19747         enum_underlying_base_type.
19748         * langhooks.c (lhd_enum_underlying_base_type): New function.
19749         * gcc/langhooks.h (struct lang_hooks_for_types): Add
19750         enum_underlying_base_type.
19751         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
19752         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
19753         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
19754
19755 2014-05-21  Richard Biener  <rguenther@suse.de>
19756
19757         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
19758
19759 2014-05-21  John Marino  <gnugcc@marino.st>
19760
19761         * config.gcc (*-*-dragonfly*): New target.
19762         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
19763         * configure: Regenerate.
19764         * config/dragonfly-stdint.h: New.
19765         * config/dragonfly.h: New.
19766         * config/dragonfly.opt: New.
19767         * config/i386/dragonfly.h: New.
19768         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
19769
19770 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
19771
19772         * tree.def (VOID_CST): New.
19773         * tree-core.h (TI_VOID): New.
19774         * tree.h (void_node): New.
19775         * tree.c (tree_node_structure_for_code, tree_code_size)
19776         (iterative_hash_expr): Handle VOID_CST.
19777         (build_common_tree_nodes): Initialize void_node.
19778
19779 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
19780
19781         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
19782         functions.
19783         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
19784
19785         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
19786         more places.
19787
19788         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
19789         flag_reorder_blocks_and_partition.
19790         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
19791
19792 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
19793
19794         PR target/54236
19795         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
19796         constraints.
19797         (*addc_r_t): Add new insn_and_split.
19798
19799 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
19800
19801         PR middle-end/61252
19802         * omp-low.c (handle_simd_reference): New function.
19803         (lower_rec_input_clauses): Use it.  Defer adding reference
19804         initialization even for reduction without placeholder if in simd,
19805         handle it properly later on.
19806
19807 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
19808
19809         PR tree-optimization/60899
19810         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
19811         assume all static symbols will have definition wile parsing and
19812         check the do have definition later in compilation; check that
19813         variable referring symbol will be output before concluding that
19814         reference is safe; be conservative for referring local statics;
19815         be more precise about when comdat is output in other partition.
19816
19817 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
19818
19819         PR bootstrap/60984
19820         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
19821         parameter.
19822         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
19823         (ipa_inline): Loop inline_to_all_callers until no more aliases
19824         are removed.
19825
19826 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
19827
19828         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
19829         set writeonly flag only for vars actually written to.
19830
19831 2014-05-20  Dehao Chen  <dehao@google.com>
19832
19833         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
19834         and callee count to get clone count.
19835         * tree-inline.c (expand_call_inline): Use callee count instead of bb
19836         count in copy_body.
19837
19838 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
19839
19840         PR rtl-optimization/61243
19841         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
19842
19843 2014-05-20  Xinliang David Li  <davidxl@google.com>
19844
19845         * cgraphunit.c (walk_polymorphic_call_targets): Add
19846         dbgcnt and fopt-info support.
19847         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
19848         * ipa-devirt.c (ipa_devirt): Ditto.
19849         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
19850         * ipa.c (walk_polymorphic_call_targets): Ditto.
19851         * gimple-fold.c (fold_gimple_assign): Ditto.
19852         (gimple_fold_call): Ditto.
19853         * dbgcnt.def: New counter.
19854
19855 2014-05-20  DJ Delorie  <dj@redhat.com>
19856
19857         * config/msp430/msp430.md (split): Don't allow subregs when
19858         splitting SImode adds.
19859         (andneghi): Fix subtraction logic.
19860         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
19861
19862 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
19863
19864         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
19865         symbols.
19866         * except.c (switch_to_exception_section, resolve_unique_section,
19867         get_named_text_section, default_function_rodata_section,
19868         align_variable, get_block_for_decl, default_section_type_flags):
19869         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
19870         * symtab.c (symtab_add_to_same_comdat_group,
19871         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
19872         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
19873         Likewise.
19874         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
19875         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
19876         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
19877         (c6x_function_in_section_p): Likewise.
19878         * config/darwin.c (machopic_select_section): Likewise.
19879         * config/arm/arm.c (arm_function_in_section_p): Likewise.
19880         * config/mips/mips.c (mips_function_rodata_section): Likewise.
19881         * config/mep/mep.c (mep_select_section): LIkewise.
19882         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
19883
19884 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
19885
19886         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
19887         EH region of calls to pure functions that can throw an exception.
19888         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
19889         (copy_reference_ops_from_call): Also copy the EH region of the call if
19890         it can throw an exception.
19891
19892 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19893
19894         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
19895         nested VEC_SELECTs that are inverses of each other.
19896
19897 2014-05-20  Richard Biener  <rguenther@suse.de>
19898
19899         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
19900         (extract_and_process_scc_for_name): not here.
19901         (cond_dom_walker::before_dom_children): Only process
19902         stmts that end the BB in interesting ways.
19903         (run_scc_vn): Mark param uses as visited.
19904
19905 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19906
19907         * config/arm/arm.md (arith_shiftsi): Do not predicate for
19908         arm_restrict_it.
19909
19910 2014-05-20  Nick Clifton  <nickc@redhat.com>
19911
19912         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
19913         (msp430_gimplify_va_arg_expr): New function.
19914         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
19915
19916         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
19917         operand 0 in order to prevent confusion about the number of
19918         registers involved.
19919
19920 2014-05-20  Richard Biener  <rguenther@suse.de>
19921
19922         PR tree-optimization/61221
19923         * tree-ssa-pre.c (el_to_update): Remove.
19924         (eliminate_dom_walker::before_dom_children): Handle released
19925         VDEFs by value-numbering them to the associated VUSE.  Update
19926         stmt immediately for substituted call address.
19927         (eliminate): Remove delayed stmt updating code.
19928         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
19929         possibly late re-numbered vuses.
19930         (vn_reference_lookup_2): Adjust.
19931         (vn_reference_lookup_pieces): Likewise.
19932         (vn_reference_lookup): Likewise.
19933
19934 2014-05-20  Richard Biener  <rguenther@suse.de>
19935
19936         * config.gcc: Remove need_64bit_hwint.
19937         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
19938         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
19939         it to be true.
19940         * config.in: Regenerate.
19941         * configure: Likewise.
19942
19943 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
19944
19945         * doc/extend.texi: Create Label Attributes section,
19946         move all label attributes into it and reference it.
19947
19948 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
19949
19950         * arm.c (thumb1_reorg): When scanning backwards skip anything
19951         that's not a proper insn.
19952
19953 2014-05-19  Richard Biener  <rguenther@suse.de>
19954
19955         PR tree-optimization/61221
19956         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
19957         Do nothing for unreachable blocks.
19958         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
19959         Improve unreachability detection.
19960
19961 2014-05-19  Richard Biener  <rguenther@suse.de>
19962
19963         PR tree-optimization/61209
19964         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
19965
19966 2014-05-19  Nick Clifton  <nickc@redhat.com>
19967
19968         * except.c (init_eh): Fix computation of builtin setjmp buffer
19969         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
19970
19971 2014-05-19  Richard Biener  <rguenther@suse.de>
19972
19973         PR tree-optimization/61184
19974         * tree-vrp.c (is_negative_overflow_infinity): Use
19975         TREE_OVERFLOW_P and do that check first.
19976         (is_positive_overflow_infinity): Likewise.
19977         (is_overflow_infinity): Likewise.
19978         (vrp_operand_equal_p): Properly treat operands with
19979         differing overflow as not equal.
19980
19981 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
19982
19983         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
19984         shift simplification where it was intended.
19985
19986 2014-05-19  Christian Bruel  <christian.bruel@st.com>
19987
19988         PR target/61195
19989         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
19990
19991 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
19992
19993         PR target/61084
19994         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
19995         than wide_int.
19996
19997 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
19998
19999         * reg-notes.def (CROSSING_JUMP): Likewise.
20000         * rtl.h (rtx_def): Update comment for jump flag.
20001         (CROSSING_JUMP_P): Define.
20002         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
20003         of a REG_CROSSING_JUMP note.
20004         * cfghooks.c (tidy_fallthru_edges): Likewise.
20005         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
20006         * emit-rtl.c (try_split): Likewise.
20007         * haifa-sched.c (sched_create_recovery_edges): Likewise.
20008         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
20009         * jump.c (redirect_jump_2): Likewise.
20010         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
20011         (relax_delay_slots): Likewise.
20012         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
20013         (bbit_di): Likewise.
20014         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
20015         * config/sh/sh.md (jump_compact): Likewise.
20016         * bb-reorder.c (rotate_loop): Likewise.
20017         (pass_duplicate_computed_gotos::execute): Likewise.
20018         (add_reg_crossing_jump_notes): Rename to...
20019         (update_crossing_jump_flags): ...this.
20020         (pass_partition_blocks::execute): Update accordingly.
20021
20022 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
20023
20024         * tree.h: Remove extraneous template <>.
20025
20026 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20027
20028         * ipa.c (symtab_remove_unreachable_nodes): Remove
20029         symbol from comdat group if its body was eliminated.
20030         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
20031         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
20032         (symtab_unregister_node): ... this one.
20033         (verify_symtab_base): More strict checking of comdats.
20034         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
20035
20036 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20037
20038         * tree-pass.h (make_pass_ipa_comdats): New pass.
20039         * timevar.def (TV_IPA_COMDATS): New timevar.
20040         * passes.def (pass_ipa_comdats): Add.
20041         * Makefile.in (OBJS): Add ipa-comdats.o
20042         * ipa-comdats.c: New file.
20043
20044 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20045
20046         * ipa.c (update_visibility_by_resolution_info): New function.
20047         (function_and_variable_visibility): Use it.
20048
20049 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20050
20051         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
20052         New functions.
20053         (FOR_EACH_DEFINED_SYMBOL): New macro.
20054         (varpool_first_static_initializer, varpool_next_static_initializer,
20055         varpool_first_defined_variable, varpool_next_defined_variable):
20056         Fix comments.
20057         (symtab_in_same_comdat_p): Correctly deal with inline functions.
20058
20059 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20060
20061         * ggc-page.c (ggc_handle_finalizers): Add comment.
20062
20063 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20064
20065         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
20066         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
20067         (ggc_internal_cleared_alloc): Likewise.
20068         * ggc-page.c (finalizer): New class.
20069         (vec_finalizer): Likewise.
20070         (globals::finalizers): New member.
20071         (globals::vec_finalizers): Likewise.
20072         (ggc_internal_alloc): Record the finalizer if any for the block being
20073         allocated.
20074         (ggc_handle_finalizers): New function.
20075         (ggc_collect): Call ggc_handle_finalizers.
20076         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
20077         finalizer.
20078         (ggc_internal_cleared_alloc): Likewise.
20079         (finalize): New function.
20080         (need_finalization_p): Likewise.
20081         (ggc_alloc): Install the type's destructor as the finalizer if it
20082         might do something.
20083         (ggc_cleared_alloc): Likewise.
20084         (ggc_vec_alloc): Likewise.
20085         (ggc_cleared_vec_alloc): Likewise.
20086
20087 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20088
20089         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
20090
20091 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20092
20093         * alias.c (record_alias_subset): Adjust.
20094         * bitmap.c (bitmap_element_allocate): Likewise.
20095         (bitmap_gc_alloc_stat): Likewise.
20096         * cfg.c (init_flow): Likewise.
20097         (alloc_block): Likewise.
20098         (unchecked_make_edge): Likewise.
20099         * cfgloop.c (alloc_loop): Likewise.
20100         (flow_loops_find): Likewise.
20101         (rescan_loop_exit): Likewise.
20102         * cfgrtl.c (init_rtl_bb_info): Likewise.
20103         * cgraph.c (insert_new_cgraph_node_version): Likewise.
20104         (cgraph_allocate_node): Likewise.
20105         (cgraph_create_edge_1): Likewise.
20106         (cgraph_allocate_init_indirect_info): Likewise.
20107         * cgraphclones.c (cgraph_clone_edge): Likewise.
20108         * cgraphunit.c (add_asm_node): Likewise.
20109         (init_lowered_empty_function): Likewise.
20110         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
20111         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
20112         (alpha_use_linkage): Likewise.
20113         * config/arc/arc.c (arc_init_machine_status): Likewise.
20114         * config/arm/arm.c (arm_init_machine_status): Likewise.
20115         * config/avr/avr.c (avr_init_machine_status): Likewise.
20116         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
20117         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
20118         * config/cris/cris.c (cris_init_machine_status): Likewise.
20119         * config/darwin.c (machopic_indirection_name): Likewise.
20120         (darwin_build_constant_cfstring): Likewise.
20121         (darwin_enter_string_into_cfstring_table): Likewise.
20122         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
20123         * config/frv/frv.c (frv_init_machine_status): Likewise.
20124         * config/i386/i386.c (get_dllimport_decl): Likewise.
20125         (ix86_init_machine_status): Likewise.
20126         (assign_386_stack_local): Likewise.
20127         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
20128         (i386_pe_maybe_record_exported_symbol): Likewise.
20129         (i386_pe_record_stub): Likewise.
20130         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
20131         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
20132         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
20133         (m32c_note_pragma_address): Likewise.
20134         * config/mep/mep.c (mep_init_machine_status): Likewise.
20135         (mep_note_pragma_flag): Likewise.
20136         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
20137         (mips16_local_alias): Likewise.
20138         (mips_init_machine_status): Likewise.
20139         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
20140         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
20141         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
20142         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
20143         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
20144         * config/pa/pa.c (pa_init_machine_status): Likewise.
20145         (pa_get_deferred_plabel): Likewise.
20146         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
20147         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
20148         (rs6000_init_machine_status): Likewise.
20149         (output_toc): Likewise.
20150         * config/s390/s390.c (s390_init_machine_status): Likewise.
20151         * config/score/score.c (score_output_external): Likewise.
20152         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
20153         * config/spu/spu.c (spu_init_machine_status): Likewise.
20154         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
20155         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
20156         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
20157         * coverage.c (coverage_end_function): Likewise.
20158         * dbxout.c (dbxout_init): Likewise.
20159         * doc/gty.texi: Don't mention variable_size attribute.
20160         * dwarf2cfi.c (new_cfi): Adjust.
20161         (new_cfi_row): Likewise.
20162         (copy_cfi_row): Likewise.
20163         (create_cie_data): Likewise.
20164         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
20165         (new_loc_descr): Likewise.
20166         (find_AT_string_in_table): Likewise.
20167         (add_addr_table_entry): Likewise.
20168         (new_die): Likewise.
20169         (add_var_loc_to_decl): Likewise.
20170         (clone_die): Likewise.
20171         (clone_as_declaration): Likewise.
20172         (break_out_comdat_types): Likewise.
20173         (new_loc_list): Likewise.
20174         (add_loc_descr_to_each): Likewise.
20175         (add_location_or_const_value_attribute): Likewise.
20176         (add_linkage_name): Likewise.
20177         (lookup_filename): Likewise.
20178         (dwarf2out_var_location): Likewise.
20179         (new_line_info_table): Likewise.
20180         (dwarf2out_init): Likewise.
20181         (mem_loc_descriptor): Likewise.
20182         (loc_descriptor): Likewise.
20183         (add_const_value_attribute): Likewise.
20184         (tree_add_const_value_attribute): Likewise.
20185         (comp_dir_string): Likewise.
20186         (dwarf2out_vms_debug_main_pointer): Likewise.
20187         (string_cst_pool_decl): Likewise.
20188         * emit-rtl.c (set_mem_attrs): Likewise.
20189         (get_reg_attrs): Likewise.
20190         (start_sequence): Likewise.
20191         (init_emit): Likewise.
20192         (init_emit_regs): Likewise.
20193         * except.c (init_eh_for_function): Likewise.
20194         (gen_eh_region): Likewise.
20195         (gen_eh_region_catch): Likewise.
20196         (gen_eh_landing_pad): Likewise.
20197         (add_call_site): Likewise.
20198         * function.c (add_frame_space): Likewise.
20199         (insert_temp_slot_address): Likewise.
20200         (assign_stack_temp_for_type): Likewise.
20201         (get_hard_reg_initial_val): Likewise.
20202         (allocate_struct_function): Likewise.
20203         (prepare_function_start): Likewise.
20204         (types_used_by_var_decl_insert): Likewise.
20205         * gengtype.c (variable_size_p): Remove function.
20206         (enum alloc_quantity): Remove enum.
20207         (write_typed_alloc_def): Remove function.
20208         (write_typed_struct_alloc_def): Likewise.
20209         (write_typed_typedef_alloc_def): Likewise.
20210         (write_typed_alloc_defns): Likewise.
20211         (main): Adjust.
20212         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
20213         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
20214         * ggc.h (ggc_alloc): new function.
20215         (ggc_cleared_alloc): Likewise.
20216         (ggc_vec_alloc): Template on type of vector element, and remove
20217         element size argument.
20218         (ggc_cleared_vec_alloc): Likewise.
20219         * gimple.c (gimple_build_omp_for): Adjust.
20220         (gimple_copy): Likewise.
20221         * ipa-cp.c (get_replacement_map): Likewise.
20222         (find_aggregate_values_for_callers_subset): Likewise.
20223         (known_aggs_to_agg_replacement_list): Likewise.
20224         * ipa-devirt.c (get_odr_type): Likewise.
20225         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
20226         (read_agg_replacement_chain): Likewise.
20227         * loop-iv.c (get_simple_loop_desc): Likewise.
20228         * lto-cgraph.c (input_node_opt_summary): Likewise.
20229         * lto-section-in.c (lto_new_in_decl_state): Likewise.
20230         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
20231         (input_eh_region): Likewise.
20232         (input_eh_lp): Likewise.
20233         (input_cfg): Likewise.
20234         * optabs.c (set_optab_libfunc): Likewise.
20235         (init_tree_optimization_optabs): Likewise.
20236         (set_conv_libfunc): Likewise.
20237         * passes.c (do_per_function_toporder): Likewise.
20238         * rtl.h: Don't use variable_size gty attribute.
20239         * sese.c (if_region_set_false_region): Adjust.
20240         * stringpool.c (gt_pch_save_stringpool): Likewise.
20241         * target-globals.c (save_target_globals): Likewise.
20242         * toplev.c (general_init): Likewise.
20243         * trans-mem.c (record_tm_replacement): Likewise.
20244         (split_bb_make_tm_edge): Likewise.
20245         * tree-cfg.c (move_sese_region_to_fn): Likewise.
20246         * tree-data-ref.h (lambda_vector_new): Likewise.
20247         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
20248         * tree-iterator.c (tsi_link_before): Likewise.
20249         (tsi_link_after): Likewise.
20250         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
20251         * tree-ssa-loop-niter.c (record_estimate): Likewise.
20252         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
20253         * tree-ssa-operands.h: Don't use variable_size gty attribute.
20254         * tree-ssa.c (init_tree_ssa): Adjust.
20255         * tree-ssanames.c (set_range_info): Likewise.
20256         (get_ptr_info): Likewise.
20257         (duplicate_ssa_name_ptr_info): Likewise.
20258         (duplicate_ssa_name_range_info): Likewise.
20259         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
20260         (unpack_ts_fixed_cst_value_fields): Likewise.
20261         * tree.c (build_fixed): Likewise.
20262         (build_real): Likewise.
20263         (build_string): Likewise.
20264         (decl_priority_info): Likewise.
20265         (decl_debug_expr_insert): Likewise.
20266         (decl_value_expr_insert): Likewise.
20267         (decl_debug_args_insert): Likewise.
20268         (type_hash_add): Likewise.
20269         (build_omp_clause): Likewise.
20270         * ubsan.c (decl_for_type_insert): Likewise.
20271         * varasm.c (get_unnamed_section): Likewise.
20272         (get_noswitch_section): Likewise.
20273         (get_section): Likewise.
20274         (get_block_for_section): Likewise.
20275         (create_block_symbol): Likewise.
20276         (build_constant_desc): Likewise.
20277         (create_constant_pool): Likewise.
20278         (force_const_mem): Likewise.
20279         (record_tm_clone_pair): Likewise.
20280         * varpool.c (varpool_create_empty_node): Likewise.
20281
20282 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20283
20284         * dwarf2out.c (tree_add_const_value_attribute): Call
20285         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
20286         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
20287         instead of ggc_internal_<x>alloc_stat.
20288         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
20289         (ggc_realloc): Likewise.
20290         * ggc-none.c (ggc_internal_alloc): Likewise.
20291         (ggc_internal_cleared_alloc): Likewise.
20292         * ggc-page.c: Likewise.
20293         * ggc.h (ggc_internal_alloc_stat): Likewise.
20294         (ggc_internal_alloc): Remove macro.
20295         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
20296         (ggc_internal_cleared_alloc): Remove macro.
20297         (GGC_RESIZEVEC): Adjust.
20298         (ggc_resizevar): Remove macro.
20299         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
20300         (ggc_internal_cleared_vec_alloc_stat): Likewise.
20301         (ggc_internal_vec_cleared_alloc): Remove macro.
20302         (ggc_alloc_atomic_stat): Drop _stat suffix.
20303         (ggc_alloc_atomic): Remove macro.
20304         (ggc_alloc_cleared_atomic): Remove macro.
20305         (ggc_alloc_string_stat): Drop _stat suffix.
20306         (ggc_alloc_string): Remove macro.
20307         (ggc_alloc_rtx_def_stat): Adjust.
20308         (ggc_alloc_tree_node_stat): Likewise.
20309         (ggc_alloc_cleared_tree_node_stat): Likewise.
20310         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
20311         (ggc_alloc_cleared_simd_clone_stat): Likewise.
20312         * gimple.c (gimple_build_omp_for): Likewise.
20313         (gimple_copy): Likewise.
20314         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
20315         * toplev.c (realloc_for_line_map): Adjust.
20316         * tree-data-ref.h (lambda_vector_new): Likewise.
20317         * tree-phinodes.c (allocate_phi_node): Likewise.
20318         * tree.c (grow_tree_vec_stat): Likewise.
20319         * vec.h (va_gc::reserve): Adjust.
20320
20321 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
20322
20323         * config/microblaze/microblaze.c (break_handler): New Declaration.
20324         (microblaze_break_function_p,microblaze_is_break_handler): New.
20325         (compute_frame_size): Use microblaze_break_function_p.
20326         Add the test of break_handler.
20327         (microblaze_function_prologue) : Add the test of variable
20328         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
20329         (microblaze_function_epilogue) : Add the test of break_handler.
20330         (microblaze_globalize_label) : Add the test of break_handler.
20331         Check the name by BREAK_HANDLER_NAME.
20332
20333         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
20334
20335         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
20336         microblaze_is_break_handler test.
20337         (call_internal1,call_value_intern): Use microblaze_break_function_p.
20338         Use SYMBOL_REF_DECL.
20339
20340         * config/microblaze/microblaze-protos.h
20341         (microblaze_break_function_p,microblaze_is_break_handler):
20342         New Declaration.
20343
20344         * doc/extend.texi (MicroBlaze break_handler Functions): Document
20345         new MicroBlaze break_handler functions.
20346
20347 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
20348
20349         * doc/extend.texi (Size of an asm): Move node text according
20350         to its @menu entry position.
20351
20352 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
20353
20354         PR tree-optimization/61140
20355         PR tree-optimization/61150
20356         PR tree-optimization/61197
20357         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
20358
20359 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
20360
20361         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
20362
20363 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
20364
20365         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
20366         __SIZEOF_INT128__ is defined.
20367
20368 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
20369
20370         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
20371         (rs6000_delegitimize_address): Use it.
20372
20373 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
20374
20375         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
20376         inplace argument.  Store the new address in the original MEM when true.
20377         * emit-rtl.c (change_address_1): Likewise.
20378         (adjust_address_1, adjust_automodify_address_1, offset_address):
20379         Update accordingly.
20380         * rtl.h (plus_constant): Add an inplace argument.
20381         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
20382         when true.  Avoid generating (plus X (const_int 0)).
20383         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
20384         in-place.  Pass true to plus_constant.
20385         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
20386
20387 2014-05-16  Dehao Chen  <dehao@google.com>
20388
20389         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
20390
20391 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
20392
20393         PR target/54089
20394         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
20395         patterns.
20396         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
20397
20398 2014-05-16  Dehao Chen  <dehao@google.com>
20399
20400         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
20401         optimize_function_for_size_p.
20402         * regs.h (REG_FREQ_FROM_BB): Likewise.
20403
20404 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
20405
20406         PR target/51244
20407         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
20408         negt_reg_operand cases.
20409         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
20410         predicate.
20411         * config/sh/predicates.md (cbranch_treg_value): Simplify.
20412
20413 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
20414
20415         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
20416         target variants.
20417
20418 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
20419
20420         Revert:
20421         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
20422
20423         * tree-cfg.c (dump_function_to_file): Dump the return type of
20424         functions, in a line to itself before the function body, mimicking
20425         the layout of a C function.
20426
20427 2014-05-16  Dehao Chen  <dehao@google.com>
20428
20429         * cfghooks.c (make_forwarder_block): Use direct computation to
20430         get fall-through edge's count and frequency.
20431
20432 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
20433
20434         * config/arc/arc.c (arc_init): Fix typo in error message.
20435         * config/i386/i386.c (ix86_expand_builtin): Likewise.
20436         (split_stack_prologue_scratch_regno): Likewise.
20437         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
20438         word from error message.
20439
20440 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
20441
20442         * ira-costs.c: Fix typo in comment.
20443
20444 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
20445
20446         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
20447
20448 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
20449
20450         * varpool.c (dump_varpool_node): Dump write-only flag.
20451         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
20452         write-only flag.
20453         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
20454         write-only variables.
20455         * ipa.c (process_references): New function.
20456         (set_readonly_bit): New function.
20457         (set_writeonly_bit): New function.
20458         (clear_addressable_bit): New function.
20459         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
20460         fix handling of aliases.
20461         * cgraph.h (struct varpool_node): Add writeonly flag.
20462
20463 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
20464
20465         PR rtl-optimization/60969
20466         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
20467         Calculate costs for this case.
20468
20469 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
20470
20471         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
20472         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
20473
20474 2014-05-16  Richard Biener  <rguenther@suse.de>
20475
20476         PR tree-optimization/61194
20477         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
20478         bool patterns ending in a COND_EXPR.
20479
20480 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20481
20482         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
20483
20484 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20485
20486         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
20487         where we were unable to cost an RTX.
20488
20489 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20490
20491         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
20492         HIGH, LO_SUM.
20493
20494 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20495             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20496
20497         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
20498
20499 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20500             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20501
20502         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
20503         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
20504
20505 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20506             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20507
20508         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
20509         operators.
20510
20511 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20512             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20513
20514         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
20515         DIV/MOD.
20516
20517 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20518             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20519
20520         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
20521         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
20522
20523 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20524             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20525
20526         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
20527         rotates and shifts.
20528
20529 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20530             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20531
20532         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
20533         ZERO_EXTEND and SIGN_EXTEND better.
20534
20535 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20536             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20537
20538         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
20539         logical operations.
20540
20541 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20542             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20543
20544         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
20545         costs when costing loads and stores to memory.
20546
20547 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20548             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
20549
20550         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
20551         for SET RTX.
20552
20553 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20554
20555         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
20556
20557 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20558             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20559
20560         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
20561         to...
20562         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
20563         well formed.
20564         (aarch64_rtx_mult_cost): New.
20565         (aarch64_rtx_costs): Use it, refactor as appropriate.
20566
20567 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20568             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20569
20570         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
20571         emit instructions, return number of instructions which would
20572         be emitted.
20573         (aarch64_add_constant): Update call to aarch64_build_constant.
20574         (aarch64_output_mi_thunk): Likewise.
20575         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
20576         a CONST_DOUBLE.
20577
20578 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20579
20580         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
20581         (TARGET_RTX_COSTS): Call it.
20582
20583 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20584
20585         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
20586         (cortexa57_vector_cost): Likewise.
20587         (cortexa57_tunings): Use them.
20588
20589 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20590
20591         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
20592         (cpu_addrcost_table): Use it.
20593         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
20594         (aarch64_address_cost): Rewrite using aarch64_classify_address,
20595         move it.
20596
20597 2014-05-16  Richard Biener  <rguenther@suse.de>
20598
20599         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
20600         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
20601         (visit_phi): Ignore edges marked as not executable.
20602         (class cond_dom_walker): New.
20603         (cond_dom_walker::before_dom_children): Value-number
20604         control statements and mark successor edges as not
20605         executable if possible.
20606         (run_scc_vn): First walk all control statements in
20607         dominator order, marking edges as not executable.
20608         * tree-inline.c (copy_edges_for_bb): Be not confused
20609         about random edge flags.
20610
20611 2014-05-16  Richard Biener  <rguenther@suse.de>
20612
20613         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
20614
20615 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
20616
20617         PR target/61193
20618         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
20619         (__TM_simple_begin): Use it.
20620         (__TM_begin): Likewise.
20621
20622 2014-05-15  Martin Jambor  <mjambor@suse.cz>
20623
20624         PR ipa/61085
20625         * ipa-prop.c (update_indirect_edges_after_inlining): Check
20626         type_preserved flag when the indirect edge is polymorphic.
20627
20628 2014-05-15  Martin Jambor  <mjambor@suse.cz>
20629
20630         PR tree-optimization/61090
20631         * tree-sra.c (sra_modify_expr): Pass the current gsi to
20632         build_ref_for_model.
20633
20634 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20635
20636         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
20637         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
20638
20639 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
20640
20641         PR tree-optimization/61158
20642         * fold-const.c (fold_binary_loc): If X is zero-extended and
20643         shiftc >= prec, make sure zerobits is all ones instead of
20644         invoking undefined behavior.
20645
20646 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20647
20648         * regcprop.h: New file.
20649         * regcprop.c (skip_debug_insn_p): New decl.
20650         (replace_oldest_value_reg): Check skip_debug_insn_p.
20651         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
20652         * shrink-wrap.c: Include regcprop.h.
20653         (prepare_shrink_wrap): Call
20654         copyprop_hardreg_forward_bb_without_debug_insn.
20655
20656 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20657
20658         * shrink-wrap.h: Update comment.
20659         * shrink-wrap.c: Update comment.
20660         (next_block_for_reg): Rename to live_edge_for_reg.
20661         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
20662         (move_insn_for_shrink_wrap): Split live_edge.
20663         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
20664
20665 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
20666
20667         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
20668         Delete.
20669         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
20670         * config/sparc/sparc.md (fptype_ut699): New attribute.
20671         (in_branch_delay): Return false if -mfix-ut699 is specified and
20672         fptype_ut699 is set to single.
20673         (truncdfsf2): Add fptype_ut699 attribute.
20674         (fix_truncdfsi2): Likewise.
20675         (floatsisf2): Change fptype attribute.
20676         (fix_truncsfsi2): Likewise.
20677         (negtf2_notv9): Delete.
20678         (negtf2_v9): Likewise.
20679         (negtf2_hq): New instruction.
20680         (negtf2): New instruction and splitter.
20681         (negdf2_notv9): Rewrite.
20682         (abstf2_notv9): Delete.
20683         (abstf2_hq_v9): Likewise.
20684         (abstf2_v9): Likewise.
20685         (abstf2_hq): New instruction.
20686         (abstf2): New instruction and splitter.
20687         (absdf2_notv9): Rewrite.
20688
20689 2014-05-14  Cary Coutant  <ccoutant@google.com>
20690
20691         PR debug/61013
20692         * opts.c (common_handle_option): Don't special-case "-g".
20693         (set_debug_level): Default to at least level 2 with "-g".
20694
20695 2014-05-14  DJ Delorie  <dj@redhat.com>
20696
20697         * config/msp430/msp430.c (msp430_builtin): Add
20698         MSP430_BUILTIN_DELAY_CYCLES.
20699         (msp430_init_builtins): Register void __delay_cycles(long long).
20700         (msp430_builtin_decl): Add it.
20701         (cg_magic_constant): New.
20702         (msp430_expand_delay_cycles): New.
20703         (msp430_expand_builtin): Call it.
20704         (msp430_print_operand_raw): Change integer printing from "int" to
20705         HOST_WIDE_INT.
20706         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
20707         (delay_cycles_start): New.
20708         (delay_cycles_end): New.
20709         (delay_cycles_32): New.
20710         (delay_cycles_32x): New.
20711         (delay_cycles_16): New.
20712         (delay_cycles_16x): New.
20713         (delay_cycles_2): New.
20714         (delay_cycles_1): New.
20715         * doc/extend.texi: Document __delay_cycles().
20716
20717 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
20718
20719         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
20720         length attribute computation.
20721
20722 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
20723
20724         PR debug/61188
20725         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
20726
20727 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
20728
20729         PR target/61084
20730         * config/sparc/sparc.md: Fix types of low and high in DI constant
20731         splitter.  Use gen_int_mode in some other splitters.
20732
20733 2014-05-14  Martin Jambor  <mjambor@suse.cz>
20734
20735         PR ipa/60897
20736         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
20737
20738 2014-05-14  James Norris  <jnorris@codesourcery.com>
20739
20740         * omp-low.c (expand_parallel_call): Remove shadow variable.
20741         (expand_omp_taskreg): Likewise.
20742
20743 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
20744
20745         * common/config/i386/i386-common.c
20746         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
20747         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
20748         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
20749         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
20750         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
20751         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
20752         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
20753         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
20754         xsavecintrin.h, xsavesintrin.h.
20755         (x86_64-*-*): Ditto.
20756         * config/i386/clflushoptintrin.h: New.
20757         * config/i386/xsavecintrin.h: Ditto.
20758         * config/i386/xsavesintrin.h: Ditto.
20759         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
20760         (bit_XSAVES): Ditto.
20761         (bit_XSAVES): Ditto.
20762         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
20763         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
20764         -mno-clflushopt.
20765         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
20766         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
20767         OPTION_MASK_ISA_XSAVES.
20768         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
20769         -mxsavec, -mxsaves.
20770         (PTA_CLFLUSHOPT) Define.
20771         (PTA_XSAVEC): Ditto.
20772         (PTA_XSAVES): Ditto.
20773         (ix86_option_override_internal): Handle new options.
20774         (ix86_valid_target_attribute_inner_p): Ditto.
20775         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
20776         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
20777         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
20778         (bdesc_special_args): Add __builtin_ia32_xsaves,
20779         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
20780         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
20781         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
20782         (ix86_expand_builtin): Handle new builtins.
20783         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
20784         (TARGET_CLFLUSHOPT_P): Ditto.
20785         (TARGET_XSAVEC): Ditto.
20786         (TARGET_XSAVEC_P): Ditto.
20787         (TARGET_XSAVES): Ditto.
20788         (TARGET_XSAVES_P): Ditto.
20789         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
20790         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
20791         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
20792         (ANY_XRSTOR): New.
20793         (ANY_XRSTOR64): Ditto.
20794         (xrstor): Ditto.
20795         (xrstor): Change into <xrstor>.
20796         (xrstor_rex64): Change into <xrstor>_rex64.
20797         (xrstor64): Change into <xrstor>64
20798         (clflushopt): New.
20799         * config/i386/i386.opt (mclflushopt): New.
20800         (mxsavec): Ditto.
20801         (mxsaves): Ditto.
20802         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
20803         xsavecintrin.h.
20804         * doc/invoke.texi: Document new options.
20805
20806 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
20807
20808         PR rtl-optimization/60866
20809         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
20810         Default it to -1.  Pass it down to init_simplejump_data.
20811         (init_simplejump_data): New parameter old_seqno.  Pass it down
20812         to get_seqno_for_a_jump.
20813         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
20814         initializing new jump seqno as a last resort.  Add comment.
20815         (sel_redirect_edge_and_branch): Save old seqno of the conditional
20816         jump and pass it down to sel_init_new_insn.
20817         (sel_redirect_edge_and_branch_force): Likewise.
20818
20819 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
20820
20821         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
20822         shifted values to avoid build warning.
20823
20824 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
20825
20826         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
20827         * cfgrtl.c (rtl_merge_blocks): Fix comment.
20828         (cfg_layout_merge_blocks): Likewise.
20829         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
20830
20831 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
20832
20833         PR rtl-optimization/60901
20834         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
20835         bb predecessor belongs to the same scheduling region.  Adjust comment.
20836
20837 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
20838
20839         * doc/sourcebuild.texi: (dfp_hw): Document.
20840         (p8vector_hw): Likewise.
20841         (powerpc_eabi_ok): Likewise.
20842         (powerpc_elfv2): Likewise.
20843         (powerpc_htm_ok): Likewise.
20844         (ppc_recip_hw): Likewise.
20845         (vsx_hw): Likewise.
20846
20847 2014-05-13  Cary Coutant  <ccoutant@google.com>
20848
20849         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
20850
20851 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
20852
20853         * gengtype-parse.c (require3): Eliminate in favor of...
20854         (require4): New.
20855         (require_template_declaration): Update to support optional single *
20856         on a type.
20857
20858         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
20859         (create_user_defined_type): Handle a single level of explicit
20860         pointerness within template arguments.
20861         (struct write_types_data): Add field "kind".
20862         (filter_type_name): Handle "*" character.
20863         (write_user_func_for_structure_ptr): Require a write_types_data
20864         rather than just a prefix string, so that we can look up the kind
20865         of the wtd and use it as an index into wrote_user_func_for_ptr,
20866         ensuring that such functions are written at most once.  Support
20867         subclasses by invoking the marking function of the ultimate base class.
20868         (write_user_func_for_structure_body): Require a write_types_data
20869         rather than just a prefix string, so that we can pass this to
20870         write_user_func_for_structure_ptr.
20871         (write_func_for_structure): Likewise.
20872         (ggc_wtd): Add initializer of new "kind" field.
20873         (pch_wtd): Likewise.
20874
20875         * gengtype.h (enum write_types_kinds): New.
20876         (struct type): Add field wrote_user_func_for_ptr to the "s"
20877         union member.
20878
20879 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
20880
20881         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
20882         instead of const_binop.
20883         (fold_binary_loc): Likewise.
20884
20885 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
20886
20887         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
20888         calculation to match get_ref_base_and_extent.
20889
20890 2014-05-13  Catherine Moore  <clm@codesourcery.com>
20891             Sandra Loosemore  <sandra@codesourcery.com>
20892
20893         * configure.ac: Fix assembly for explicit JALR relocation check.
20894         * configure: Regenerate.
20895
20896 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20897
20898         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
20899         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
20900         Remove associated type declarations and initialisations.
20901         (arm_expand_neon_builtin): Likewise.
20902         (neon_emit_pair_result_insn): Delete.
20903         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
20904         * config/arm/neon.md (neon_vtrn<mode>): Delete.
20905         (neon_vzip<mode>): Likewise.
20906         (neon_vuzp<mode>): Likewise.
20907
20908 2014-05-13  Richard Biener  <rguenther@suse.de>
20909
20910         PR ipa/60973
20911         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
20912         it needs revisiting whether the call still may be tail-called.
20913
20914 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
20915
20916         * rtl.def (SYMBOL_REF): Remove middle "0" field.
20917         * rtl.h (block_symbol): Reduce number of fields to 2.
20918         (rtx_def): Add u2.symbol_ref_flags.
20919         (SYMBOL_REF_FLAGS): Use it.
20920         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
20921         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
20922         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
20923         Lower index of SYMBOL_REF_DATA.
20924         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
20925         Print SYMBOL_REF_FLAGS at the same time.
20926         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
20927
20928 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
20929
20930         * rtl.def (VAR_LOCATION): Remove "i" field.
20931         * rtl.h (rtx_def): Add u2.var_location_status.
20932         (PAT_VAR_LOCATION_STATUS): Use it.
20933         (gen_rtx_VAR_LOCATION): Declare.
20934         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
20935         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
20936         * var-tracking.c (emit_note_insn_var_location): Remove casts.
20937
20938 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
20939
20940         * rtl.def (scratch): Fix outdated comment and remove "0" field.
20941         * gengtype.c (adjust_field_rtx_def): Update accordingly.
20942
20943 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
20944
20945         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
20946         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
20947         * rtl.h (rtx_def): Add insn_uid to u2 field.
20948         (RTX_FLAG_CHECK8): Delete in favor of...
20949         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
20950         (INSN_DELETED_P): Update accordingly.
20951         (INSN_UID): Use u2.insn_uid.
20952         (INSN_CHAIN_CODE_P): Define.
20953         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
20954         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
20955         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
20956         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
20957         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
20958         indices accordingly.
20959         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
20960         Update indices for insn-chain rtxes.
20961         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
20962         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
20963         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
20964         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
20965         * combine.c (try_combine): Likewise.
20966         * ira.c (setup_prohibited_mode_move_regs): Likewise.
20967
20968 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
20969
20970         * rtl.def (REG): Remove middle field.
20971         * rtl.h (rtx_def): Add orignal_regno to u2.
20972         (ORIGINAL_REGNO): Use it instead of field 1.
20973         (REG_ATTRS): Lower field index accordingly.
20974         * gengtype.c (adjust_field_rtx_def): Remove handling of
20975         ORIGINAL_REGNO.  Move REG_ATTRS index down.
20976         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
20977         code that prints the REGNO.
20978
20979 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
20980
20981         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
20982         GENERATOR_FILE.
20983
20984 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
20985
20986         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
20987
20988 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
20989
20990         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
20991         (alloc_iv): Lower base expressions containing ADDR_EXPR.
20992
20993 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
20994
20995         * config/aarch64/aarch64-protos.h
20996         (aarch64_hard_regno_caller_save_mode): New prototype.
20997         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
20998         New function.
20999         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
21000
21001 2014-05-13  Christian Bruel  <christian.bruel@st.com>
21002
21003         * target.def (mode_switching): New hook vector.
21004         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
21005         (mode_exit, modepriority_to_mode): Likewise.
21006         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
21007         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21008         * target.h: Include tm.h and hard-reg-set.h.
21009         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
21010         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
21011         * doc/tm.texi Regenerate.
21012         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
21013         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21014         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
21015         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
21016         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
21017         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21018         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
21019         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
21020         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
21021         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
21022         (ix86_emit_mode_set): Hookify.
21023         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
21024         Delete.
21025         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21026         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
21027         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
21028         (epiphany_mode_priority_to_mode): Remove declaration.
21029         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
21030         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
21031         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
21032         Likewise.
21033         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
21034         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
21035         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
21036
21037 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
21038
21039         PR target/61060
21040         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
21041         is const0_rtx, return immediately.  Don't test count == 0 when
21042         it is always true.
21043
21044 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
21045
21046         * Makefile.in: add shrink-wrap.o.
21047         * config/i386/i386.c: include "shrink-wrap.h"
21048         * function.c: Likewise.
21049         (requires_stack_frame_p, next_block_for_reg,
21050         move_insn_for_shrink_wrap, prepare_shrink_wrap,
21051         dup_block_and_redirect): Move to shrink-wrap.c
21052         (thread_prologue_and_epilogue_insns): Extract three code segments
21053         as functions in shrink-wrap.c
21054         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
21055         shrink-wrap.h
21056         * shrink-wrap.c: New file.
21057         * shrink-wrap.h: New file.
21058
21059 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
21060
21061         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
21062         reference to Solaris.
21063
21064 2014-05-12  Mike Stump  <mikestump@comcast.net>
21065
21066         PR other/31778
21067         * genattrtab.c (filename): Add.
21068         (convert_set_attr_alternative): Improve error message.
21069         (check_defs): Restore read_md_filename for error messages.
21070         (gen_insn): Save filename.
21071
21072 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
21073
21074         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
21075         -fno-local-ivars and -fivar-visibility.
21076         * c-family/c.opt: Make -Wshadow also implicitly enable
21077         -Wshadow-ivar.
21078
21079 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
21080
21081         * doc/tm.texi: Remove reference to deleted macro.
21082         * doc/tm.texi.in: Likewise.
21083
21084 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
21085
21086         PR target/60991
21087         * config/avr/avr.c (avr_out_store_psi): Use correct constant
21088         to restore Y.
21089
21090 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
21091
21092         PR libgcc/61152
21093         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
21094         * config/arm/aout.h (License): Same.
21095         * config/arm/bpabi.h (License): Same.
21096         * config/arm/elf.h (License): Same.
21097         * config/arm/linux-elf.h (License): Same.
21098         * config/arm/linux-gas.h (License): Same.
21099         * config/arm/netbsd-elf.h (License): Same.
21100         * config/arm/uclinux-eabi.h (License): Same.
21101         * config/arm/uclinux-elf.h (License): Same.
21102         * config/arm/vxworks.h (License): Same.
21103
21104 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
21105
21106         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
21107         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
21108         number of operands to 3.
21109         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
21110         * tree-nested.c (convert_nonlocal_omp_clauses,
21111         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
21112         * gimplify.c (gimplify_scan_omp_clauses): Handle
21113         OMP_CLAUSE_LINEAR_STMT.
21114         * omp-low.c (lower_rec_input_clauses): Fix typo.
21115         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
21116         cast between Fortran boolean_type_node and C _Bool if
21117         needed.
21118
21119 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
21120
21121         PR tree-optimization/61136
21122         * wide-int.h (multiple_of_p): Define a version that doesn't return
21123         the quotient.
21124         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
21125         integer_zerop/const_binop pair.
21126         (multiple_of_p): Likewise, converting both operands to widest_int
21127         precision.
21128
21129 2014-05-09  Teresa Johnson  <tejohnson@google.com>
21130
21131         * cgraphunit.c (analyze_functions): Use correct dump file.
21132
21133 2014-05-09  Florian Weimer  <fweimer@redhat.com>
21134
21135         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
21136         expand_used_vars.
21137         (stack_protect_return_slot_p): New function.
21138         (expand_used_vars): Call stack_protect_decl_p and
21139         stack_protect_return_slot_p for -fstack-protector-strong.
21140
21141 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
21142         Andrew Haley <aph@redhat.com>
21143         Richard Sandiford <rdsandiford@googlemail.com>
21144
21145         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
21146         pages.
21147
21148 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
21149
21150         PR middle-end/61111
21151         * fold-const.c (fold_binary_loc): Changed width of mask.
21152
21153 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
21154
21155         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
21156         unsigned int initializers for regno_in, regno_out.
21157
21158 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
21159
21160         PR target/61055
21161         * config/avr/avr.md (cc): Add new attribute set_vzn.
21162         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
21163         Set cc insn attribute to set_vzn instead of set_zn for alternatives
21164         with INC, DEC or NEG.
21165         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
21166         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
21167         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
21168
21169 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21170
21171         Revert:
21172         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21173
21174         * wide-int.cc (UTItype): Define.
21175         (UDWtype): Define for appropriate W_TYPE_SIZE.
21176
21177 2014-05-09  Richard Biener  <rguenther@suse.de>
21178
21179         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
21180         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
21181         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
21182         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
21183         ssa_propagate): Adjust.
21184
21185 2014-05-08  Jeff Law  <law@redhat.com>
21186
21187         PR tree-optimization/61009
21188         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
21189         tri-state rather than a boolean.  When a block is too big to
21190         thread through, inform caller via negative return value.
21191         (thread_across_edge): If a block was too big for normal threading,
21192         then it's too big for a joiner too, so remove temporary equivalences
21193         and return immediately.
21194
21195 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21196             Matthias Klose  <doko@ubuntu.com>
21197
21198         PR driver/61106
21199         * optc-gen.awk: Fix option handling for -Wunused-parameter.
21200
21201 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
21202
21203         PR target/59952
21204         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
21205
21206 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
21207
21208         PR target/61092
21209         * config/alpha/alpha.c: Include gimple-iterator.h.
21210         (alpha_gimple_fold_builtin): New function.  Move
21211         ALPHA_BUILTIN_UMULH folding from ...
21212         (alpha_fold_builtin): ... here.
21213         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
21214
21215 2014-05-08  Wei Mi  <wmi@google.com>
21216
21217         PR target/58066
21218         * config/i386/i386.c (ix86_compute_frame_layout): Update
21219         preferred_stack_boundary for call, expanded from tls descriptor.
21220         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
21221         to depend on SP register.
21222         (*tls_local_dynamic_base_32_gnu): Ditto.
21223         (*tls_local_dynamic_32_once): Ditto.
21224         (tls_global_dynamic_64_<mode>): Set
21225         ix86_tls_descriptor_calls_expanded_in_cfun.
21226         (tls_local_dynamic_base_64_<mode>): Ditto.
21227         (tls_global_dynamic_32): Set
21228         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
21229         to depend on SP register.
21230         (tls_local_dynamic_base_32): Ditto.
21231
21232 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21233
21234         * config/arm/arm_neon.h: Update comment.
21235         * config/arm/neon-docgen.ml: Delete.
21236         * config/arm/neon-gen.ml: Delete.
21237         * doc/arm-neon-intrinsics.texi: Update comment.
21238
21239 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21240
21241         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
21242         and v4sf versions.
21243         (vand, vorr, veor, vorn, vbic): Remove.
21244         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
21245         iterator.
21246         (neon_vsub_unspec): Likewise.
21247         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
21248
21249 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21250
21251         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
21252         (vadd_s16): Likewise.
21253         (vadd_s32): Likewise.
21254         (vadd_f32): Likewise.
21255         (vadd_u8): Likewise.
21256         (vadd_u16): Likewise.
21257         (vadd_u32): Likewise.
21258         (vadd_s64): Likewise.
21259         (vadd_u64): Likewise.
21260         (vaddq_s8): Likewise.
21261         (vaddq_s16): Likewise.
21262         (vaddq_s32): Likewise.
21263         (vaddq_s64): Likewise.
21264         (vaddq_f32): Likewise.
21265         (vaddq_u8): Likewise.
21266         (vaddq_u16): Likewise.
21267         (vaddq_u32): Likewise.
21268         (vaddq_u64): Likewise.
21269         (vmul_s8): Likewise.
21270         (vmul_s16): Likewise.
21271         (vmul_s32): Likewise.
21272         (vmul_f32): Likewise.
21273         (vmul_u8): Likewise.
21274         (vmul_u16): Likewise.
21275         (vmul_u32): Likewise.
21276         (vmul_p8): Likewise.
21277         (vmulq_s8): Likewise.
21278         (vmulq_s16): Likewise.
21279         (vmulq_s32): Likewise.
21280         (vmulq_f32): Likewise.
21281         (vmulq_u8): Likewise.
21282         (vmulq_u16): Likewise.
21283         (vmulq_u32): Likewise.
21284         (vsub_s8): Likewise.
21285         (vsub_s16): Likewise.
21286         (vsub_s32): Likewise.
21287         (vsub_f32): Likewise.
21288         (vsub_u8): Likewise.
21289         (vsub_u16): Likewise.
21290         (vsub_u32): Likewise.
21291         (vsub_s64): Likewise.
21292         (vsub_u64): Likewise.
21293         (vsubq_s8): Likewise.
21294         (vsubq_s16): Likewise.
21295         (vsubq_s32): Likewise.
21296         (vsubq_s64): Likewise.
21297         (vsubq_f32): Likewise.
21298         (vsubq_u8): Likewise.
21299         (vsubq_u16): Likewise.
21300         (vsubq_u32): Likewise.
21301         (vsubq_u64): Likewise.
21302         (vand_s8): Likewise.
21303         (vand_s16): Likewise.
21304         (vand_s32): Likewise.
21305         (vand_u8): Likewise.
21306         (vand_u16): Likewise.
21307         (vand_u32): Likewise.
21308         (vand_s64): Likewise.
21309         (vand_u64): Likewise.
21310         (vandq_s8): Likewise.
21311         (vandq_s16): Likewise.
21312         (vandq_s32): Likewise.
21313         (vandq_s64): Likewise.
21314         (vandq_u8): Likewise.
21315         (vandq_u16): Likewise.
21316         (vandq_u32): Likewise.
21317         (vandq_u64): Likewise.
21318         (vorr_s8): Likewise.
21319         (vorr_s16): Likewise.
21320         (vorr_s32): Likewise.
21321         (vorr_u8): Likewise.
21322         (vorr_u16): Likewise.
21323         (vorr_u32): Likewise.
21324         (vorr_s64): Likewise.
21325         (vorr_u64): Likewise.
21326         (vorrq_s8): Likewise.
21327         (vorrq_s16): Likewise.
21328         (vorrq_s32): Likewise.
21329         (vorrq_s64): Likewise.
21330         (vorrq_u8): Likewise.
21331         (vorrq_u16): Likewise.
21332         (vorrq_u32): Likewise.
21333         (vorrq_u64): Likewise.
21334         (veor_s8): Likewise.
21335         (veor_s16): Likewise.
21336         (veor_s32): Likewise.
21337         (veor_u8): Likewise.
21338         (veor_u16): Likewise.
21339         (veor_u32): Likewise.
21340         (veor_s64): Likewise.
21341         (veor_u64): Likewise.
21342         (veorq_s8): Likewise.
21343         (veorq_s16): Likewise.
21344         (veorq_s32): Likewise.
21345         (veorq_s64): Likewise.
21346         (veorq_u8): Likewise.
21347         (veorq_u16): Likewise.
21348         (veorq_u32): Likewise.
21349         (veorq_u64): Likewise.
21350         (vbic_s8): Likewise.
21351         (vbic_s16): Likewise.
21352         (vbic_s32): Likewise.
21353         (vbic_u8): Likewise.
21354         (vbic_u16): Likewise.
21355         (vbic_u32): Likewise.
21356         (vbic_s64): Likewise.
21357         (vbic_u64): Likewise.
21358         (vbicq_s8): Likewise.
21359         (vbicq_s16): Likewise.
21360         (vbicq_s32): Likewise.
21361         (vbicq_s64): Likewise.
21362         (vbicq_u8): Likewise.
21363         (vbicq_u16): Likewise.
21364         (vbicq_u32): Likewise.
21365         (vbicq_u64): Likewise.
21366         (vorn_s8): Likewise.
21367         (vorn_s16): Likewise.
21368         (vorn_s32): Likewise.
21369         (vorn_u8): Likewise.
21370         (vorn_u16): Likewise.
21371         (vorn_u32): Likewise.
21372         (vorn_s64): Likewise.
21373         (vorn_u64): Likewise.
21374         (vornq_s8): Likewise.
21375         (vornq_s16): Likewise.
21376         (vornq_s32): Likewise.
21377         (vornq_s64): Likewise.
21378         (vornq_u8): Likewise.
21379         (vornq_u16): Likewise.
21380         (vornq_u32): Likewise.
21381         (vornq_u64): Likewise.
21382
21383 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21384
21385         * wide-int.cc (UTItype): Define.
21386         (UDWtype): Define for appropriate W_TYPE_SIZE.
21387
21388 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
21389
21390         PR tree-optimization/59100
21391         * tree-ssa-phiopt.c: Include tree-inline.h.
21392         (neutral_element_p, absorbing_element_p): New functions.
21393         (value_replacement): Handle conditional binary operations with a
21394         neutral or absorbing element.
21395
21396 2014-05-08  Richard Biener  <rguenther@suse.de>
21397
21398         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
21399         folding the expression.
21400         (valueize_expr): Remove.
21401         (visit_reference_op_load): Do not valueize the result of
21402         vn_get_expr_for.
21403         (simplify_binary_expression): Likewise.
21404         (simplify_unary_expression): Likewise.
21405
21406 2014-05-08  Richard Biener  <rguenther@suse.de>
21407
21408         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
21409         looking at TYPE_ARG_TYPES.
21410
21411 2014-05-08  Richard Biener  <rguenther@suse.de>
21412
21413         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
21414         pointer propagation special-case.
21415
21416 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
21417
21418         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
21419         core part of address expressions.
21420
21421 2014-05-08  Alan Modra  <amodra@gmail.com>
21422
21423         PR target/60737
21424         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
21425         loads and stores when -mno-strict-align at any alignment.
21426         (expand_block_clear): Similarly.  Also correct calculation of
21427         instruction count.
21428
21429 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21430
21431         PR middle-end/39246
21432         * tree-complex.c (expand_complex_move): Keep line info when expanding
21433         complex move.
21434         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
21435         of complex expression. Use new argument to display correct location
21436         for values coming from phi statement.
21437         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
21438         (warn_uninitialized_phi): Pass location of phi argument to
21439         warn_uninit.
21440         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
21441         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
21442
21443 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
21444
21445         * config/rs6000/predicates.md (indexed_address_mem): New.
21446         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
21447         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
21448         fpstore_ux, fpstore_u.
21449         (sign_extend, indexed, update): New.
21450         (cell_micro): Adjust.
21451         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
21452         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
21453         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
21454         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
21455         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
21456         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
21457         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
21458         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
21459         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
21460         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
21461         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
21462         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
21463         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
21464         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
21465         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
21466
21467         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
21468         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
21469         *vsx_extract_<mode>_store): Adjust.
21470         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
21471         is_cracked_insn, insn_must_be_first_in_group,
21472         insn_must_be_last_in_group): Adjust.
21473
21474         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
21475         Adjust.
21476         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
21477         ppc440-fpstore): Adjust.
21478         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
21479         ppc476-fpstore): Adjust.
21480         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
21481         ppc601-fpstore): Adjust.
21482         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
21483         Adjust.
21484         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
21485         Adjust.
21486         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
21487         ppc7450-fpstore): Adjust.
21488         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
21489         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
21490         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
21491         Adjust.
21492         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
21493         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
21494         cell-fpstore, cell-fpstore-update): Adjust.
21495         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
21496         ppce300c3_store, ppce300c3_fpstore): Adjust.
21497         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
21498         e500mc_fpstore): Adjust.
21499         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
21500         e500mc64_store, e500mc64_fpstore): Adjust.
21501         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
21502         e5500_fpstore): Adjust.
21503         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
21504         e6500_fpstore): Adjust.
21505         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
21506         Adjust.
21507         * config/rs6000/power4.md (power4-load, power4-load-ext,
21508         power4-load-ext-update, power4-load-ext-update-indexed,
21509         power4-load-update-indexed, power4-load-update, power4-fpload,
21510         power4-fpload-update, power4-store, power4-store-update,
21511         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
21512         Adjust.
21513         * config/rs6000/power5.md (power5-load, power5-load-ext,
21514         power5-load-ext-update, power5-load-ext-update-indexed,
21515         power5-load-update-indexed, power5-load-update, power5-fpload,
21516         power5-fpload-update, power5-store, power5-store-update,
21517         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
21518         Adjust.
21519         * config/rs6000/power6.md (power6-load, power6-load-ext,
21520         power6-load-update, power6-load-update-indexed,
21521         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
21522         power6-fpload-update, power6-store, power6-store-update,
21523         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
21524         Adjust.
21525         * config/rs6000/power7.md (power7-load, power7-load-ext,
21526         power7-load-update, power7-load-update-indexed,
21527         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
21528         power7-fpload-update, power7-store, power7-store-update,
21529         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
21530         Adjust.
21531         * config/rs6000/power8.md (power8-load, power8-load-update,
21532         power8-load-ext, power8-load-ext-update, power8-fpload,
21533         power8-fpload-update, power8-store, power8-store-update-indexed,
21534         power8-fpstore, power8-fpstore-update): Adjust.
21535         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
21536         Adjust.
21537         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
21538         titan_lsu_store, titan_lsu_fpstore): Adjust.
21539         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
21540
21541 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
21542
21543         PR target/60884
21544         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
21545         unrolled byte insns.  Emit address increments after move insns.
21546
21547 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
21548
21549         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
21550         const_gimple, rather than a gimple.
21551         (gimple_call_builtin_p): Likewise, for the three variants.
21552
21553         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
21554         (gimple_call_builtin_p): Likewise, for the three variants.
21555
21556 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
21557
21558         PR tree-optimization/61095
21559         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
21560
21561 2014-05-07  Richard Biener  <rguenther@suse.de>
21562
21563         PR tree-optimization/61034
21564         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
21565         (maybe_skip_until): Use translate to take into account
21566         lattices when trying to do disambiguations.
21567         (get_continuation_for_phi_1): Likewise.
21568         (get_continuation_for_phi): Adjust for added translate arguments.
21569         (walk_non_aliased_vuses): Likewise.
21570         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
21571         (walk_non_aliased_vuses): Likewise.
21572         (call_may_clobber_ref_p_1): Declare.
21573         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
21574         calls.  Stop early if we are only supposed to disambiguate.
21575         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
21576
21577 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
21578
21579         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
21580         Emit an error when the function has arguments.
21581
21582 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
21583
21584         * cfgloop.h (unswitch_loops): Remove.
21585         * doc/passes.texi: Remove references to loop-unswitch.c
21586         * timevar.def (TV_LOOP_UNSWITCH): Remove.
21587
21588 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
21589
21590         * tree-vect-data-refs.c (vect_grouped_load_supported): New
21591         check for loads group of length 3.
21592         (vect_permute_load_chain): New permutations for loads group of
21593         length 3.
21594         * tree-vect-stmts.c (vect_model_load_cost): Change cost
21595         of vec_perm_shuffle for the new permutations.
21596
21597 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
21598
21599         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
21600         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
21601         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
21602         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
21603         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
21604         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
21605         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
21606         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
21607
21608 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
21609
21610         * loop-unswitch.c: Delete.
21611
21612 2014-05-07  Richard Biener  <rguenther@suse.de>
21613
21614         * config.gcc: Always set need_64bit_hwint to yes.
21615
21616 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
21617
21618         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
21619         of using optimize_size.
21620
21621 2014-05-06  Mike Stump  <mikestump@comcast.net>
21622
21623         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
21624
21625 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
21626
21627         * config/i386/sse.md (*mov<mode>_internal)
21628         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
21629         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
21630         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
21631         (*<code><mode>3, *andnot<mode>3<mask_name>)
21632         (<mask_codefor><code><mode>3<mask_name>): Only consider
21633         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
21634
21635 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
21636
21637         Revert:
21638         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
21639
21640         * lra-constraints.c (valid_address_p): Move earlier in file.
21641         Add a constraint argument to the address_info version.
21642         (satisfies_memory_constraint_p): New function.
21643         (satisfies_address_constraint_p): Likewise.
21644         (process_alt_operands, curr_insn_transform): Use them.
21645         (process_address): Pass the constraint to valid_address_p when
21646         checking address operands.
21647
21648 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
21649
21650         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
21651         to their respective blocks.  Fix inadvertent use of "node".
21652
21653 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
21654
21655         * emit-rtl.c (init_derived_machine_modes): New functionm, split
21656         out from...
21657         (init_emit_once): ...here.
21658         * rtl.h (init_derived_machine_modes): Declare.
21659         * toplev.c (do_compile): Call it even if no_backend.
21660
21661 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
21662             Mike Stump  <mikestump@comcast.net>
21663             Richard Sandiford  <rdsandiford@googlemail.com>
21664             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21665
21666         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
21667         (rtx_equal_for_memref_p): Update comment.
21668         (adjust_offset_for_component_ref): Use wide-int interfaces.
21669         * builtins.c (get_object_alignment_2): Likewise.
21670         (c_readstr): Likewise.
21671         (target_char_cast): Add comment.
21672         (determine_block_size): Use wide-int interfaces.
21673         (expand_builtin_signbit): Likewise.
21674         (fold_builtin_int_roundingfn): Likewise.
21675         (fold_builtin_bitop): Likewise.
21676         (fold_builtin_bswap): Likewise.
21677         (fold_builtin_logarithm): Use signop.
21678         (fold_builtin_pow): Likewise.
21679         (fold_builtin_memory_op): Use wide-int interfaces.
21680         (fold_builtin_object_size): Likewise.
21681         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
21682         nb_iterations_estimate.
21683         (record_niter_bound): Use wide-int interfaces.
21684         (get_estimated_loop_iterations_int): Likewise.
21685         (get_estimated_loop_iterations): Likewise.
21686         (get_max_loop_iterations): Likewise.
21687         * cfgloop.h: Include wide-int.h.
21688         (struct nb_iter_bound): Change bound to widest_int.
21689         (struct loop): Change nb_iterations_upper_bound and
21690         nb_iterations_estimate to widest_int.
21691         (record_niter_bound): Switch to use widest_int.
21692         (get_estimated_loop_iterations): Likewise.
21693         (get_max_loop_iterations): Likewise.
21694         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
21695         update for wide-int.
21696         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
21697         * combine.c (try_combine): Likewise.
21698         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
21699         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
21700         interfaces.
21701         (aarch64_float_const_representable_p): Likewise.
21702         * config/arc/arc.c: Include wide-int.h.
21703         (arc_can_use_doloop_p): Use wide-int interfaces.
21704         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
21705         (vfp3_const_double_index): Likewise.
21706         * config/avr/avr.c (avr_out_round): Likewise.
21707         (avr_fold_builtin): Likewise.
21708         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
21709         (bfin_can_use_doloop_p): Likewise.
21710         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
21711         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
21712         * config/i386/i386.c: Include wide-int.h.
21713         (ix86_data_alignment): Use wide-int interfaces.
21714         (ix86_local_alignment): Likewise.
21715         (ix86_emit_swsqrtsf): Update real_from_integer.
21716         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
21717         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
21718         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
21719         (zero_constant): Likewise.
21720         (input_operand): Likewise.
21721         (splat_input_operand): Likewise.
21722         (non_logical_cint_operand): Change const_double to const_wide_int.
21723         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
21724         (easy_altivec_constant): Remove comment.
21725         (paired_expand_vector_init): Use CONSTANT_P.
21726         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
21727         (rs6000_emit_move): Update checks.
21728         (rs6000_aggregate_candidate): Use wide-int interfaces.
21729         (rs6000_expand_ternop_builtin): Likewise.
21730         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
21731         (rs6000_assemble_integer): Likewise.
21732         (rs6000_hash_constant): Likewise.
21733         (output_toc): Likewise.
21734         (rs6000_rtx_costs): Likewise.
21735         (rs6000_emit_swrsqrt); Update call to real_from_integer.
21736         * config/rs6000/rs6000-c.c: Include wide-int.h.
21737         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
21738         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
21739         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
21740         Handle CONST_WIDE_INT.
21741         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
21742         Use tree_fits_uhwi_p.
21743         * config/sparc/sparc.c: Include wide-int.h.
21744         (sparc_fold_builtin): Use wide-int interfaces.
21745         * config/vax/vax.c: Include wide-int.h.
21746         (vax_float_literal): Use real_from_integer.
21747         * coretypes.h (struct hwivec_def): New.
21748         (hwivec): New.
21749         (const_hwivec): New.
21750         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
21751         (equiv_constant): Handle CONST_WIDE_INT.
21752         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
21753         (cselib_hash_rtx): Handle CONST_WIDE_INT.
21754         * dbxout.c (stabstr_U): Use wide-int interfaces.
21755         (dbxout_type): Update to use cst_fits_shwi_p.
21756         * defaults.h (LOG2_BITS_PER_UNIT): Define.
21757         (TARGET_SUPPORTS_WIDE_INT): Add default.
21758         * dfp.c: Include wide-int.h.
21759         (decimal_real_to_integer2): Use wide-int interfaces and rename to
21760         decimal_real_to_integer.
21761         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
21762         decimal_real_to_integer.
21763         * doc/generic.texi (Constant expressions): Update for wide_int.
21764         * doc/rtl.texi (const_double): Likewise.
21765         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
21766         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
21767         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
21768         (REAL_VALUE_FROM_INT): Remove.
21769         (TARGET_SUPPORTS_WIDE_INT): New.
21770         * doc/tm.texi: Regenerate.
21771         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
21772         * double-int.h: Include wide-int.h.
21773         (struct wi::int_traits): New.
21774         * dwarf2out.c (get_full_len): New.
21775         (dw_val_equal_p): Add case dw_val_class_wide_int.
21776         (size_of_loc_descr): Likewise.
21777         (output_loc_operands): Likewise.
21778         (insert_double): Remove.
21779         (insert_wide_int): New.
21780         (add_AT_wide): New.
21781         (print_die): Add case dw_val_class_wide_int.
21782         (attr_checksum): Likewise.
21783         (attr_checksum_ordered): Likewise.
21784         (same_dw_val_p): Likewise.
21785         (size_of_die): Likewise.
21786         (value_format): Likewise.
21787         (output_die): Likewise.
21788         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
21789         Use wide-int.
21790         (clz_loc_descriptor): Use wide-int interfaces.
21791         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
21792         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
21793         (round_up_to_align): Use wide-int interfaces.
21794         (field_byte_offset): Likewise.
21795         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
21796         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
21797         CONST_DOUBLE handling.  Use wide-int interfaces.
21798         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
21799         (gen_enumeration_type_die): Use add_AT_wide.
21800         (hash_loc_operands): Add case dw_val_class_wide_int.
21801         (compare_loc_operands): Likewise.
21802         * dwarf2out.h: Include wide-int.h.
21803         (wide_int_ptr): New.
21804         (enum dw_val_class): Add dw_val_class_wide_int.
21805         (struct dw_val_struct): Add val_wide.
21806         * emit-rtl.c (const_wide_int_htab): New.
21807         (const_wide_int_htab_hash): New.
21808         (const_wide_int_htab_eq): New.
21809         (lookup_const_wide_int): New.
21810         (const_double_htab_hash): Use wide-int interfaces.
21811         (const_double_htab_eq): Likewise.
21812         (rtx_to_double_int): Conditionally compile for wide-int.
21813         (immed_double_int_const): Rename to immed_wide_int_const and
21814         update for wide-int.
21815         (immed_double_const): Conditionally compile for wide-int.
21816         (init_emit_once): Use wide-int interfaces.
21817         * explow.c (plus_constant): Likewise.
21818         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
21819         (lshift_value): Use wide-int interfaces.
21820         (expand_mult): Likewise.
21821         (choose_multiplier): Likewise.
21822         (expand_smod_pow2): Likewise.
21823         (make_tree): Likewise.
21824         * expr.c (convert_modes): Consolidate handling of constants.
21825         Use wide-int interfaces.
21826         (emit_group_load_1): Add note.
21827         (store_expr): Update comment.
21828         (get_inner_reference): Use wide-int interfaces.
21829         (expand_constructor): Update comment.
21830         (expand_expr_real_2): Use wide-int interfaces.
21831         (expand_expr_real_1): Likewise.
21832         (reduce_to_bit_field_precision): Likewise.
21833         (const_vector_from_tree): Likewise.
21834         * final.c: Include wide-int-print.h.
21835         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
21836         * fixed-value.c: Include wide-int.h.
21837         (fixed_from_string): Use wide-int interfaces.
21838         (fixed_to_decimal): Likewise.
21839         (fixed_convert_from_real): Likewise.
21840         (real_convert_from_fixed): Likewise.
21841         * fold-const.h (mem_ref_offset): Return an offset_int.
21842         (div_if_zero_remainder): Remove code parameter.
21843         * fold-const.c (div_if_zero_remainder): Remove code parameter.
21844         Use wide-int interfaces.
21845         (may_negate_without_overflow_p): Use wide-int interfaces.
21846         (negate_expr_p): Likewise.
21847         (fold_negate_expr): Likewise.
21848         (int_const_binop_1): Likewise.
21849         (const_binop): Likewise.
21850         (fold_convert_const_int_from_int): Likewise.
21851         (fold_convert_const_int_from_real): Likewise.
21852         (fold_convert_const_int_from_fixed): Likewise.
21853         (fold_convert_const_fixed_from_int): Likewise.
21854         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
21855         (sign_bit_p): Use wide-int interfaces.
21856         (make_range_step): Likewise.
21857         (build_range_check): Likewise.  Pass an integer of the correct type
21858         instead of using integer_one_node.
21859         (range_predecessor): Pass an integer of the correct type instead
21860         of using integer_one_node.
21861         (range_successor): Likewise.
21862         (merge_ranges): Likewise.
21863         (unextend): Use wide-int interfaces.
21864         (extract_muldiv_1): Likewise.
21865         (fold_div_compare): Likewise.
21866         (fold_single_bit_test): Likewise.
21867         (fold_sign_changed_comparison): Likewise.
21868         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
21869         (fold_plusminus_mult_expr): Use wide-int interfaces.
21870         (native_encode_int): Likewise.
21871         (native_interpret_int): Likewise.
21872         (fold_unary_loc): Likewise.
21873         (pointer_may_wrap_p): Likewise.
21874         (size_low_cst): Likewise.
21875         (mask_with_tz): Likewise.
21876         (fold_binary_loc): Likewise.
21877         (fold_ternary_loc): Likewise.
21878         (multiple_of_p): Likewise.
21879         (tree_call_nonnegative_warnv_p): Update calls to
21880         tree_int_cst_min_precision and real_from_integer.
21881         (fold_negate_const): Use wide-int interfaces.
21882         (fold_abs_const): Likewise.
21883         (fold_relational_const): Use tree_int_cst_lt.
21884         (round_up_loc): Use wide-int interfaces.
21885         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
21886         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
21887         * gengtype.c: Remove include of double-int.h.
21888         (do_typedef): Use wide-int interfaces.
21889         (open_base_files): Add wide-int.h.
21890         (main): Add offset_int and widest_int typedefs.
21891         * gengtype-lex.l: Handle "^".
21892         (CXX_KEYWORD): Add "static".
21893         * gengtype-parse.c (require3): New.
21894         (require_template_declaration): Handle constant template arguments
21895         and nested templates.
21896         * gengtype-state.c: Don't include "double-int.h".
21897         * genpreds.c (write_one_predicate_function): Update comment.
21898         (write_tm_constrs_h): Add check for hval and lval use in
21899         CONST_WIDE_INT.
21900         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
21901         (add_to_sequence): Likewise.
21902         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
21903         and const_double_operand.
21904         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
21905         interfaces.
21906         * gimple-fold.c (get_base_constructor): Likewise.
21907         (fold_array_ctor_reference): Likewise.
21908         (fold_nonarray_ctor_reference): Likewise.
21909         (fold_const_aggregate_ref_1): Likewise.
21910         (gimple_val_nonnegative_real_p): Likewise.
21911         (gimple_fold_indirect_ref): Likewise.
21912         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
21913         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
21914         (struct slsr_cand_d): Change index to be widest_int.
21915         (struct incr_info_d): Change incr to be widest_int.
21916         (alloc_cand_and_find_basis): Use wide-int interfaces.
21917         (slsr_process_phi): Likewise.
21918         (backtrace_base_for_ref): Likewise.  Return a widest_int.
21919         (restructure_reference): Take a widest_int instead of a double_int.
21920         (slsr_process_ref): Use wide-int interfaces.
21921         (create_mul_ssa_cand): Likewise.
21922         (create_mul_imm_cand): Likewise.
21923         (create_add_ssa_cand): Likewise.
21924         (create_add_imm_cand): Take a widest_int instead of a double_int.
21925         (slsr_process_add): Use wide-int interfaces.
21926         (slsr_process_cast): Likewise.
21927         (slsr_process_copy): Likewise.
21928         (dump_candidate): Likewise.
21929         (dump_incr_vec): Likewise.
21930         (replace_ref): Likewise.
21931         (cand_increment): Likewise.  Return a widest_int.
21932         (cand_abs_increment): Likewise.
21933         (replace_mult_candidate): Take a widest_int instead of a double_int.
21934         (replace_unconditional_candidate): Use wide-int interfaces.
21935         (incr_vec_index): Take a widest_int instead of a double_int.
21936         (create_add_on_incoming_edge): Likewise.
21937         (create_phi_basis): Use wide-int interfaces.
21938         (replace_conditional_candidate): Likewise.
21939         (record_increment): Take a widest_int instead of a double_int.
21940         (record_phi_increments): Use wide-int interfaces.
21941         (phi_incr_cost): Take a widest_int instead of a double_int.
21942         (lowest_cost_path): Likewise.
21943         (total_savings): Likewise.
21944         (analyze_increments): Use wide-int interfaces.
21945         (ncd_with_phi): Take a widest_int instead of a double_int.
21946         (ncd_of_cand_and_phis): Likewise.
21947         (nearest_common_dominator_for_cands): Likewise.
21948         (insert_initializers): Use wide-int interfaces.
21949         (all_phi_incrs_profitable): Likewise.
21950         (replace_one_candidate): Likewise.
21951         (replace_profitable_candidates): Likewise.
21952         * godump.c: Include wide-int-print.h.
21953         (go_output_typedef): Use wide-int interfaces.
21954         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
21955         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
21956         (build_loop_iteration_domains): Likewise.
21957         * hooks.h: Include wide-int.h rather than double-int.h.
21958         (hook_bool_dint_dint_uint_bool_true): Delete.
21959         (hook_bool_wint_wint_uint_bool_true): Declare.
21960         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
21961         (hook_bool_wint_wint_uint_bool_true): New.
21962         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
21963         interfaces.
21964         (ubsan_expand_si_overflow_mul_check): Likewise.
21965         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
21966         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
21967         (get_ancestor_addr_info): Likewise.
21968         (ipa_modify_call_arguments): Likewise.
21969         * loop-doloop.c (doloop_modify): Likewise.
21970         (doloop_optimize): Likewise.
21971         * loop-iv.c (iv_number_of_iterations): Likewise.
21972         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
21973         (unroll_loop_constant_iterations): Likewise.
21974         (decide_unroll_runtime_iterations): Likewise.
21975         (unroll_loop_runtime_iterations): Likewise.
21976         (decide_peel_simple): Likewise.
21977         (decide_unroll_stupid): Likewise.
21978         * lto-streamer-in.c (streamer_read_wi): Add.
21979         (input_cfg): Use wide-int interfaces.
21980         (lto_input_tree_1): Likewise.
21981         * lto-streamer-out.c (streamer_write_wi): Add.
21982         (hash_tree): Use wide-int interfaces.
21983         (output_cfg): Likewise.
21984         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
21985         (GTFILES): Add wide-int.h and signop.h.
21986         (TAGS): Look for .cc files too.
21987         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
21988         * optabs.c (expand_subword_shift): Likewise.
21989         (expand_doubleword_shift): Likewise.
21990         (expand_absneg_bit): Likewise.
21991         (expand_copysign_absneg): Likewise.
21992         (expand_copysign_bit): Likewise.
21993         * postreload.c (reload_cse_simplify_set): Likewise.
21994         * predict.c (predict_iv_comparison): Likewise.
21995         * pretty-print.h: Include wide-int-print.h.
21996         (pp_wide_int) New.
21997         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
21998         * print-tree.c: Include wide-int-print.h.
21999         (print_node_brief): Use wide-int interfaces.
22000         (print_node): Likewise.
22001         * read-rtl.c (validate_const_wide_int): New.
22002         (read_rtx_code): Add CONST_WIDE_INT case.
22003         * real.c: Include wide-int.h.
22004         (real_to_integer2): Delete.
22005         (real_to_integer): New function, returning a wide_int.
22006         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
22007         (ten_to_ptwo): Update call to real_from_integer.
22008         (real_digit): Likewise.
22009         * real.h: Include signop.h, wide-int.h and insn-modes.h.
22010         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
22011         (REAL_VALUE_TO_INT): Delete.
22012         (real_to_integer): Declare a wide-int form.
22013         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
22014         * recog.c (const_int_operand): Improve comment.
22015         (const_scalar_int_operand): New.
22016         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
22017         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
22018         (split_double): Likewise.
22019         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
22020         (rtx_size): Likewise.
22021         (rtx_alloc_stat_v): New.
22022         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
22023         (cwi_output_hex): New.
22024         (iterative_hash_rtx): Handle CONST_WIDE_INT.
22025         (cwi_check_failed_bounds): New.
22026         * rtl.def (CONST_WIDE_INT): New.
22027         * rtl.h: Include <utility> and wide-int.h.
22028         (struct hwivec_def): New.
22029         (CWI_GET_NUM_ELEM): New.
22030         (CWI_PUT_NUM_ELEM): New.
22031         (struct rtx_def): Add num_elem and hwiv.
22032         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
22033         (CASE_CONST_UNIQUE): Likewise.
22034         (CASE_CONST_ANY): Likewise.
22035         (CONST_SCALAR_INT_P): Likewise.
22036         (CONST_WIDE_INT_P): New.
22037         (CWI_ELT): New.
22038         (HWIVEC_CHECK): New.
22039         (cwi_check_failed_bounds): New.
22040         (CWI_ELT): New.
22041         (HWIVEC_CHECK): New.
22042         (CONST_WIDE_INT_VEC) New.
22043         (CONST_WIDE_INT_NUNITS) New.
22044         (CONST_WIDE_INT_ELT) New.
22045         (rtx_mode_t): New type.
22046         (wi::int_traits <rtx_mode_t>): New.
22047         (wi::shwi): New.
22048         (wi::min_value): New.
22049         (wi::max_value): New.
22050         (rtx_alloc_v) New.
22051         (const_wide_int_alloc): New.
22052         (immed_wide_int_const): New.
22053         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
22054         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
22055         * signop.h: New file.
22056         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
22057         (simplify_const_unary_operation): Use wide-int interfaces.
22058         (simplify_binary_operation_1): Likewise.
22059         (simplify_const_binary_operation): Likewise.
22060         (simplify_const_relational_operation): Likewise.
22061         (simplify_immed_subreg): Likewise.
22062         * stmt.c (expand_case): Likewise.
22063         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
22064         signop rather than a bool.
22065         * stor-layout.c (layout_type): Use wide-int interfaces.
22066         (initialize_sizetypes): Update calls to
22067         set_min_and_max_values_for_integral_type.
22068         (set_min_and_max_values_for_integral_type): Take a signop rather
22069         than a bool.  Use wide-int interfaces.
22070         (fixup_signed_type): Update accordingly.  Remove
22071         HOST_BITS_PER_DOUBLE_INT limit.
22072         (fixup_unsigned_type): Likewise.
22073         * system.h (STATIC_CONSTANT_P): New.
22074         (STATIC_ASSERT): New.
22075         * target.def (can_use_doloop_p): Take widest_ints rather than
22076         double_ints.
22077         * target.h: Include wide-int.h rather than double-int.h.
22078         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
22079         than double_ints.
22080         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
22081         rather than INT_CST_LT_UNSIGNED.
22082         (can_use_doloop_if_innermost): Take widest_ints rather than
22083         double_ints.
22084         * tree-affine.c: Include wide-int-print.h.
22085         (double_int_ext_for_comb): Delete.
22086         (wide_int_ext_for_comb): New.
22087         (aff_combination_zero): Use wide-int interfaces.
22088         (aff_combination_const): Take a widest_int instead of a double_int.
22089         (aff_combination_elt): Use wide-int interfaces.
22090         (aff_combination_scale): Take a widest_int instead of a double_int.
22091         (aff_combination_add_elt): Likewise.
22092         (aff_combination_add_cst): Likewise.
22093         (aff_combination_add): Use wide-int interfaces.
22094         (aff_combination_convert): Likewise.
22095         (tree_to_aff_combination): Likewise.
22096         (add_elt_to_tree): Take a widest_int instead of a double_int.
22097         (aff_combination_to_tree): Use wide-int interfaces.
22098         (aff_combination_remove_elt): Likewise.
22099         (aff_combination_add_product): Take a widest_int instead of
22100         a double_int.
22101         (aff_combination_mult): Use wide-int interfaces.
22102         (aff_combination_expand): Likewise.
22103         (double_int_constant_multiple_p): Delete.
22104         (wide_int_constant_multiple_p): New.
22105         (aff_combination_constant_multiple_p): Take a widest_int pointer
22106         instead of a double_int pointer.
22107         (print_aff): Use wide-int interfaces.
22108         (get_inner_reference_aff): Take a widest_int pointer
22109         instead of a double_int pointer.
22110         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
22111         * tree-affine.h: Include wide-int.h.
22112         (struct aff_comb_elt): Change type of coef to widest_int.
22113         (struct affine_tree_combination): Change type of offset to widest_int.
22114         (double_int_ext_for_comb): Delete.
22115         (wide_int_ext_for_comb): New.
22116         (aff_combination_const): Use widest_int instead of double_int.
22117         (aff_combination_scale): Likewise.
22118         (aff_combination_add_elt): Likewise.
22119         (aff_combination_constant_multiple_p): Likewise.
22120         (get_inner_reference_aff): Likewise.
22121         (aff_comb_cannot_overlap_p): Likewise.
22122         (aff_combination_zero_p): Use wide-int interfaces.
22123         * tree.c: Include tree.h.
22124         (init_ttree): Use make_int_cst.
22125         (tree_code_size): Removed code for INTEGER_CST case.
22126         (tree_size): Add INTEGER_CST case.
22127         (make_node_stat): Update comment.
22128         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
22129         (build_int_cst_type): Use wide-int interfaces.
22130         (double_int_to_tree): Likewise.
22131         (double_int_fits_to_tree_p): Delete.
22132         (force_fit_type_double): Delete.
22133         (force_fit_type): New.
22134         (int_cst_hash_hash): Use wide-int interfaces.
22135         (int_cst_hash_eq): Likewise.
22136         (build_int_cst_wide): Delete.
22137         (wide_int_to_tree): New.
22138         (cache_integer_cst): Use wide-int interfaces.
22139         (build_low_bits_mask): Likewise.
22140         (cst_and_fits_in_hwi): Likewise.
22141         (real_value_from_int_cst): Likewise.
22142         (make_int_cst_stat): New.
22143         (integer_zerop): Use wide_int interfaces.
22144         (integer_onep): Likewise.
22145         (integer_all_onesp): Likewise.
22146         (integer_pow2p): Likewise.
22147         (integer_nonzerop): Likewise.
22148         (tree_log2): Likewise.
22149         (tree_floor_log2): Likewise.
22150         (tree_ctz): Likewise.
22151         (int_size_in_bytes): Likewise.
22152         (mem_ref_offset): Return an offset_int rather than a double_int.
22153         (build_type_attribute_qual_variant): Use wide_int interfaces.
22154         (type_hash_eq): Likewise
22155         (tree_int_cst_equal): Likewise.
22156         (tree_int_cst_lt): Delete.
22157         (tree_int_cst_compare): Likewise.
22158         (tree_fits_shwi_p): Use wide_int interfaces.
22159         (tree_fits_uhwi_p): Likewise.
22160         (tree_int_cst_sign_bit): Likewise.
22161         (tree_int_cst_sgn): Likewise.
22162         (tree_int_cst_min_precision): Take a signop rather than a bool.
22163         (simple_cst_equal): Use wide_int interfaces.
22164         (compare_tree_int): Likewise.
22165         (iterative_hash_expr): Likewise.
22166         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
22167         INT_CST_LT.
22168         (get_type_static_bounds): Use wide_int interfaces.
22169         (tree_int_cst_elt_check_failed): New.
22170         (build_common_tree_nodes): Reordered to set prec before filling in
22171         value.
22172         (int_cst_value): Check cst_and_fits_in_hwi.
22173         (widest_int_cst_value): Use wide_int interfaces.
22174         (upper_bound_in_type): Likewise.
22175         (lower_bound_in_type): Likewise.
22176         (num_ending_zeros): Likewise.
22177         (drop_tree_overflow): Likewise.
22178         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
22179         (gen_conditions_for_pow_cst_base): Likewise.
22180         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
22181         (group_case_labels_stmt): Use wide-int interfaces.
22182         (verify_gimple_assign_binary): Likewise.
22183         (print_loop): Likewise.
22184         * tree-chrec.c (tree_fold_binomial): Likewise.
22185         * tree-core.h (struct tree_base): Add int_length.
22186         (struct tree_int_cst): Change rep of value.
22187         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
22188         (dr_may_alias_p): Likewise.
22189         (max_stmt_executions_tree): Likewise.
22190         * tree.def (INTEGER_CST): Update comment.
22191         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
22192         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
22193         * tree-dump.c: Include wide-int.h and wide-int-print.h.
22194         (dequeue_and_dump): Use wide-int interfaces.
22195         * tree.h: Include wide-int.h.
22196         (NULL_TREE): Moved to earlier loc in file.
22197         (TREE_INT_CST_ELT_CHECK): New.
22198         (tree_int_cst_elt_check_failed): New.
22199         (TYPE_SIGN): New.
22200         (TREE_INT_CST): Delete.
22201         (TREE_INT_CST_LOW): Use wide-int interfaces.
22202         (TREE_INT_CST_HIGH): Delete.
22203         (TREE_INT_CST_NUNITS): New.
22204         (TREE_INT_CST_EXT_NUNITS): Likewise.
22205         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
22206         (TREE_INT_CST_ELT): Likewise.
22207         (INT_CST_LT): Delete.
22208         (tree_int_cst_elt_check): New (two forms).
22209         (type_code_size): Update comment.
22210         (make_int_cst_stat, make_int_cst): New.
22211         (tree_to_double_int): Delete.
22212         (double_int_fits_to_tree_p): Delete.
22213         (force_fit_type_double): Delete.
22214         (build_int_cstu): Replace with out-of-line function.
22215         (build_int_cst_wide): Delete.
22216         (tree_int_cst_lt): Define inline.
22217         (tree_int_cst_le): New.
22218         (tree_int_cst_compare): Define inline.
22219         (tree_int_cst_min_precision): Take a signop rather than a bool.
22220         (wi::int_traits <const_tree>): New.
22221         (wi::int_traits <tree>): New.
22222         (wi::extended_tree): New.
22223         (wi::int_traits <wi::extended_tree>): New.
22224         (wi::to_widest): New.
22225         (wi::to_offset): New.
22226         (wi::fits_to_tree_p): New.
22227         (wi::min_value): New.
22228         (wi::max_value): New.
22229         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
22230         (copy_tree_body_r): Likewise.
22231         * tree-object-size.c (compute_object_offset): Likewise.
22232         (addr_object_size): Likewise.
22233         * tree-predcom.c: Include wide-int-print.h.
22234         (struct dref_d): Change type of offset to widest_int.
22235         (dump_dref): Call wide-int printer.
22236         (aff_combination_dr_offset): Use wide-int interfaces.
22237         (determine_offset): Take a widest_int pointer rather than a
22238         double_int pointer.
22239         (split_data_refs_to_components): Use wide-int interfaces.
22240         (suitable_component_p): Likewise.
22241         (order_drefs): Likewise.
22242         (add_ref_to_chain): Likewise.
22243         (valid_initializer_p): Likewise.
22244         (determine_roots_comp): Likewise.
22245         * tree-pretty-print.c: Include wide-int-print.h.
22246         (dump_generic_node): Use wide-int interfaces.
22247         * tree-sra.c (sra_ipa_modify_expr): Likewise.
22248         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
22249         (move_fixed_address_to_symbol): Likewise.
22250         (move_hint_to_base): Likewise.
22251         (move_pointer_to_base): Likewise.
22252         (move_variant_to_index): Likewise.
22253         (most_expensive_mult_to_index): Likewise.
22254         (addr_to_parts): Likewise.
22255         (copy_ref_info): Likewise.
22256         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
22257         (indirect_refs_may_alias_p): Likewise.
22258         (stmt_kills_ref_p_1): Likewise.
22259         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
22260         * tree-ssa-ccp.c: Update comment at top of file.  Include
22261         wide-int-print.h.
22262         (struct prop_value_d): Change type of mask to widest_int.
22263         (extend_mask): New function.
22264         (dump_lattice_value): Use wide-int interfaces.
22265         (get_default_value): Likewise.
22266         (set_constant_value): Likewise.
22267         (set_value_varying): Likewise.
22268         (valid_lattice_transition): Likewise.
22269         (set_lattice_value): Likewise.
22270         (value_to_double_int): Delete.
22271         (value_to_wide_int): New.
22272         (get_value_from_alignment): Use wide-int interfaces.
22273         (get_value_for_expr): Likewise.
22274         (do_dbg_cnt): Likewise.
22275         (ccp_finalize): Likewise.
22276         (ccp_lattice_meet): Likewise.
22277         (bit_value_unop_1): Use widest_ints rather than double_ints.
22278         (bit_value_binop_1): Likewise.
22279         (bit_value_unop): Use wide-int interfaces.
22280         (bit_value_binop): Likewise.
22281         (bit_value_assume_aligned): Likewise.
22282         (evaluate_stmt): Likewise.
22283         (ccp_fold_stmt): Likewise.
22284         (visit_cond_stmt): Likewise.
22285         (ccp_visit_stmt): Likewise.
22286         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
22287         (constant_pointer_difference): Likewise.
22288         (associate_pointerplus): Likewise.
22289         (combine_conversions): Likewise.
22290         * tree-ssa-loop.h: Include wide-int.h.
22291         (struct tree_niter_desc): Change type of max to widest_int.
22292         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
22293         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
22294         (remove_redundant_iv_tests): Likewise.
22295         (canonicalize_loop_induction_variables): Likewise.
22296         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
22297         (constant_multiple_of): Take a widest_int pointer instead of
22298         a double_int pointer.
22299         (get_computation_aff): Use wide-int interfaces.
22300         (ptr_difference_cost): Likewise.
22301         (difference_cost): Likewise.
22302         (get_loop_invariant_expr_id): Likewise.
22303         (get_computation_cost_at): Likewise.
22304         (iv_elimination_compare_lt): Likewise.
22305         (may_eliminate_iv): Likewise.
22306         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
22307         instead of double_int.
22308         (max_loop_iterations): Likewise.
22309         (max_stmt_executions): Likewise.
22310         (estimated_stmt_executions): Likewise.
22311         * tree-ssa-loop-niter.c: Include wide-int-print.h.
22312         (split_to_var_and_offset): Use wide-int interfaces.
22313         (determine_value_range): Likewise.
22314         (bound_difference_of_offsetted_base): Likewise.
22315         (bounds_add): Take a widest_int instead of a double_int.
22316         (number_of_iterations_ne_max): Use wide-int interfaces.
22317         (number_of_iterations_ne): Likewise.
22318         (number_of_iterations_lt_to_ne): Likewise.
22319         (assert_loop_rolls_lt): Likewise.
22320         (number_of_iterations_lt): Likewise.
22321         (number_of_iterations_le): Likewise.
22322         (number_of_iterations_cond): Likewise.
22323         (number_of_iterations_exit): Likewise.
22324         (finite_loop_p): Likewise.
22325         (derive_constant_upper_bound_assign): Likewise.
22326         (derive_constant_upper_bound): Return a widest_int.
22327         (derive_constant_upper_bound_ops): Likewise.
22328         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
22329         (record_estimate): Take a widest_int rather than a double_int.
22330         (record_nonwrapping_iv): Use wide-int interfaces.
22331         (double_int_cmp): Delete.
22332         (wide_int_cmp): New.
22333         (bound_index): Take a widest_int rather than a double_int.
22334         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
22335         (maybe_lower_iteration_bound): Likewise.
22336         (estimate_numbers_of_iterations_loop): Likewise.
22337         (estimated_loop_iterations): Take a widest_int pointer than than
22338         a double_int pointer.
22339         (estimated_loop_iterations_int): Use wide-int interfaces.
22340         (max_loop_iterations): Take a widest_int pointer than than
22341         a double_int pointer.
22342         (max_loop_iterations_int): Use wide-int interfaces.
22343         (max_stmt_executions): Take a widest_int pointer than than
22344         a double_int pointer.
22345         (estimated_stmt_executions): Likewise.
22346         (n_of_executions_at_most): Use wide-int interfaces.
22347         (scev_probably_wraps_p): Likewise.
22348         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
22349         to real_to_integer.
22350         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
22351         interfaces.
22352         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
22353         double_ints.  Adjust for trailing_wide_ints <3> representation.
22354         (set_nonzero_bits): Likewise.
22355         (get_range_info): Return wide_ints rather than double_ints.
22356         Adjust for trailing_wide_ints <3> representation.
22357         (get_nonzero_bits): Likewise.
22358         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
22359         representation.
22360         * tree-ssanames.h (struct range_info_def): Replace min, max and
22361         nonzero_bits with a trailing_wide_ints <3>.
22362         (set_range_info): Use wide_int_refs rather than double_ints.
22363         (set_nonzero_bits): Likewise.
22364         (get_range_info): Return wide_ints rather than double_ints.
22365         (get_nonzero_bits): Likewise.
22366         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
22367         * tree-ssa-pre.c (phi_translate_1): Likewise.
22368         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
22369         (acceptable_pow_call): Likewise.
22370         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
22371         interfaces.
22372         (vn_reference_fold_indirect): Likewise.
22373         (vn_reference_maybe_forwprop_address): Likewise.
22374         (valueize_refs_1): Likewise.
22375         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
22376         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
22377         tree_int_cst_lt and tree_int_cst_le.
22378         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
22379         interfaces.
22380         (streamer_alloc_tree): Likewise.
22381         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
22382         (streamer_write_tree_header): Likewise.
22383         (streamer_write_integer_cst): Likewise.
22384         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
22385         (build_constructors): Likewise.
22386         (array_value_type): Likewise.
22387         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
22388         (vect_check_gather): Likewise.
22389         * tree-vect-generic.c (build_replicated_const): Likewise.
22390         (expand_vector_divmod): Likewise.
22391         * tree-vect-loop.c (vect_transform_loop): Likewise.
22392         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
22393         (vect_do_peeling_for_alignment): Likewise.
22394         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
22395         * tree-vrp.c: Include wide-int.h.
22396         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
22397         (extract_range_from_assert): Use wide-int interfaces.
22398         (vrp_int_const_binop): Likewise.
22399         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
22400         double_int pointers.
22401         (ranges_from_anti_range): Use wide-int interfaces.
22402         (quad_int_cmp): Delete.
22403         (quad_int_pair_sort): Likewise.
22404         (extract_range_from_binary_expr_1): Use wide-int interfaces.
22405         (extract_range_from_unary_expr_1): Likewise.
22406         (adjust_range_with_scev): Likewise.
22407         (masked_increment): Take and return wide_ints rather than double_ints.
22408         (register_edge_assert_for_2): Use wide-int interfaces.
22409         (check_array_ref): Likewise.
22410         (search_for_addr_array): Likewise.
22411         (maybe_set_nonzero_bits): Likewise.
22412         (union_ranges): Pass an integer of the correct type instead of
22413         using integer_one_node.
22414         (intersect_ranges): Likewise.
22415         (simplify_truth_ops_using_ranges): Likewise.
22416         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
22417         (range_fits_type_p): Likewise.
22418         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
22419         a bool.
22420         (simplify_conversion_using_ranges): Use wide-int interfaces.
22421         (simplify_float_conversion_using_ranges): Likewise.
22422         (vrp_finalize): Likewise.
22423         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
22424         (gimple_stringops_transform): Likewise.
22425         * varasm.c (decode_addr_const): Likewise.
22426         (const_hash_1): Likewise.
22427         (const_rtx_hash_1): Likewise
22428         (output_constant): Likewise.
22429         (array_size_for_constructor): Likewise.
22430         (output_constructor_regular_field): Likewise.
22431         (output_constructor_bitfield): Likewise.
22432         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
22433         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
22434         GENERATOR_FILEs.
22435         * gencheck.c: Define BITS_PER_UNIT.
22436         * wide-int.cc: New.
22437         * wide-int.h: New.
22438         * wide-int-print.cc: New.
22439         * wide-int-print.h: New.
22440
22441 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22442
22443         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
22444
22445 2014-05-06  Richard Biener  <rguenther@suse.de>
22446
22447         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
22448         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
22449         (TODO_verify_all): Adjust.
22450         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
22451         TODO_verify_stmts and TODO_verify_rtl_sharing.
22452         * bb-reorder.c: Likewise.
22453         * cfgexpand.c: Likewise.
22454         * cprop.c: Likewise.
22455         * cse.c: Likewise.
22456         * function.c: Likewise.
22457         * fwprop.c: Likewise.
22458         * gcse.c: Likewise.
22459         * gimple-ssa-isolate-paths.c: Likewise.
22460         * gimple-ssa-strength-reduction.c: Likewise.
22461         * ipa-split.c: Likewise.
22462         * loop-init.c: Likewise.
22463         * loop-unroll.c: Likewise.
22464         * lower-subreg.c: Likewise.
22465         * modulo-sched.c: Likewise.
22466         * postreload-gcse.c: Likewise.
22467         * predict.c: Likewise.
22468         * recog.c: Likewise.
22469         * sched-rgn.c: Likewise.
22470         * store-motion.c: Likewise.
22471         * tracer.c: Likewise.
22472         * trans-mem.c: Likewise.
22473         * tree-call-cdce.c: Likewise.
22474         * tree-cfg.c: Likewise.
22475         * tree-cfgcleanup.c: Likewise.
22476         * tree-complex.c: Likewise.
22477         * tree-eh.c: Likewise.
22478         * tree-emutls.c: Likewise.
22479         * tree-if-conv.c: Likewise.
22480         * tree-into-ssa.c: Likewise.
22481         * tree-loop-distribution.c: Likewise.
22482         * tree-object-size.c: Likewise.
22483         * tree-parloops.c: Likewise.
22484         * tree-pass.h: Likewise.
22485         * tree-sra.c: Likewise.
22486         * tree-ssa-ccp.c: Likewise.
22487         * tree-ssa-copy.c: Likewise.
22488         * tree-ssa-copyrename.c: Likewise.
22489         * tree-ssa-dce.c: Likewise.
22490         * tree-ssa-dom.c: Likewise.
22491         * tree-ssa-dse.c: Likewise.
22492         * tree-ssa-forwprop.c: Likewise.
22493         * tree-ssa-ifcombine.c: Likewise.
22494         * tree-ssa-loop-ch.c: Likewise.
22495         * tree-ssa-loop-ivcanon.c: Likewise.
22496         * tree-ssa-loop.c: Likewise.
22497         * tree-ssa-math-opts.c: Likewise.
22498         * tree-ssa-phiopt.c: Likewise.
22499         * tree-ssa-phiprop.c: Likewise.
22500         * tree-ssa-pre.c: Likewise.
22501         * tree-ssa-reassoc.c: Likewise.
22502         * tree-ssa-sink.c: Likewise.
22503         * tree-ssa-strlen.c: Likewise.
22504         * tree-ssa-tail-merge.c: Likewise.
22505         * tree-ssa-uncprop.c: Likewise.
22506         * tree-switch-conversion.c: Likewise.
22507         * tree-tailcall.c: Likewise.
22508         * tree-vect-generic.c: Likewise.
22509         * tree-vectorizer.c: Likewise.
22510         * tree-vrp.c: Likewise.
22511         * tsan.c: Likewise.
22512         * var-tracking.c: Likewise.
22513         * bt-load.c: Likewise.
22514         * cfgcleanup.c: Likewise.
22515         * combine-stack-adj.c: Likewise.
22516         * combine.c: Likewise.
22517         * compare-elim.c: Likewise.
22518         * config/epiphany/resolve-sw-modes.c: Likewise.
22519         * config/i386/i386.c: Likewise.
22520         * config/mips/mips.c: Likewise.
22521         * config/s390/s390.c: Likewise.
22522         * config/sh/sh_treg_combine.cc: Likewise.
22523         * config/sparc/sparc.c: Likewise.
22524         * dce.c: Likewise.
22525         * dse.c: Likewise.
22526         * final.c: Likewise.
22527         * ifcvt.c: Likewise.
22528         * mode-switching.c: Likewise.
22529         * passes.c: Likewise.
22530         * postreload.c: Likewise.
22531         * ree.c: Likewise.
22532         * reg-stack.c: Likewise.
22533         * regcprop.c: Likewise.
22534         * regrename.c: Likewise.
22535         * web.c: Likewise.
22536
22537 2014-05-06  Richard Biener  <rguenther@suse.de>
22538
22539         PR middle-end/61070
22540         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
22541         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
22542
22543 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
22544
22545         PR ipa/60965
22546         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
22547
22548 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
22549             Tom de Vries  <tom@codesourcery.com>
22550
22551         * target.def (call_fusage_contains_non_callee_clobbers): New
22552         DEFHOOKPOD.
22553         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
22554         Hooks to @menu.
22555         (@node Miscellaneous Register Hooks): New node.
22556         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
22557         * doc/tm.texi: Regenerate.
22558
22559 2014-05-05  Marek Polacek  <polacek@redhat.com>
22560
22561         PR driver/61065
22562         * opts.c (common_handle_option): Call error_at instead of warning_at.
22563
22564 2014-05-05  Richard Biener  <rguenther@suse.de>
22565
22566         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
22567         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
22568         under the TODO_verify_il umbrella.
22569
22570 2014-05-05  Richard Biener  <rguenther@suse.de>
22571
22572         * passes.c (execute_function_todo): Move TODO_verify_flow under
22573         the TODO_verify_ul umbrella.
22574
22575 2014-05-05  Richard Biener  <rguenther@suse.de>
22576
22577         PR middle-end/61010
22578         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
22579         X & CST away from a CST that is the mask of a mode.
22580
22581 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22582
22583         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
22584         int argument to enum machine_mode.
22585         (picochip_class_max_nregs): Ditto.
22586         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
22587         (picochip_class_max_nregs): Ditto.
22588
22589 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22590
22591         * target.def: Add new target hook.
22592         * doc/tm.texi: Regenerate.
22593         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
22594         * targhooks.c (default_keep_leaf_when_profiled): New function.
22595
22596         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
22597         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
22598
22599 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
22600
22601         PR tree-optimization/60363
22602         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
22603         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
22604         (update_destination_phis): New parameter.
22605         (create_edge_and_update_destination_phis): Ditto.
22606         (ssa_fix_duplicate_block_edges): Pass new arguments.
22607         (thread_single_edge): Ditto.
22608
22609 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
22610
22611         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
22612         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
22613         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
22614         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
22615         Use RS6000_BTM_HARD_FLOAT.
22616         (BU_MISC_2): Likewise.
22617         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
22618         RS6000_BTM_HARD_FLOAT.
22619         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
22620         is explicitly used.
22621         (rs6000_invalid_builtin): Add hard floating builtin support.
22622         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
22623         hard float builtins.
22624         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
22625
22626 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22627
22628         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
22629         Add missing function* argument.
22630
22631 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
22632
22633         * lra-constraints.c (valid_address_p): Move earlier in file.
22634         Add a constraint argument to the address_info version.
22635         (satisfies_memory_constraint_p): New function.
22636         (satisfies_address_constraint_p): Likewise.
22637         (process_alt_operands, curr_insn_transform): Use them.
22638         (process_address): Pass the constraint to valid_address_p when
22639         checking address operands.
22640
22641 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
22642
22643         * config/mips/mips.c (mips_isa_rev): New variable.
22644         (mips_set_architecture): Set it.
22645         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
22646         from mips_isa_rev.
22647         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
22648         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
22649         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
22650         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
22651         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
22652         conditions in terms of mips_isa_rev.
22653         (mips_isa_rev): Declare.
22654
22655 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22656
22657         * config/sh/sh-mem.cc: Use tabs instead of spaces.
22658         (prob_unlikely, prob_likely): Make variables const.
22659
22660 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
22661
22662         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
22663
22664 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22665
22666         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
22667
22668 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22669
22670         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
22671         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
22672         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
22673         functions.
22674         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
22675         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
22676         sh_pass_in_reg_p.
22677         Replace usage of ROUND_REG with sh_round_reg.
22678         Use CEIL instead of ROUND_ADVANCE.
22679
22680 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22681
22682         PR target/61026
22683         * config/sh/sh.c: Include stdlib headers before everything else.
22684
22685 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
22686
22687         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
22688         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
22689         (gimplify_adjust_omp_clauses): Simd region is never
22690         directly nested in combined parallel.  Instead, for linear
22691         with copyin/copyout, if in combined for simd loop, make decl
22692         firstprivate/lastprivate on OMP_FOR.
22693         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
22694         expand_omp_for_static_chunk): When setting endvar, also set
22695         fd->loop.v to the same value.
22696
22697 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
22698
22699         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
22700
22701 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
22702
22703         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
22704         expression.
22705
22706 2014-05-02  Marek Polacek  <polacek@redhat.com>
22707
22708         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
22709
22710 2014-05-02  Kito Cheng  <kito@0xlab.org>
22711
22712         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
22713         to a C expression marco.
22714         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
22715         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
22716         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
22717         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
22718         HONOR_REG_ALLOC_ORDER.
22719         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
22720
22721 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22722
22723         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
22724
22725 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22726
22727         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
22728
22729 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
22730
22731         * tree-if-conv.c (is_cond_scalar_reduction): New function.
22732         (convert_scalar_cond_reduction): Likewise.
22733         (predicate_scalar_phi): Add recognition and transformation
22734         of simple conditioanl reduction to be vectorizable.
22735
22736 2014-05-01  Marek Polacek  <polacek@redhat.com>
22737
22738         PR c/43245
22739         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
22740
22741 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
22742
22743         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
22744         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
22745         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
22746         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
22747         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
22748         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
22749         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
22750         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
22751
22752 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
22753
22754         * config/arc/arc.opt (mlra): Move comment above option name
22755         to avoid mis-parsing as language options.
22756
22757 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22758
22759         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
22760         * config/sol2.h: ... here.
22761         * config/sol2-10.h: Remove.
22762
22763         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
22764         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
22765         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
22766         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
22767         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
22768         * config/sol2.h: ... here.
22769         (SECTION_NAME_FORMAT): Don't redefine.
22770         (STARTFILE_ARCH32_SPEC): Rename to ...
22771         (STARTFILE_ARCH_SPEC): ... this.
22772         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
22773         * config/sparc/sol2.h: ... here.
22774         (SECTION_NAME_FORMAT): Don't undef.
22775         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
22776         (SUBTARGET_EXTRA_SPECS): Remove.
22777         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
22778
22779         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
22780         (MD_STARTFILE_PREFIX): Remove.
22781         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
22782         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
22783         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
22784         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
22785         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
22786         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
22787         * config/i386/sol2.h: ... here.
22788         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
22789         * config/i386/sol2-bi.h: Remove.
22790         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
22791         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
22792
22793         * config/i386/t-sol2-64: Rename to ...
22794         * config/i386/t-sol2: ... this.
22795         * config/sparc/t-sol2-64: Rename to ...
22796         * config/sparc/t-sol2: ... this.
22797
22798         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
22799         sol2_tm_file_head, sol2_tm_file_tail.
22800         Include ${cpu_type}/sol2.h before sol2.h.
22801         Remove sol2-10.h.
22802         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
22803         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
22804         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
22805         Reflect i386/t-sol2-64 renaming.
22806         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
22807         Reflect sparc/t-sol2-64 renaming.
22808
22809 2014-04-30  Richard Biener  <rguenther@suse.de>
22810
22811         * passes.c (execute_function_todo): Move TODO_verify_stmts
22812         and TODO_verify_ssa under the TODO_verify_il umbrella.
22813         * tree-ssa.h (verify_ssa): Adjust prototype.
22814         * tree-ssa.c (verify_ssa): Add parameter to tell whether
22815         we should verify SSA operands.
22816         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
22817         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
22818         whether we should verify whether not throwing stmts have EH info.
22819         * graphite-scop-detection.c (create_sese_edges): Adjust.
22820         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
22821         * tree-eh.c (lower_try_finally_switch): Do not add the
22822         default case label twice.
22823
22824 2014-04-30  Marek Polacek  <polacek@redhat.com>
22825
22826         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
22827         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
22828         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
22829         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
22830
22831 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
22832
22833         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
22834         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
22835         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
22836         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
22837         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
22838         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
22839         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
22840         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
22841
22842 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
22843
22844         * tree-cfg.c (dump_function_to_file): Dump the return type of
22845         functions, in a line to itself before the function body, mimicking
22846         the layout of a C function.
22847
22848 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
22849
22850         PR tree-optimization/60971
22851         * tree-tailcall.c (process_assignment): Reject conversions which
22852         reduce precision.
22853
22854 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
22855
22856         * calls.c (initialize_argument_information): Always treat
22857         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
22858         (expand_call): Likewise.
22859         (emit_library_call_calue_1): Likewise.
22860         * expr.c (PUSH_ARGS_REVERSED): Do not define.
22861         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
22862         code accordingly.
22863
22864 2014-04-29  Nick Clifton  <nickc@redhat.com>
22865
22866         * config/msp430/msp430.md (umulsidi): Fix typo.
22867         (mulhisi3): Enable even inside interrupt handlers.
22868         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
22869         bigger return address pushed in large mode.
22870
22871 2014-04-29  Nick Clifton  <nickc@redhat.com>
22872
22873         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
22874         (arc_init_reg_tables): Use a machine_mode enum to iterate over
22875         available modes.
22876         * config/m32r/m32r.c (init_reg_tables): Likewise.
22877         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
22878         enum to hold the modes.
22879
22880 2014-04-29  Richard Biener  <rguenther@suse.de>
22881
22882         * dominance.c (free_dominance_info): Add overload with
22883         function parameter.
22884         (dom_info_state): Likewise.
22885         (dom_info_available_p): Likewise.
22886         * basic-block.h (free_dominance_info, dom_info_state,
22887         dom_info_available_p): Declare overloads.
22888         * passes.c (execute_function_todo): Verify that verifiers
22889         don't change dominator info state.  Drop dominator info
22890         for IPA pass invocations.
22891         * cgraph.c (release_function_body): Restore asserts that
22892         dominator information is released.
22893
22894 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
22895
22896         * doc/invoke.texi: Fix typo.
22897         * tree-vrp.c: Fix typos.
22898         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
22899
22900 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
22901
22902         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
22903
22904 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
22905
22906         * config/aarch64/aarch64-builtins.c
22907         (aarch64_types_storestruct_lane_qualifiers): New.
22908         (TYPES_STORESTRUCT_LANE): Likewise.
22909         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
22910         (st3_lane): Likewise.
22911         (st4_lane): Likewise.
22912         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
22913         (vec_store_lanesci_lane<mode>): Likewise.
22914         (vec_store_lanesxi_lane<mode>): Likewise.
22915         (aarch64_st2_lane<VQ:mode>): Likewise.
22916         (aarch64_st3_lane<VQ:mode>): Likewise.
22917         (aarch64_st4_lane<VQ:mode>): Likewise.
22918         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
22919         * config/aarch64/arm_neon.h
22920         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
22921         use new macro arguments.
22922         (__ST3_LANE_FUNC): Likewise.
22923         (__ST4_LANE_FUNC): Likewise.
22924         * config/aarch64/iterators.md (V_TWO_ELEM): New.
22925         (V_THREE_ELEM): Likewise.
22926         (V_FOUR_ELEM): Likewise.
22927
22928 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
22929
22930         * doc/gimple.texi: Replace the description of the now-defunct
22931         union gimple_statement_d with a diagram showing the
22932         gimple_statement_base class hierarchy and its relationships to
22933         the GSS_ and GIMPLE_ enums.
22934
22935 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
22936
22937         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
22938         * config/aarch64/aarch64.c
22939         (aarch64_cannot_change_mode_class): Weaken conditions.
22940         (aarch64_modes_tieable_p): New.
22941         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
22942
22943 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
22944
22945         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
22946         (loadsync_<mode>): Change mode.
22947         (load_quadpti, store_quadpti): New.
22948         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
22949         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
22950
22951 2014-04-28  Martin Jambor  <mjambor@suse.cz>
22952
22953         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
22954         same alias type as the original statement.
22955         (subreplacement_assignment_data): New type.
22956         (handle_unscalarized_data_in_subtree): New type of parameter,
22957         generate new memory accesses with same alias type as the original
22958         statement.
22959         (load_assign_lhs_subreplacements): Likewise.
22960         (sra_modify_constructor_assign): Generate new memory accesses with
22961         same alias type as the original statement.
22962
22963 2014-04-28  Richard Biener  <rguenther@suse.de>
22964
22965         * tree-pass.h (TODO_verify_il): Define.
22966         (TODO_verify_all): Complete properly.
22967         * passes.c (execute_function_todo): Move existing loop-closed
22968         SSA verification under TODO_verify_il.
22969         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
22970         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
22971         Fix tree sharing issue.
22972
22973 2014-04-28  Richard Biener  <rguenther@suse.de>
22974
22975         PR middle-end/60092
22976         * builtins.def (DEF_C11_BUILTIN): Add.
22977         (BUILT_IN_ALIGNED_ALLOC): Likewise.
22978         * coretypes.h (enum function_class): Add function_c11_misc.
22979         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
22980         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
22981         (call_may_clobber_ref_p_1): Likewise.
22982         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
22983         (mark_all_reaching_defs_necessary_1): Likewise.
22984         (propagate_necessity): Likewise.
22985         (eliminate_unnecessary_stmts): Likewise.
22986         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
22987
22988 2014-04-28  Richard Biener  <rguenther@suse.de>
22989
22990         * tree-vrp.c (vrp_var_may_overflow): Remove.
22991         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
22992         with overflow immediately bump to one before that value and
22993         let iteration figure out overflow status.
22994
22995 2014-04-28  Richard Biener  <rguenther@suse.de>
22996
22997         * configure.ac: Do valgrind header checks unconditionally.
22998         Add --enable-valgrind-annotations.
22999         * system.h: Guard valgrind header inclusion with
23000         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
23001         * alloc-pool.c (pool_alloc, pool_free): Use
23002         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
23003         to guard possibly dead code.
23004         * config.in: Regenerated.
23005         * configure: Likewise.
23006
23007 2014-04-28  Jeff Law  <law@redhat.com>
23008
23009         PR tree-optimization/60902
23010         * tree-ssa-threadedge.c
23011         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
23012         over real defs when invalidating outputs from statements that do not
23013         produce useful outputs for threading.
23014
23015 2014-04-28  Richard Biener  <rguenther@suse.de>
23016
23017         PR tree-optimization/60979
23018         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
23019         SCOPs that end in a block with a successor with abnormal
23020         predecessors.
23021
23022 2014-04-28  Richard Biener  <rguenther@suse.de>
23023
23024         * tree-pass.h (execute_pass_list): Adjust prototype.
23025         * passes.c (pass_manager::execute_early_local_passes): Adjust.
23026         (do_per_function): Change callback signature, push all actual
23027         work to the callbals.
23028         (do_per_function_toporder): Likewise.
23029         (execute_function_dump): Adjust.
23030         (execute_function_todo): Likewise.
23031         (clear_last_verified): Likewise.
23032         (verify_curr_properties): Likewise.
23033         (update_properties_after_pass): Likewise.
23034         (execute_pass_list_1): Split out from ...
23035         (execute_pass_list): ... here.  Adjust.
23036         (execute_ipa_pass_list): Likewise.
23037         * cgraphunit.c (cgraph_add_new_function): Adjust.
23038         (analyze_function): Likewise.
23039         (expand_function): Likewise.
23040         * cgraph.c (release_function_body): Free dominance info
23041         here instead of asserting it was magically freed elsewhere.
23042
23043 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
23044
23045         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
23046         * configure: Regenerate.
23047         * config/sparc/sparc.opt (muser-mode): New option.
23048         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
23049         for LEON3.
23050         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
23051         * doc/invoke.texi (SPARC options): Document -muser-mode.
23052
23053 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
23054
23055         * cselib.c (find_slot_memmode): Delete.
23056         (cselib_hasher): Change compare_type to a struct.
23057         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
23058         constants.
23059         (preserve_constants_and_equivs): Adjust for new compare_type.
23060         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
23061         (wrap_constant): Delete.
23062         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
23063
23064 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
23065
23066         * doc/install.texi (Building with profile feedback): Remove
23067         outdated sentence.
23068
23069 2014-04-26  Tom de Vries  <tom@codesourcery.com>
23070
23071         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
23072         array accesses.
23073
23074 2014-04-25  Cary Coutant  <ccoutant@google.com>
23075
23076         PR debug/60929
23077         * dwarf2out.c (should_move_die_to_comdat): A type definition
23078         can contain a subprogram definition, but don't move it to a
23079         comdat unit.
23080         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
23081         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
23082         from original DIE.
23083         (clone_tree_hash): Rename to...
23084         (clone_tree_partial): ...this; change callers.  Copy
23085         DW_TAG_subprogram DIEs as declarations.
23086         (copy_decls_walk): Don't copy children of a declaration into a
23087         type unit.
23088
23089 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
23090
23091         PR target/60969
23092         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
23093         alternative 12.
23094
23095 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
23096
23097         * config/arm/predicates.md (call_insn_operand): Add long_call check.
23098         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
23099         reg for long_call.
23100         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
23101         restriction.
23102
23103 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23104
23105         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
23106
23107 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23108
23109         PR tree-optimization/60930
23110         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
23111         creating a multiply candidate by folding two constant
23112         multiplicands when the result overflows.
23113
23114 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
23115
23116         PR tree-optimization/60960
23117         * tree-vect-generic.c (expand_vector_operation): Only call
23118         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
23119
23120 2014-04-25  Tom de Vries  <tom@codesourcery.com>
23121
23122         * expr.c (clobber_reg_mode): New function.
23123         * expr.h (clobber_reg): New function.
23124
23125 2014-04-25  Tom de Vries  <tom@codesourcery.com>
23126
23127         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
23128         clobbers.
23129
23130 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
23131             Tom de Vries  <tom@codesourcery.com>
23132
23133         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
23134         handle.
23135         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
23136         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
23137         new argument to find_all_hard_reg_sets call.
23138
23139 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23140
23141         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
23142         Use HOST_WIDE_INT_C for mask literal.
23143         (aarch_rev16_shleft_mask_imm_p): Likewise.
23144
23145 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
23146
23147         PR target/60941
23148         * config/sparc/sparc.md (ashlsi3_extend): Delete.
23149
23150 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
23151
23152         PR preprocessor/56540
23153         * config/i386/i386-c.c (ix86_target_macros): Define
23154         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
23155
23156 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23157
23158         * configure.ac (tga_func): Remove.
23159         (LIB_TLS_SPEC): Remove.
23160         * configure: Regenerate.
23161         * config.in: Regenerate.
23162         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
23163
23164 2014-04-25  Richard Biener  <rguenther@suse.de>
23165
23166         PR ipa/60912
23167         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
23168         call stmt use/clobber sets during stmt walk instead of
23169         walking the possibly incomplete set of caller edges.
23170
23171 2014-04-25  Richard Biener  <rguenther@suse.de>
23172
23173         PR ipa/60911
23174         * passes.c (apply_ipa_transforms): Inline into only caller ...
23175         (execute_one_pass): ... here.  Properly bring in function
23176         bodies for nodes we want to apply IPA transforms to.
23177
23178 2014-04-24  Cong Hou  <congh@google.com>
23179
23180         PR tree-optimization/60896
23181         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
23182         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
23183         (vect_mark_pattern_stmts): Set the def type of all statements in
23184         PATTERN_DEF_SEQ as vect_internal_def.
23185
23186 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
23187
23188         * doc/extend.texi (PowerPC Built-in Functions): Document new
23189         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
23190         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
23191
23192         * config/rs6000/predicates.md (const_0_to_3_operand): New
23193         predicate to match 0..3 integer constants.
23194
23195         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
23196         to support adding miscellaneous builtin functions.
23197         (BU_DFP_MISC_2): Likewise.
23198         (BU_P7_MISC_1): Likewise.
23199         (BU_P7_MISC_2): Likewise.
23200         (BU_P8V_MISC_3): Likewise.
23201         (BU_MISC_1): Likewise.
23202         (BU_MISC_2): Likewise.
23203         (DIVWE): Add extended divide builtin functions.
23204         (DIVWEO): Likewise.
23205         (DIVWEU): Likewise.
23206         (DIVWEUO): Likewise.
23207         (DIVDE): Likewise.
23208         (DIVDEO): Likewise.
23209         (DIVDEU): Likewise.
23210         (DIVDEUO): Likewise.
23211         (DXEX): Add decimal floating-point builtin functions.
23212         (DXEXQ): Likewise.
23213         (DDEDPD): Likewise.
23214         (DDEDPDQ): Likewise.
23215         (DENBCD): Likewise.
23216         (DENBCDQ): Likewise.
23217         (DIEX): Likewise.
23218         (DIEXQ): Likewise.
23219         (DSCLI): Likewise.
23220         (DSCLIQ): Likewise.
23221         (DSCRI): Likewise.
23222         (DSCRIQ): Likewise.
23223         (CDTBCD): Add new BCD builtin functions.
23224         (CBCDTD): Likewise.
23225         (ADDG6S): Likewise.
23226         (BCDADD): Likewise.
23227         (BCDADD_LT): Likewise.
23228         (BCDADD_EQ): Likewise.
23229         (BCDADD_GT): Likewise.
23230         (BCDADD_OV): Likewise.
23231         (BCDSUB): Likewise.
23232         (BCDSUB_LT): Likewise.
23233         (BCDSUB_EQ): Likewise.
23234         (BCDSUB_GT): Likewise.
23235         (BCDSUB_OV): Likewise.
23236         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
23237         (UNPACK_TD): Likewise.
23238         (PACK_TF): Likewise.
23239         (UNPACK_TF): Likewise.
23240         (UNPACK_TF_0): Likewise.
23241         (UNPACK_TF_1): Likewise.
23242         (PACK_V1TI): Likewise.
23243         (UNPACK_V1TI): Likewise.
23244
23245         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
23246         support for decimal floating point builtin functions.
23247         (rs6000_expand_ternop_builtin): Add checks for the new builtin
23248         functions that take constant arguments.
23249         (rs6000_invalid_builtin): Add decimal floating point builtin support.
23250         (rs6000_init_builtins): Setup long double, _Decimal64, and
23251         _Decimal128 types for new builtin functions.
23252         (builtin_function_type): Set the unsigned flags appropriately for
23253         the new builtin functions.
23254         (rs6000_opt_masks): Add support for decimal floating point builtin
23255         functions.
23256
23257         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
23258         floating point builtin functions.
23259         (RS6000_BTM_COMMON): Likewise.
23260         (RS6000_BTI_long_double): Likewise.
23261         (RS6000_BTI_dfloat64): Likewise.
23262         (RS6000_BTI_dfloat128): Likewise.
23263         (long_double_type_internal_node): Likewise.
23264         (dfloat64_type_internal_node): Likewise.
23265         (dfloat128_type_internal_node): Likewise.
23266
23267         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
23268         2.07 bcd arithmetic instructions.
23269         (UNSPEC_BCDSUB): Likewise.
23270         (UNSPEC_BCD_OVERFLOW): Likewise.
23271         (UNSPEC_BCD_ADD_SUB): Likewise.
23272         (bcd_add_sub): Likewise.
23273         (BCD_TEST): Likewise.
23274         (bcd<bcd_add_sub>): Likewise.
23275         (bcd<bcd_add_sub>_test): Likewise.
23276         (bcd<bcd_add_sub>_test2): Likewise.
23277         (bcd<bcd_add_sub>_<code>): Likewise.
23278         (peephole2 for combined bcd ops): Likewise.
23279
23280         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
23281         decimal floating point builtin functions.
23282         (UNSPEC_DENBCD): Likewise.
23283         (UNSPEC_DXEX): Likewise.
23284         (UNSPEC_DIEX): Likewise.
23285         (UNSPEC_DSCLI): Likewise.
23286         (UNSPEC_DSCRI): Likewise.
23287         (D64_D128): Likewise.
23288         (dfp_suffix): Likewise.
23289         (dfp_ddedpd_<mode>): Likewise.
23290         (dfp_denbcd_<mode>): Likewise.
23291         (dfp_dxex_<mode>): Likewise.
23292         (dfp_diex_<mode>): Likewise.
23293         (dfp_dscli_<mode>): Likewise.
23294         (dfp_dscri_<mode>): Likewise.
23295
23296         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
23297         builtin functions.
23298         (UNSPEC_CDTBCD): Likewise.
23299         (UNSPEC_CBCDTD): Likewise.
23300         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
23301         (UNSPEC_DIVEO): Likewise.
23302         (UNSPEC_DIVEU): Likewise.
23303         (UNSPEC_DIVEUO): Likewise.
23304         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
23305         pack/unpack 128-bit types.
23306         (UNSPEC_PACK_128BIT): Likewise.
23307         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
23308         (udiv<mode>3): Use idiv_ldiv mode attribute.
23309         (div<mode>3): Likewise.
23310         (addg6s): Add new BCD builtin functions.
23311         (cdtbcd): Likewise.
23312         (cbcdtd): Likewise.
23313         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
23314         (div_extend): Likewise.
23315         (div<div_extend>_<mode>"): Likewise.
23316         (FP128_64): Add support for new builtin functions to pack/unpack
23317         128-bit types.
23318         (unpack<mode>): Likewise.
23319         (unpacktf_0): Likewise.
23320         (unpacktf_1): Likewise.
23321         (unpack<mode>_dm): Likewise.
23322         (unpack<mode>_nodm): Likewise.
23323         (pack<mode>): Likewise.
23324         (unpackv1ti): Likewise.
23325         (packv1ti): Likewise.
23326
23327 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
23328
23329         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
23330         is disabled.
23331
23332 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
23333
23334         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
23335         * gimplify.c (omp_is_private): Change last argument's type to int.
23336         Only diagnose lastprivate if the simd argument is 1, only diagnose
23337         linear if the simd argument is 2.
23338         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
23339         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
23340         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
23341         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
23342         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
23343         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
23344         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
23345         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
23346         * tree-nested.c (convert_nonlocal_omp_clauses,
23347         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
23348
23349 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
23350
23351         PR target/60822
23352         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
23353         operand 1.
23354
23355 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
23356
23357         * flag-types.h (enum ivar_visibility): Add.
23358
23359 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
23360
23361         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
23362         function * argument.
23363
23364 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
23365
23366         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
23367
23368 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
23369             Tom de Vries  <tom@codesourcery.com>
23370
23371         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
23372         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
23373         reg-note.
23374         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
23375         * emit-rtl.c (try_split): Same.
23376
23377 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
23378             Tom de Vries  <tom@codesourcery.com>
23379
23380         * common.opt (fuse-caller-save): New option.
23381
23382 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
23383
23384         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
23385         elements for big-endian.
23386
23387 2014-04-24  Richard Biener  <rguenther@suse.de>
23388
23389         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
23390         during TER and instead use the sepops interface for expanding
23391         non-GIMPLE_SINGLE_RHS.
23392
23393 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23394
23395         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
23396         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
23397
23398 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23399
23400         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
23401         assembler 64-bit option.
23402         * configure: Regenerate.
23403
23404 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23405
23406         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
23407         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
23408         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
23409         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
23410         (TARGET_CRYPTO): Take TARGET_SIMD into account.
23411
23412 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23413
23414         * config/aarch64/aarch64-builtins.c
23415         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
23416         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
23417         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
23418         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
23419         builtins.
23420         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
23421         (Vrevsuff): New mode attribute.
23422
23423 2014-04-24  Terry Guo  <terry.guo@arm.com>
23424
23425         * config/arm/arm.h (machine_function): Define variable
23426         after_arm_reorg here.
23427         * config/arm/arm.c (after_arm_reorg): Remove the definition.
23428         (arm_split_constant): Update the way to access variable
23429         after_arm_reorg.
23430         (arm_reorg): Ditto.
23431         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
23432
23433 2014-04-23  Tom de Vries  <tom@codesourcery.com>
23434
23435         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
23436
23437 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
23438
23439         * is-a.h: Update comments to reflect the following changes to the
23440         "pointerness" of the API, making the template parameter match the
23441         return type, allowing use of is-a.h with typedefs of pointers.
23442         (is_a_helper::cast): Return a T rather then a pointer to a T, so
23443         that the return type matches the parameter to the is_a_helper.
23444         (as_a): Likewise.
23445         (dyn_cast): Likewise.
23446
23447         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
23448         pointer from the is-a.h API.
23449
23450         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
23451         (is_a_helper <cgraph_node *>::test): ...this, matching change to
23452         is-a.h API.
23453         (is_a_helper <varpool_node>::test): Likewise, convert to...
23454         (is_a_helper <varpool_node *>::test): ...this.
23455
23456         (varpool_first_variable): Update for removal of implicit pointer
23457         from the is-a.h API.
23458         (varpool_next_variable): Likewise.
23459         (varpool_first_static_initializer): Likewise.
23460         (varpool_next_static_initializer): Likewise.
23461         (varpool_first_defined_variable): Likewise.
23462         (varpool_next_defined_variable): Likewise.
23463         (cgraph_first_defined_function): Likewise.
23464         (cgraph_next_defined_function): Likewise.
23465         (cgraph_first_function): Likewise.
23466         (cgraph_next_function): Likewise.
23467         (cgraph_first_function_with_gimple_body): Likewise.
23468         (cgraph_next_function_with_gimple_body): Likewise.
23469         (cgraph_alias_target): Likewise.
23470         (varpool_alias_target): Likewise.
23471         (cgraph_function_or_thunk_node): Likewise.
23472         (varpool_variable_node): Likewise.
23473         (symtab_real_symbol_p): Likewise.
23474         * cgraphunit.c (referred_to_p): Likewise.
23475         (analyze_functions): Likewise.
23476         (handle_alias_pairs): Likewise.
23477         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
23478         * gimple-ssa.h (gimple_vuse_op): Likewise.
23479         (gimple_vdef_op): Likewise.
23480         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
23481         * gimple.c (gimple_build_asm_1): Likewise.
23482         (gimple_build_try): Likewise.
23483         (gimple_build_resx): Likewise.
23484         (gimple_build_eh_dispatch): Likewise.
23485         (gimple_build_omp_for): Likewise.
23486         (gimple_omp_for_set_clauses): Likewise.
23487
23488         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
23489         (is_a_helper <gimple_statement_asm *>::test): ...this.
23490         (is_a_helper <gimple_statement_bind>::test): Convert to...
23491         (is_a_helper <gimple_statement_bind *>::test): ...this.
23492         (is_a_helper <gimple_statement_call>::test): Convert to...
23493         (is_a_helper <gimple_statement_call *>::test): ...this.
23494         (is_a_helper <gimple_statement_catch>::test): Convert to...
23495         (is_a_helper <gimple_statement_catch *>::test): ...this.
23496         (is_a_helper <gimple_statement_resx>::test): Convert to...
23497         (is_a_helper <gimple_statement_resx *>::test): ...this.
23498         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
23499         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
23500         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
23501         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
23502         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
23503         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
23504         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
23505         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
23506         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
23507         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
23508         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
23509         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
23510         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
23511         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
23512         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
23513         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
23514         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
23515         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
23516         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
23517         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
23518         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
23519         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
23520         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
23521         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
23522         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
23523         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
23524         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
23525         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
23526         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
23527         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
23528         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
23529         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
23530         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
23531         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
23532         (is_a_helper <gimple_statement_phi>::test): Convert to...
23533         (is_a_helper <gimple_statement_phi *>::test): ...this.
23534         (is_a_helper <gimple_statement_transaction>::test): Convert to...
23535         (is_a_helper <gimple_statement_transaction *>::test): ...this.
23536         (is_a_helper <gimple_statement_try>::test): Convert to...
23537         (is_a_helper <gimple_statement_try *>::test): ...this.
23538         (is_a_helper <gimple_statement_wce>::test): Convert to...
23539         (is_a_helper <gimple_statement_wce *>::test): ...this.
23540         (is_a_helper <const gimple_statement_asm>::test): Convert to...
23541         (is_a_helper <const gimple_statement_asm *>::test): ...this.
23542         (is_a_helper <const gimple_statement_bind>::test): Convert to...
23543         (is_a_helper <const gimple_statement_bind *>::test): ...this.
23544         (is_a_helper <const gimple_statement_call>::test): Convert to...
23545         (is_a_helper <const gimple_statement_call *>::test): ...this.
23546         (is_a_helper <const gimple_statement_catch>::test): Convert to...
23547         (is_a_helper <const gimple_statement_catch *>::test): ...this.
23548         (is_a_helper <const gimple_statement_resx>::test): Convert to...
23549         (is_a_helper <const gimple_statement_resx *>::test): ...this.
23550         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
23551         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
23552         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
23553         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
23554         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
23555         Convert to...
23556         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
23557         ...this.
23558         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
23559         Convert to...
23560         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
23561         ...this.
23562         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
23563         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
23564         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
23565         to...
23566         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
23567         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
23568         to...
23569         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
23570         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
23571         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
23572         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
23573         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
23574         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
23575         to...
23576         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
23577         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
23578         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
23579         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
23580         to...
23581         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
23582         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
23583         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
23584         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
23585         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
23586         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
23587         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
23588         (is_a_helper <const gimple_statement_phi>::test): Convert to...
23589         (is_a_helper <const gimple_statement_phi *>::test): ...this.
23590         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
23591         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
23592         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
23593         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
23594         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
23595         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
23596         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
23597         to...
23598         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
23599         ...this.
23600         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
23601         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
23602
23603         (gimple_use_ops): Update for removal of implicit pointer from the
23604         is-a.h API.
23605         (gimple_set_use_ops): Likewise.
23606         (gimple_vuse): Likewise.
23607         (gimple_vdef): Likewise.
23608         (gimple_vuse_ptr): Likewise.
23609         (gimple_vdef_ptr): Likewise.
23610         (gimple_set_vuse): Likewise.
23611         (gimple_set_vdef): Likewise.
23612         (gimple_omp_return_set_lhs): Likewise.
23613         (gimple_omp_return_lhs): Likewise.
23614         (gimple_omp_return_lhs_ptr): Likewise.
23615         (gimple_call_fntype): Likewise.
23616         (gimple_call_set_fntype): Likewise.
23617         (gimple_call_set_internal_fn): Likewise.
23618         (gimple_call_use_set): Likewise.
23619         (gimple_call_clobber_set): Likewise.
23620         (gimple_bind_vars): Likewise.
23621         (gimple_bind_set_vars): Likewise.
23622         (gimple_bind_body_ptr): Likewise.
23623         (gimple_bind_set_body): Likewise.
23624         (gimple_bind_add_stmt): Likewise.
23625         (gimple_bind_block): Likewise.
23626         (gimple_bind_set_block): Likewise.
23627         (gimple_asm_ninputs): Likewise.
23628         (gimple_asm_noutputs): Likewise.
23629         (gimple_asm_nclobbers): Likewise.
23630         (gimple_asm_nlabels): Likewise.
23631         (gimple_asm_input_op): Likewise.
23632         (gimple_asm_input_op_ptr): Likewise.
23633         (gimple_asm_output_op): Likewise.
23634         (gimple_asm_output_op_ptr): Likewise.
23635         (gimple_asm_set_output_op): Likewise.
23636         (gimple_asm_clobber_op): Likewise.
23637         (gimple_asm_set_clobber_op): Likewise.
23638         (gimple_asm_label_op): Likewise.
23639         (gimple_asm_set_label_op): Likewise.
23640         (gimple_asm_string): Likewise.
23641         (gimple_catch_types): Likewise.
23642         (gimple_catch_types_ptr): Likewise.
23643         (gimple_catch_handler_ptr): Likewise.
23644         (gimple_catch_set_types): Likewise.
23645         (gimple_catch_set_handler): Likewise.
23646         (gimple_eh_filter_types): Likewise.
23647         (gimple_eh_filter_types_ptr): Likewise.
23648         (gimple_eh_filter_failure_ptr): Likewise.
23649         (gimple_eh_filter_set_types): Likewise.
23650         (gimple_eh_filter_set_failure): Likewise.
23651         (gimple_eh_must_not_throw_fndecl): Likewise.
23652         (gimple_eh_must_not_throw_set_fndecl): Likewise.
23653         (gimple_eh_else_n_body_ptr): Likewise.
23654         (gimple_eh_else_e_body_ptr): Likewise.
23655         (gimple_eh_else_set_n_body): Likewise.
23656         (gimple_eh_else_set_e_body): Likewise.
23657         (gimple_try_eval_ptr): Likewise.
23658         (gimple_try_cleanup_ptr): Likewise.
23659         (gimple_try_set_eval): Likewise.
23660         (gimple_try_set_cleanup): Likewise.
23661         (gimple_wce_cleanup_ptr): Likewise.
23662         (gimple_wce_set_cleanup): Likewise.
23663         (gimple_phi_capacity): Likewise.
23664         (gimple_phi_num_args): Likewise.
23665         (gimple_phi_result): Likewise.
23666         (gimple_phi_result_ptr): Likewise.
23667         (gimple_phi_set_result): Likewise.
23668         (gimple_phi_arg): Likewise.
23669         (gimple_phi_set_arg): Likewise.
23670         (gimple_resx_region): Likewise.
23671         (gimple_resx_set_region): Likewise.
23672         (gimple_eh_dispatch_region): Likewise.
23673         (gimple_eh_dispatch_set_region): Likewise.
23674         (gimple_omp_critical_name): Likewise.
23675         (gimple_omp_critical_name_ptr): Likewise.
23676         (gimple_omp_critical_set_name): Likewise.
23677         (gimple_omp_for_clauses): Likewise.
23678         (gimple_omp_for_clauses_ptr): Likewise.
23679         (gimple_omp_for_set_clauses): Likewise.
23680         (gimple_omp_for_collapse): Likewise.
23681         (gimple_omp_for_index): Likewise.
23682         (gimple_omp_for_index_ptr): Likewise.
23683         (gimple_omp_for_set_index): Likewise.
23684         (gimple_omp_for_initial): Likewise.
23685         (gimple_omp_for_initial_ptr): Likewise.
23686         (gimple_omp_for_set_initial): Likewise.
23687         (gimple_omp_for_final): Likewise.
23688         (gimple_omp_for_final_ptr): Likewise.
23689         (gimple_omp_for_set_final): Likewise.
23690         (gimple_omp_for_incr): Likewise.
23691         (gimple_omp_for_incr_ptr): Likewise.
23692         (gimple_omp_for_set_incr): Likewise.
23693         (gimple_omp_for_pre_body_ptr): Likewise.
23694         (gimple_omp_for_set_pre_body): Likewise.
23695         (gimple_omp_parallel_clauses): Likewise.
23696         (gimple_omp_parallel_clauses_ptr): Likewise.
23697         (gimple_omp_parallel_set_clauses): Likewise.
23698         (gimple_omp_parallel_child_fn): Likewise.
23699         (gimple_omp_parallel_child_fn_ptr): Likewise.
23700         (gimple_omp_parallel_set_child_fn): Likewise.
23701         (gimple_omp_parallel_data_arg): Likewise.
23702         (gimple_omp_parallel_data_arg_ptr): Likewise.
23703         (gimple_omp_parallel_set_data_arg): Likewise.
23704         (gimple_omp_task_clauses): Likewise.
23705         (gimple_omp_task_clauses_ptr): Likewise.
23706         (gimple_omp_task_set_clauses): Likewise.
23707         (gimple_omp_task_child_fn): Likewise.
23708         (gimple_omp_task_child_fn_ptr): Likewise.
23709         (gimple_omp_task_set_child_fn): Likewise.
23710         (gimple_omp_task_data_arg): Likewise.
23711         (gimple_omp_task_data_arg_ptr): Likewise.
23712         (gimple_omp_task_set_data_arg): Likewise.
23713         (gimple_omp_taskreg_clauses): Likewise.
23714         (gimple_omp_taskreg_clauses_ptr): Likewise.
23715         (gimple_omp_taskreg_set_clauses): Likewise.
23716         (gimple_omp_taskreg_child_fn): Likewise.
23717         (gimple_omp_taskreg_child_fn_ptr): Likewise.
23718         (gimple_omp_taskreg_set_child_fn): Likewise.
23719         (gimple_omp_taskreg_data_arg): Likewise.
23720         (gimple_omp_taskreg_data_arg_ptr): Likewise.
23721         (gimple_omp_taskreg_set_data_arg): Likewise.
23722         (gimple_omp_task_copy_fn): Likewise.
23723         (gimple_omp_task_copy_fn_ptr): Likewise.
23724         (gimple_omp_task_set_copy_fn): Likewise.
23725         (gimple_omp_task_arg_size): Likewise.
23726         (gimple_omp_task_arg_size_ptr): Likewise.
23727         (gimple_omp_task_set_arg_size): Likewise.
23728         (gimple_omp_task_arg_align): Likewise.
23729         (gimple_omp_task_arg_align_ptr): Likewise.
23730         (gimple_omp_task_set_arg_align): Likewise.
23731         (gimple_omp_single_clauses): Likewise.
23732         (gimple_omp_single_clauses_ptr): Likewise.
23733         (gimple_omp_single_set_clauses): Likewise.
23734         (gimple_omp_target_clauses): Likewise.
23735         (gimple_omp_target_clauses_ptr): Likewise.
23736         (gimple_omp_target_set_clauses): Likewise.
23737         (gimple_omp_target_child_fn): Likewise.
23738         (gimple_omp_target_child_fn_ptr): Likewise.
23739         (gimple_omp_target_set_child_fn): Likewise.
23740         (gimple_omp_target_data_arg): Likewise.
23741         (gimple_omp_target_data_arg_ptr): Likewise.
23742         (gimple_omp_target_set_data_arg): Likewise.
23743         (gimple_omp_teams_clauses): Likewise.
23744         (gimple_omp_teams_clauses_ptr): Likewise.
23745         (gimple_omp_teams_set_clauses): Likewise.
23746         (gimple_omp_sections_clauses): Likewise.
23747         (gimple_omp_sections_clauses_ptr): Likewise.
23748         (gimple_omp_sections_set_clauses): Likewise.
23749         (gimple_omp_sections_control): Likewise.
23750         (gimple_omp_sections_control_ptr): Likewise.
23751         (gimple_omp_sections_set_control): Likewise.
23752         (gimple_omp_for_set_cond): Likewise.
23753         (gimple_omp_for_cond): Likewise.
23754         (gimple_omp_atomic_store_set_val): Likewise.
23755         (gimple_omp_atomic_store_val): Likewise.
23756         (gimple_omp_atomic_store_val_ptr): Likewise.
23757         (gimple_omp_atomic_load_set_lhs): Likewise.
23758         (gimple_omp_atomic_load_lhs): Likewise.
23759         (gimple_omp_atomic_load_lhs_ptr): Likewise.
23760         (gimple_omp_atomic_load_set_rhs): Likewise.
23761         (gimple_omp_atomic_load_rhs): Likewise.
23762         (gimple_omp_atomic_load_rhs_ptr): Likewise.
23763         (gimple_omp_continue_control_def): Likewise.
23764         (gimple_omp_continue_control_def_ptr): Likewise.
23765         (gimple_omp_continue_set_control_def): Likewise.
23766         (gimple_omp_continue_control_use): Likewise.
23767         (gimple_omp_continue_control_use_ptr): Likewise.
23768         (gimple_omp_continue_set_control_use): Likewise.
23769         (gimple_transaction_body_ptr): Likewise.
23770         (gimple_transaction_label): Likewise.
23771         (gimple_transaction_label_ptr): Likewise.
23772         (gimple_transaction_set_body): Likewise.
23773         (gimple_transaction_set_label): Likewise.
23774
23775         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
23776         * ipa-inline-analysis.c (inline_write_summary): Likewise.
23777         * ipa-ref.c (ipa_record_reference): Likewise.
23778         * ipa-reference.c (analyze_function): Likewise.
23779         (ipa_reference_write_optimization_summary): Likewise.
23780         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
23781         (address_taken_from_non_vtable_p): Likewise.
23782         (comdat_can_be_unshared_p_1): Likewise.
23783         * lto-cgraph.c (lto_output_ref): Likewise.
23784         (add_references): Likewise.
23785         (compute_ltrans_boundary): Likewise.
23786         (output_symtab): Likewise.
23787         (input_ref): Likewise.
23788         (input_cgraph_1): Likewise.
23789         (output_cgraph_opt_summary): Likewise.
23790         * lto-streamer-out.c (lto_output): Likewise.
23791         (output_symbol_p): Likewise.
23792         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
23793         (lsei_start_function_in_partition): Likewise.
23794         (lsei_next_variable_in_partition): Likewise.
23795         (lsei_start_variable_in_partition): Likewise.
23796         * symtab.c (insert_to_assembler_name_hash): Likewise.
23797         (unlink_from_assembler_name_hash): Likewise.
23798         (symtab_unregister_node): Likewise.
23799         (symtab_remove_node): Likewise.
23800         (dump_symtab_node): Likewise.
23801         (verify_symtab_base): Likewise.
23802         (verify_symtab_node): Likewise.
23803         (symtab_make_decl_local): Likewise.
23804         (symtab_alias_ultimate_target): Likewise.
23805         (symtab_resolve_alias): Likewise.
23806         (symtab_get_symbol_partitioning_class): Likewise.
23807         * tree-phinodes.c (allocate_phi_node): Likewise.
23808         (reserve_phi_args_for_new_edge): Likewise.
23809         (remove_phi_args): Likewise.
23810         * varpool.c (varpool_node_for_asm): Likewise.
23811         (varpool_remove_unreferenced_decls): Likewise.
23812
23813 2014-04-23  Jeff Law  <law@redhat.com>
23814
23815         PR tree-optimization/60902
23816         * tree-ssa-threadedge.c
23817         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
23818         invalidate outputs from statements that do not produce useful
23819         outputs for threading.
23820
23821 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
23822
23823         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
23824         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
23825         machine descriptions for Stack Smashing Protector.
23826
23827 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
23828
23829         * aarch64.md (<optab>_rol<mode>3): New pattern.
23830         (<optab>_rolsi3_uxtw): Likewise.
23831         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
23832
23833 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
23834
23835         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
23836         (arm_cortex_a12_tune): Likewise.
23837
23838 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23839
23840         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
23841
23842 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23843
23844         * config/arm/arm.md (arm_rev16si2): New pattern.
23845         (arm_rev16si2_alt): Likewise.
23846         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
23847
23848 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23849
23850         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
23851         (rev16<mode>2_alt): Likewise.
23852         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
23853         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
23854         (aarch_rev16_shleft_mask_imm_p): Likewise.
23855         (aarch_rev16_p_1): Likewise.
23856         (aarch_rev16_p): Likewise.
23857         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
23858         (aarch_rev16_shright_mask_imm_p): Likewise.
23859         (aarch_rev16_shleft_mask_imm_p): Likewise.
23860
23861 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23862
23863         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
23864         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
23865         rev cost.
23866         (cortex_a53_extra_costs): Likewise.
23867         (cortex_a57_extra_costs): Likewise.
23868         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
23869         (cortexa7_extra_costs): Likewise.
23870         (cortexa8_extra_costs): Likewise.
23871         (cortexa12_extra_costs): Likewise.
23872         (cortexa15_extra_costs): Likewise.
23873         (v7m_extra_costs): Likewise.
23874         (arm_new_rtx_costs): Handle BSWAP.
23875
23876 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23877
23878         * config/arm/arm.c (cortexa8_extra_costs): New table.
23879         (arm_cortex_a8_tune): New tuning struct.
23880         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
23881
23882 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23883
23884         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
23885
23886 2014-04-23  Richard Biener  <rguenther@suse.de>
23887
23888         * Makefile.in (OBJS): Remove loop-unswitch.o.
23889         * tree-pass.h (make_pass_rtl_unswitch): Remove.
23890         * passes.def (pass_rtl_unswitch): Likewise.
23891         * loop-init.c (gate_rtl_unswitch): Likewise.
23892         (rtl_unswitch): Likewise.
23893         (pass_data_rtl_unswitch): Likewise.
23894         (pass_rtl_unswitch): Likewise.
23895         (make_pass_rtl_unswitch): Likewise.
23896         * rtl.h (reversed_condition): Likewise.
23897         (compare_and_jump_seq): Likewise.
23898         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
23899         and make static.
23900         * loop-unroll.c (compare_and_jump_seq): Likewise.
23901
23902 2014-04-23  Richard Biener  <rguenther@suse.de>
23903
23904         PR tree-optimization/60903
23905         * tree-ssa-loop-im.c (analyze_memory_references): Remove
23906         commented code block.
23907         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
23908         loop flags to newly created BBs and edges.
23909
23910 2014-04-23  Nick Clifton  <nickc@redhat.com>
23911
23912         * config/msp430/msp430.c (msp430_handle_option): Move function
23913         to msp430-common.c
23914         (msp430_option_override): Simplify mcu and mcpu option handling.
23915         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
23916         support for -mhwmult command line option.
23917         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
23918         -mhwmult command line option.
23919         (msp430_hwmult_enabled): Delete.
23920         (msp43o_output_labelref): Add support for -mhwmult command line option.
23921         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
23922         (umulsidi3): Likewise.
23923         * config/msp430/msp430.opt (mmcu): Add Report attribute.
23924         (mcpu, mlarge, msmall): Likewise.
23925         (mhwmult): New option.
23926         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
23927         prototype.
23928         (msp430_is_f5_mcu): Remove prototype.
23929         (msp430_use_f5_series_hwmult): Add prototype.
23930         * config/msp430/msp430-opts.h: New file.
23931         * common/config/msp430: New directory.
23932         * common/config/msp430/msp430-common.c: New file.
23933         * config.gcc (msp430): Remove target_has_targetm_common.
23934         * doc/invoke.texi: Document -mhwmult command line option.
23935
23936 2014-04-23  Nick Clifton  <nickc@redhat.com>
23937
23938         * config/i386/cygwin.h (ENDFILE_SPEC): Include
23939         default-manifest.o if it can be found in the search path.
23940         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
23941
23942 2014-04-23  Terry Guo  <terry.guo@arm.com>
23943
23944         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
23945
23946 2014-04-23  Richard Biener  <rguenther@suse.de>
23947
23948         PR middle-end/60895
23949         * tree-inline.c (declare_return_variable): Use mark_addressable.
23950
23951 2014-04-23  Richard Biener  <rguenther@suse.de>
23952
23953         PR middle-end/60891
23954         * loop-init.c (loop_optimizer_init): Make sure to apply
23955         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
23956
23957 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
23958
23959         PR sanitizer/60275
23960         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
23961         New options.
23962         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
23963         if flag_sanitize_undefined_trap_on_error.
23964         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
23965         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
23966         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
23967         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
23968         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
23969         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
23970         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
23971         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
23972         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
23973         * ubsan.c (ubsan_instrument_unreachable): Return
23974         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
23975         (ubsan_expand_null_ifn): Emit __builtin_trap ()
23976         if flag_sanitize_undefined_trap_on_error and
23977         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
23978         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
23979         instrument_bool_enum_load): Emit __builtin_trap () if
23980         flag_sanitize_undefined_trap_on_error and
23981         __builtin_handle_*_abort () if !flag_sanitize_recover.
23982         * doc/invoke.texi (-fsanitize-recover,
23983         -fsanitize-undefined-trap-on-error): Document.
23984
23985 2014-04-22  Christian Bruel  <christian.bruel@st.com>
23986
23987         * config/sh/sh.md (mov<mode>): Replace movQIHI.
23988          Force immediates to SImode.
23989
23990 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
23991
23992         * config/nios2/nios2.md (UNSPEC_ROUND): New.
23993         (lroundsfsi2): New.
23994         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
23995         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
23996         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
23997         (nios2_fpu_insn): Add entry for round.
23998         (N2FPU_NO_ERRNO_P): Define.
23999         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
24000         flag_errno_math.
24001         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
24002
24003 2014-04-22  Richard Henderson  <rth@redhat.com>
24004
24005         * config/aarch64/aarch64 (addti3, subti3): New expanders.
24006         (add<GPI>3_compare0): Remove leading * from name.
24007         (add<GPI>3_carryin): Likewise.
24008         (sub<GPI>3_compare0): Likewise.
24009         (sub<GPI>3_carryin): Likewise.
24010         (<su_optab>mulditi3): New expander.
24011         (multi3): New expander.
24012         (madd<GPI>): Remove leading * from name.
24013
24014 2014-04-22  Martin Jambor  <mjambor@suse.cz>
24015
24016         * cgraphclones.c (cgraph_function_versioning): Copy
24017         ipa_transforms_to_apply instead of asserting it is empty.
24018
24019 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
24020
24021         PR target/60868
24022         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
24023         on count_exp to get mode.
24024
24025 2014-04-22  Andrew Pinski  <apinski@cavium.com>
24026
24027         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
24028         Handle TLS for ILP32.
24029         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
24030         (tlsie_small_<mode>): this and handle PTR.
24031         (tlsie_small_sidi): New pattern.
24032         (tlsle_small): Change to an expand to handle ILP32.
24033         (tlsle_small_<mode>): New pattern.
24034         (tlsdesc_small): Rename to ...
24035         (tlsdesc_small_<mode>): this and handle PTR.
24036
24037 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24038
24039         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
24040
24041 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24042
24043         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
24044         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
24045         (aarch64_types_signed_poly_qualifiers): Likewise.
24046         (aarch64_types_unsigned_signed_qualifiers): Likewise.
24047         (aarch64_types_poly_signed_qualifiers): Likewise.
24048         (TYPES_REINTERP_SS): Type macro added.
24049         (TYPES_REINTERP_SU): Likewise.
24050         (TYPES_REINTERP_SP): Likewise.
24051         (TYPES_REINTERP_US): Likewise.
24052         (TYPES_REINTERP_PS): Likewise.
24053         (aarch64_fold_builtin): New expression folding added.
24054         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
24055         Declarations removed.
24056         (REINTERP_SS): Declarations added.
24057         (REINTERP_US): Likewise.
24058         (REINTERP_PS): Likewise.
24059         (REINTERP_SU): Likewise.
24060         (REINTERP_SP): Likewise.
24061         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
24062         (vreinterpretq_p8_f64): Likewise.
24063         (vreinterpret_p16_f64): Likewise.
24064         (vreinterpretq_p16_f64): Likewise.
24065         (vreinterpret_f32_f64): Likewise.
24066         (vreinterpretq_f32_f64): Likewise.
24067         (vreinterpret_f64_f32): Likewise.
24068         (vreinterpret_f64_p8): Likewise.
24069         (vreinterpret_f64_p16): Likewise.
24070         (vreinterpret_f64_s8): Likewise.
24071         (vreinterpret_f64_s16): Likewise.
24072         (vreinterpret_f64_s32): Likewise.
24073         (vreinterpret_f64_s64): Likewise.
24074         (vreinterpret_f64_u8): Likewise.
24075         (vreinterpret_f64_u16): Likewise.
24076         (vreinterpret_f64_u32): Likewise.
24077         (vreinterpret_f64_u64): Likewise.
24078         (vreinterpretq_f64_f32): Likewise.
24079         (vreinterpretq_f64_p8): Likewise.
24080         (vreinterpretq_f64_p16): Likewise.
24081         (vreinterpretq_f64_s8): Likewise.
24082         (vreinterpretq_f64_s16): Likewise.
24083         (vreinterpretq_f64_s32): Likewise.
24084         (vreinterpretq_f64_s64): Likewise.
24085         (vreinterpretq_f64_u8): Likewise.
24086         (vreinterpretq_f64_u16): Likewise.
24087         (vreinterpretq_f64_u32): Likewise.
24088         (vreinterpretq_f64_u64): Likewise.
24089         (vreinterpret_s64_f64): Likewise.
24090         (vreinterpretq_s64_f64): Likewise.
24091         (vreinterpret_u64_f64): Likewise.
24092         (vreinterpretq_u64_f64): Likewise.
24093         (vreinterpret_s8_f64): Likewise.
24094         (vreinterpretq_s8_f64): Likewise.
24095         (vreinterpret_s16_f64): Likewise.
24096         (vreinterpretq_s16_f64): Likewise.
24097         (vreinterpret_s32_f64): Likewise.
24098         (vreinterpretq_s32_f64): Likewise.
24099         (vreinterpret_u8_f64): Likewise.
24100         (vreinterpretq_u8_f64): Likewise.
24101         (vreinterpret_u16_f64): Likewise.
24102         (vreinterpretq_u16_f64): Likewise.
24103         (vreinterpret_u32_f64): Likewise.
24104         (vreinterpretq_u32_f64): Likewise.
24105
24106 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24107
24108         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
24109         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
24110         (vreinterpret_p8_s8): Likewise.
24111         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
24112         (vreinterpret_p8_s16): Likewise.
24113         (vreinterpret_p8_s32): Likewise.
24114         (vreinterpret_p8_s64): Likewise.
24115         (vreinterpret_p8_f32): Likewise.
24116         (vreinterpret_p8_u8): Likewise.
24117         (vreinterpret_p8_u16): Likewise.
24118         (vreinterpret_p8_u32): Likewise.
24119         (vreinterpret_p8_u64): Likewise.
24120         (vreinterpret_p8_p16): Likewise.
24121         (vreinterpretq_p8_s8): Likewise.
24122         (vreinterpretq_p8_s16): Likewise.
24123         (vreinterpretq_p8_s32): Likewise.
24124         (vreinterpretq_p8_s64): Likewise.
24125         (vreinterpretq_p8_f32): Likewise.
24126         (vreinterpretq_p8_u8): Likewise.
24127         (vreinterpretq_p8_u16): Likewise.
24128         (vreinterpretq_p8_u32): Likewise.
24129         (vreinterpretq_p8_u64): Likewise.
24130         (vreinterpretq_p8_p16): Likewise.
24131         (vreinterpret_p16_s8): Likewise.
24132         (vreinterpret_p16_s16): Likewise.
24133         (vreinterpret_p16_s32): Likewise.
24134         (vreinterpret_p16_s64): Likewise.
24135         (vreinterpret_p16_f32): Likewise.
24136         (vreinterpret_p16_u8): Likewise.
24137         (vreinterpret_p16_u16): Likewise.
24138         (vreinterpret_p16_u32): Likewise.
24139         (vreinterpret_p16_u64): Likewise.
24140         (vreinterpret_p16_p8): Likewise.
24141         (vreinterpretq_p16_s8): Likewise.
24142         (vreinterpretq_p16_s16): Likewise.
24143         (vreinterpretq_p16_s32): Likewise.
24144         (vreinterpretq_p16_s64): Likewise.
24145         (vreinterpretq_p16_f32): Likewise.
24146         (vreinterpretq_p16_u8): Likewise.
24147         (vreinterpretq_p16_u16): Likewise.
24148         (vreinterpretq_p16_u32): Likewise.
24149         (vreinterpretq_p16_u64): Likewise.
24150         (vreinterpretq_p16_p8): Likewise.
24151         (vreinterpret_f32_s8): Likewise.
24152         (vreinterpret_f32_s16): Likewise.
24153         (vreinterpret_f32_s32): Likewise.
24154         (vreinterpret_f32_s64): Likewise.
24155         (vreinterpret_f32_u8): Likewise.
24156         (vreinterpret_f32_u16): Likewise.
24157         (vreinterpret_f32_u32): Likewise.
24158         (vreinterpret_f32_u64): Likewise.
24159         (vreinterpret_f32_p8): Likewise.
24160         (vreinterpret_f32_p16): Likewise.
24161         (vreinterpretq_f32_s8): Likewise.
24162         (vreinterpretq_f32_s16): Likewise.
24163         (vreinterpretq_f32_s32): Likewise.
24164         (vreinterpretq_f32_s64): Likewise.
24165         (vreinterpretq_f32_u8): Likewise.
24166         (vreinterpretq_f32_u16): Likewise.
24167         (vreinterpretq_f32_u32): Likewise.
24168         (vreinterpretq_f32_u64): Likewise.
24169         (vreinterpretq_f32_p8): Likewise.
24170         (vreinterpretq_f32_p16): Likewise.
24171         (vreinterpret_s64_s8): Likewise.
24172         (vreinterpret_s64_s16): Likewise.
24173         (vreinterpret_s64_s32): Likewise.
24174         (vreinterpret_s64_f32): Likewise.
24175         (vreinterpret_s64_u8): Likewise.
24176         (vreinterpret_s64_u16): Likewise.
24177         (vreinterpret_s64_u32): Likewise.
24178         (vreinterpret_s64_u64): Likewise.
24179         (vreinterpret_s64_p8): Likewise.
24180         (vreinterpret_s64_p16): Likewise.
24181         (vreinterpretq_s64_s8): Likewise.
24182         (vreinterpretq_s64_s16): Likewise.
24183         (vreinterpretq_s64_s32): Likewise.
24184         (vreinterpretq_s64_f32): Likewise.
24185         (vreinterpretq_s64_u8): Likewise.
24186         (vreinterpretq_s64_u16): Likewise.
24187         (vreinterpretq_s64_u32): Likewise.
24188         (vreinterpretq_s64_u64): Likewise.
24189         (vreinterpretq_s64_p8): Likewise.
24190         (vreinterpretq_s64_p16): Likewise.
24191         (vreinterpret_u64_s8): Likewise.
24192         (vreinterpret_u64_s16): Likewise.
24193         (vreinterpret_u64_s32): Likewise.
24194         (vreinterpret_u64_s64): Likewise.
24195         (vreinterpret_u64_f32): Likewise.
24196         (vreinterpret_u64_u8): Likewise.
24197         (vreinterpret_u64_u16): Likewise.
24198         (vreinterpret_u64_u32): Likewise.
24199         (vreinterpret_u64_p8): Likewise.
24200         (vreinterpret_u64_p16): Likewise.
24201         (vreinterpretq_u64_s8): Likewise.
24202         (vreinterpretq_u64_s16): Likewise.
24203         (vreinterpretq_u64_s32): Likewise.
24204         (vreinterpretq_u64_s64): Likewise.
24205         (vreinterpretq_u64_f32): Likewise.
24206         (vreinterpretq_u64_u8): Likewise.
24207         (vreinterpretq_u64_u16): Likewise.
24208         (vreinterpretq_u64_u32): Likewise.
24209         (vreinterpretq_u64_p8): Likewise.
24210         (vreinterpretq_u64_p16): Likewise.
24211         (vreinterpret_s8_s16): Likewise.
24212         (vreinterpret_s8_s32): Likewise.
24213         (vreinterpret_s8_s64): Likewise.
24214         (vreinterpret_s8_f32): Likewise.
24215         (vreinterpret_s8_u8): Likewise.
24216         (vreinterpret_s8_u16): Likewise.
24217         (vreinterpret_s8_u32): Likewise.
24218         (vreinterpret_s8_u64): Likewise.
24219         (vreinterpret_s8_p8): Likewise.
24220         (vreinterpret_s8_p16): Likewise.
24221         (vreinterpretq_s8_s16): Likewise.
24222         (vreinterpretq_s8_s32): Likewise.
24223         (vreinterpretq_s8_s64): Likewise.
24224         (vreinterpretq_s8_f32): Likewise.
24225         (vreinterpretq_s8_u8): Likewise.
24226         (vreinterpretq_s8_u16): Likewise.
24227         (vreinterpretq_s8_u32): Likewise.
24228         (vreinterpretq_s8_u64): Likewise.
24229         (vreinterpretq_s8_p8): Likewise.
24230         (vreinterpretq_s8_p16): Likewise.
24231         (vreinterpret_s16_s8): Likewise.
24232         (vreinterpret_s16_s32): Likewise.
24233         (vreinterpret_s16_s64): Likewise.
24234         (vreinterpret_s16_f32): Likewise.
24235         (vreinterpret_s16_u8): Likewise.
24236         (vreinterpret_s16_u16): Likewise.
24237         (vreinterpret_s16_u32): Likewise.
24238         (vreinterpret_s16_u64): Likewise.
24239         (vreinterpret_s16_p8): Likewise.
24240         (vreinterpret_s16_p16): Likewise.
24241         (vreinterpretq_s16_s8): Likewise.
24242         (vreinterpretq_s16_s32): Likewise.
24243         (vreinterpretq_s16_s64): Likewise.
24244         (vreinterpretq_s16_f32): Likewise.
24245         (vreinterpretq_s16_u8): Likewise.
24246         (vreinterpretq_s16_u16): Likewise.
24247         (vreinterpretq_s16_u32): Likewise.
24248         (vreinterpretq_s16_u64): Likewise.
24249         (vreinterpretq_s16_p8): Likewise.
24250         (vreinterpretq_s16_p16): Likewise.
24251         (vreinterpret_s32_s8): Likewise.
24252         (vreinterpret_s32_s16): Likewise.
24253         (vreinterpret_s32_s64): Likewise.
24254         (vreinterpret_s32_f32): Likewise.
24255         (vreinterpret_s32_u8): Likewise.
24256         (vreinterpret_s32_u16): Likewise.
24257         (vreinterpret_s32_u32): Likewise.
24258         (vreinterpret_s32_u64): Likewise.
24259         (vreinterpret_s32_p8): Likewise.
24260         (vreinterpret_s32_p16): Likewise.
24261         (vreinterpretq_s32_s8): Likewise.
24262         (vreinterpretq_s32_s16): Likewise.
24263         (vreinterpretq_s32_s64): Likewise.
24264         (vreinterpretq_s32_f32): Likewise.
24265         (vreinterpretq_s32_u8): Likewise.
24266         (vreinterpretq_s32_u16): Likewise.
24267         (vreinterpretq_s32_u32): Likewise.
24268         (vreinterpretq_s32_u64): Likewise.
24269         (vreinterpretq_s32_p8): Likewise.
24270         (vreinterpretq_s32_p16): Likewise.
24271         (vreinterpret_u8_s8): Likewise.
24272         (vreinterpret_u8_s16): Likewise.
24273         (vreinterpret_u8_s32): Likewise.
24274         (vreinterpret_u8_s64): Likewise.
24275         (vreinterpret_u8_f32): Likewise.
24276         (vreinterpret_u8_u16): Likewise.
24277         (vreinterpret_u8_u32): Likewise.
24278         (vreinterpret_u8_u64): Likewise.
24279         (vreinterpret_u8_p8): Likewise.
24280         (vreinterpret_u8_p16): Likewise.
24281         (vreinterpretq_u8_s8): Likewise.
24282         (vreinterpretq_u8_s16): Likewise.
24283         (vreinterpretq_u8_s32): Likewise.
24284         (vreinterpretq_u8_s64): Likewise.
24285         (vreinterpretq_u8_f32): Likewise.
24286         (vreinterpretq_u8_u16): Likewise.
24287         (vreinterpretq_u8_u32): Likewise.
24288         (vreinterpretq_u8_u64): Likewise.
24289         (vreinterpretq_u8_p8): Likewise.
24290         (vreinterpretq_u8_p16): Likewise.
24291         (vreinterpret_u16_s8): Likewise.
24292         (vreinterpret_u16_s16): Likewise.
24293         (vreinterpret_u16_s32): Likewise.
24294         (vreinterpret_u16_s64): Likewise.
24295         (vreinterpret_u16_f32): Likewise.
24296         (vreinterpret_u16_u8): Likewise.
24297         (vreinterpret_u16_u32): Likewise.
24298         (vreinterpret_u16_u64): Likewise.
24299         (vreinterpret_u16_p8): Likewise.
24300         (vreinterpret_u16_p16): Likewise.
24301         (vreinterpretq_u16_s8): Likewise.
24302         (vreinterpretq_u16_s16): Likewise.
24303         (vreinterpretq_u16_s32): Likewise.
24304         (vreinterpretq_u16_s64): Likewise.
24305         (vreinterpretq_u16_f32): Likewise.
24306         (vreinterpretq_u16_u8): Likewise.
24307         (vreinterpretq_u16_u32): Likewise.
24308         (vreinterpretq_u16_u64): Likewise.
24309         (vreinterpretq_u16_p8): Likewise.
24310         (vreinterpretq_u16_p16): Likewise.
24311         (vreinterpret_u32_s8): Likewise.
24312         (vreinterpret_u32_s16): Likewise.
24313         (vreinterpret_u32_s32): Likewise.
24314         (vreinterpret_u32_s64): Likewise.
24315         (vreinterpret_u32_f32): Likewise.
24316         (vreinterpret_u32_u8): Likewise.
24317         (vreinterpret_u32_u16): Likewise.
24318         (vreinterpret_u32_u64): Likewise.
24319         (vreinterpret_u32_p8): Likewise.
24320         (vreinterpret_u32_p16): Likewise.
24321         (vreinterpretq_u32_s8): Likewise.
24322         (vreinterpretq_u32_s16): Likewise.
24323         (vreinterpretq_u32_s32): Likewise.
24324         (vreinterpretq_u32_s64): Likewise.
24325         (vreinterpretq_u32_f32): Likewise.
24326         (vreinterpretq_u32_u8): Likewise.
24327         (vreinterpretq_u32_u16): Likewise.
24328         (vreinterpretq_u32_u64): Likewise.
24329         (vreinterpretq_u32_p8): Likewise.
24330         (vreinterpretq_u32_p16): Likewise.
24331
24332 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24333
24334         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
24335         Pattern extended.
24336         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
24337         (sqabs): Likewise.
24338         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
24339         (vqnegd_s64): Likewise.
24340         (vqabs_s64): Likewise.
24341         (vqabsd_s64): Likewise.
24342
24343 2014-04-22  Richard Henderson  <rth@redhat.com>
24344
24345         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
24346         computation to the top of the loop.
24347
24348 2014-04-22  Renlin  <renlin.li@arm.com>
24349             Jiong Wang  <jiong.wang@arm.com>
24350
24351         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
24352         * config/aarch64/aarch64.c (aarch64_layout_frame)
24353         (aarch64_initial_elimination_offset): Likewise.
24354
24355 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
24356
24357         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
24358         Fix indentation.
24359
24360 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
24361
24362         * machmode.h (bitwise_mode_for_mode): Declare.
24363         * stor-layout.h (bitwise_type_for_mode): Likewise.
24364         * stor-layout.c (bitwise_mode_for_mode): New function.
24365         (bitwise_type_for_mode): Likewise.
24366         * builtins.c (fold_builtin_memory_op): Use it instead of
24367         int_mode_for_mode and build_nonstandard_integer_type.
24368
24369 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24370
24371         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
24372         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
24373         (*-*-solaris2*): Simplify.
24374         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
24375         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
24376         *-*-solaris2.9* handling.
24377
24378         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
24379         as bug.
24380         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
24381         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
24382         handling, simplify.
24383         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
24384         * configure: Regenerate.
24385
24386         * config/i386/sol2-9.h: Remove.
24387
24388         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
24389         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
24390         Remove Solaris 9 references.
24391
24392 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
24393
24394         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
24395         (floatuns<GPI:mode><GPF:mode>2): Remove.
24396         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
24397         and floatuns conversions.
24398         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
24399         and floatuns conversions.
24400         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
24401         (w1,w2): New mode attributes for inequal width conversions.
24402
24403 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
24404
24405         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
24406         the output asm format.
24407
24408 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
24409
24410         * config/aarch64/aarch64-simd.md
24411         (aarch64_cm<optab>di): Always split.
24412         (*aarch64_cm<optab>di): New.
24413         (aarch64_cmtstdi): Always split.
24414         (*aarch64_cmtstdi): New.
24415
24416 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
24417
24418         PR tree-optimization/60823
24419         * omp-low.c (ipa_simd_modify_function_body): Go through
24420         all SSA_NAMEs and for those refering to vector arguments
24421         which are going to be replaced adjust SSA_NAME_VAR and,
24422         if it is a default definition, change it into a non-default
24423         definition assigned at the beginning of function from new_decl.
24424         (ipa_simd_modify_stmt_ops): Rewritten.
24425         * tree-dfa.c (set_ssa_default_def): When removing default def,
24426         check for NULL loc instead of NULL *loc.
24427
24428 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24429
24430         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
24431         restrictions on core registers for DImode values in Thumb2.
24432
24433 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
24434
24435         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
24436         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
24437
24438 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
24439
24440         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
24441         (*iordi_notzesidi_di): Likewise.
24442         (*iordi_notsesidi_di): Likewise.
24443
24444 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
24445
24446         * config/arm/arm-protos.h (tune_params): New struct members.
24447         * config/arm/arm.c: Initialise tune_params per processor.
24448         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
24449         for speed, based on new tune_params.
24450
24451 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24452
24453         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
24454         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
24455         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
24456         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
24457         * config/aarch64/arm_neon.h (vrnd_f64): Added.
24458         (vrnda_f64): Likewise.
24459         (vrndi_f64): Likewise.
24460         (vrndm_f64): Likewise.
24461         (vrndn_f64): Likewise.
24462         (vrndp_f64): Likewise.
24463         (vrndx_f64): Likewise.
24464
24465 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24466
24467         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
24468         GET_MODE_SIZE argument is enum machine_mode.
24469
24470 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
24471
24472         PR target/60910
24473         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
24474         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
24475
24476 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
24477
24478         PR middle-end/60281
24479         * asan.c (asan_emit_stack_protection): Force the base to align to
24480         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
24481         appropriate bits if STRICT_ALIGNMENT.
24482         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
24483         when asan is on.
24484         (expand_used_vars): Leave a space in the stack frame for alignment
24485         if STRICT_ALIGNMENT.
24486
24487 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
24488
24489         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
24490         than a gimple.
24491         (gimple_store_p): Likewise.
24492         (gimple_assign_load_p): Likewise.
24493         (gimple_assign_cast_p): Likewise.
24494         (gimple_clobber_p): Likewise.
24495
24496         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
24497         rather than a gimple.
24498         (gimple_assign_cast_p): Likewise.
24499
24500 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
24501
24502         PR target/60735
24503         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
24504         If mode is DDmode and TARGET_E500_DOUBLE allow move.
24505
24506         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
24507         more debug information for E500 if -mdebug=reg.
24508
24509 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
24510
24511         PR target/60909
24512         * config/i386/i386.c (ix86_expand_builtin)
24513         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
24514         register for target RTX.
24515         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
24516
24517 2014-04-18  Cong Hou  <congh@google.com>
24518
24519         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
24520         the widen-mult pattern by handling two operands with different sizes,
24521         and operands whose size is smaller than half of the result type.
24522
24523 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
24524
24525         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
24526         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
24527         (do_estimate_edge_time): Compute it.
24528         * ipa-inline.c (want_inline_small_function_p): Bypass
24529         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
24530
24531 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
24532
24533         * ipa-inline.c (spec_rem): New static variable.
24534         (dump_overall_stats): New function.
24535         (dump_inline_stats): New function.
24536
24537 2014-04-18  Richard Henderson  <rth@redhat.com>
24538
24539         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
24540         to GET_MODE_SIZE, not a reg_class_t.
24541
24542 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24543
24544         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
24545         (vsx_xxmrglw_<mode>): Likewise.
24546
24547 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
24548
24549         PR target/60876
24550         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
24551         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
24552         (rs6000_init_hard_regno_mode_ok): Likewise.
24553
24554 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
24555
24556         * ipa-inline.c (inline_small_functions): Account only non-cold
24557         functions.
24558         * doc/invoke.texi (inline-unit-growth): Update documentation.
24559
24560 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
24561
24562         * config/rs6000/rs6000.md (addti3, subti3): New.
24563
24564 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
24565
24566         PR target/60863
24567         * config/i386/i386.c (ix86_expand_clear): Remove outdated
24568         comment.  Check optimize_insn_for_size_p instead of
24569         optimize_insn_for_speed_p.
24570
24571 2014-04-17  Martin Jambor  <mjambor@suse.cz>
24572
24573         * gimple-iterator.c (gsi_start_edge): New function.
24574         * gimple-iterator.h (gsi_start_edge): Declare.
24575         * tree-sra.c (single_non_eh_succ): New function.
24576         (disqualify_ops_if_throwing_stmt): Renamed to
24577         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
24578         having one non-EH successor BB.
24579         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
24580         generate loads into replacements.
24581         (sra_modify_assign): Likewise and and also use the simple path for
24582         such statements.
24583         (sra_modify_function_body): Commit statements on edges.
24584
24585 2014-04-17  Richard Biener  <rguenther@suse.de>
24586
24587         PR middle-end/60849
24588         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
24589         comparison results and add clarifying comment.
24590
24591 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
24592
24593         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
24594         (blank_mode): Initialize it.
24595         (emit_mode_size_inline, emit_mode_nunits_inline,
24596         emit_mode_inner_inline): New functions.
24597         (emit_insn_modes_h): Call them and surround their output with
24598         #if GCC_VERSION >= 4001 ... #endif.
24599         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
24600         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
24601         mode_* arrays if the argument is __builtin_constant_p.
24602         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
24603         is enum machine_mode.
24604
24605 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24606
24607         * passes.c (opt_pass::execute): Adjust.
24608         (pass_manager::execute_pass_mode_switching): Likewise.
24609         (early_local_passes::execute): Likewise.
24610         (execute_one_pass): Pass cfun to the pass's execute method.
24611         * tree-pass.h (opt_pass::execute): Add function * argument.
24612         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
24613         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
24614         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
24615         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
24616         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
24617         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
24618         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
24619         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
24620         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
24621         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
24622         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
24623         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
24624         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
24625         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
24626         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
24627         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
24628         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
24629         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
24630         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
24631         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
24632         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
24633         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
24634         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
24635         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
24636         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
24637         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
24638         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
24639         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
24640         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
24641         Adjust.
24642
24643 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24644
24645         * passes.c (opt_pass::gate): Take function * argument.
24646         (gate_all_early_local_passes): Merge into
24647         (early_local_passes::gate): this.
24648         (gate_all_early_optimizations): Merge into
24649         (all_early_optimizations::gate): this.
24650         (gate_all_optimizations): Mege into
24651         (all_optimizations::gate): this.
24652         (gate_all_optimizations_g): Merge into
24653         (all_optimizations_g::gate): this.
24654         (gate_rest_of_compilation): Mege into
24655         (rest_of_compilation::gate): this.
24656         (gate_postreload): Merge into
24657         (postreload::gate): this.
24658         (dump_one_pass): Pass cfun to the pass's gate method.
24659         (execute_ipa_summary_passes): Likewise.
24660         (execute_one_pass): Likewise.
24661         (ipa_write_summaries_2): Likewise.
24662         (ipa_write_optimization_summaries_1): Likewise.
24663         (ipa_read_summaries_1): Likewise.
24664         (ipa_read_optimization_summaries_1): Likewise.
24665         (execute_ipa_stmt_fixups): Likewise.
24666         * tree-pass.h (opt_pass::gate): Add function * argument.
24667         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
24668         combine-stack-adj.c, combine.c, compare-elim.c,
24669         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
24670         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
24671         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
24672         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
24673         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
24674         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
24675         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
24676         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
24677         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
24678         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
24679         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
24680         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
24681         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
24682         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
24683         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
24684         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
24685         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
24686         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
24687         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
24688         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
24689         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
24690         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
24691         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
24692         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
24693         var-tracking.c, vtable-verify.c, web.c: Adjust.
24694
24695 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24696
24697         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
24698         * configure: Regenerate.
24699
24700 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24701
24702         * passes.c (dump_one_pass): don't check pass->has_gate.
24703         (execute_ipa_summary_passes): Likewise.
24704         (execute_one_pass): Likewise.
24705         (ipa_write_summaries_2): Likewise.
24706         (ipa_write_optimization_summaries_1): Likewise.
24707         (ipa_read_optimization_summaries_1): Likewise.
24708         (execute_ipa_stmt_fixups): Likewise.
24709         * tree-pass.h (pass_data::has_gate): Remove.
24710         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
24711         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
24712         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
24713         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
24714         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
24715         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
24716         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
24717         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
24718         gimple-low.c, gimple-ssa-isolate-paths.c,
24719         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
24720         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
24721         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
24722         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
24723         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
24724         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
24725         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
24726         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
24727         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
24728         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
24729         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
24730         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
24731         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
24732         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
24733         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
24734         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
24735         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
24736         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
24737         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
24738         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
24739         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
24740         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
24741         Adjust.
24742
24743 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24744
24745         * pass_manager.h (pass_manager::register_dump_files_1): Remove
24746         declaration.
24747         * passes.c (pass_manager::register_dump_files_1): Merge into
24748         (pass_manager::register_dump_files): this, and remove its handling of
24749         properties since the pass always has the properties anyway.
24750         (pass_manager::pass_manager): Adjust.
24751
24752 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24753
24754         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
24755         * passes.c (pass_manager::register_dump_files_1): Remove dead code
24756         dealing with properties.
24757         (pass_manager::register_dump_files): Adjust.
24758
24759 2014-03-20  Mark Wielaard  <mjw@redhat.com>
24760
24761         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
24762         then represent the bound as normal constant value.
24763
24764 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
24765
24766         PR target/60847
24767         Forward port from 4.8 branch
24768         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
24769
24770         * config/i386/bmiintrin.h (_blsi_u32): New.
24771         (_blsi_u64): Ditto.
24772         (_blsr_u32): Ditto.
24773         (_blsr_u64): Ditto.
24774         (_blsmsk_u32): Ditto.
24775         (_blsmsk_u64): Ditto.
24776         (_tzcnt_u32): Ditto.
24777         (_tzcnt_u64): Ditto.
24778
24779 2014-04-17  Kito Cheng  <kito@0xlab.org>
24780
24781         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
24782
24783 2014-04-17  Richard Biener  <rguenther@suse.de>
24784
24785         PR middle-end/60849
24786         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
24787         boolean results for comparisons.
24788
24789 2014-04-17  Richard Biener  <rguenther@suse.de>
24790
24791         PR tree-optimization/60836
24792         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
24793         initial PHI args to be gimple values.
24794
24795 2014-04-17  Richard Biener  <rguenther@suse.de>
24796
24797         PR tree-optimization/60841
24798         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
24799         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
24800         of stmts to SLP build.
24801         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
24802         (vect_analyze_slp): Likewise.
24803         (vect_analyze_slp_instance): Likewise.
24804         (vect_build_slp_tree): Limit overall SLP tree growth.
24805         * tree-vectorizer.h (vect_analyze_data_refs,
24806         vect_analyze_slp): Adjust prototypes.
24807
24808 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
24809
24810         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
24811         Silvermont.
24812
24813 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
24814
24815         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
24816         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
24817         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
24818         for TARGET_SLOW_PSHUFB
24819
24820 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
24821
24822         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
24823         * config/i386/i386.c (intel_cost): Ditto.
24824
24825 2014-04-17  Joey Ye  <joey.ye@arm.com>
24826
24827         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
24828
24829 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
24830
24831         * opts.c (common_handle_option): Disable -fipa-reference coorectly
24832         with -fuse-profile.
24833
24834 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
24835
24836         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
24837         (type_all_derivations_known_p): New predicate.
24838         (type_all_ctors_visible_p): New predicate.
24839         (type_possibly_instantiated_p): New predicate.
24840         (get_odr_type): Compute all_derivations_known.
24841         (dump_odr_type): Dump the flag.
24842         (maybe_record_type): Cleanup.
24843         (record_target_from_binfo): Add bases_to_consider array;
24844         record bases for types w/o instances and skip CXX destructor.
24845         (possible_polymorphic_call_targets_1): Add bases_to_consider
24846         and consider_construction parameters; check if type may have instance.
24847         (get_polymorphic_call_info): Set maybe_in_construction to true
24848         when we know nothing.
24849         (record_targets_from_bases): Skip CXX destructors; they are
24850         never called for types in construction.
24851         (possible_polymorphic_call_targets): Do not record target when
24852         type may not have instance.
24853
24854 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
24855
24856         PR ipa/60854
24857         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
24858         external aliases alive, too.
24859
24860 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
24861
24862         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
24863         definition.
24864
24865 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
24866
24867         * final.c (compute_alignments): Do not apply loop alignment to a block
24868         falling through to the exit.
24869
24870 2014-04-16  Catherine Moore  <clm@codesourcery.com>
24871
24872         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
24873         Adjust constraints for microMIPS store patterns.
24874
24875 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
24876
24877         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
24878
24879 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
24880
24881         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
24882         (append_use): Run at -O0.
24883         (append_vdef): Likewise.
24884         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
24885         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
24886
24887 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
24888
24889         PR tree-optimization/60844
24890         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
24891         (propagate_op_to_single_use, remove_visited_stmt_chain,
24892         linearize_expr, repropagate_negates, reassociate_bb): Use it
24893         instead of gsi_remove.
24894
24895 2014-04-16  Martin Jambor  <mjambor@suse.cz>
24896
24897         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
24898         ipa_transforms_to_apply.
24899         (cgraph_function_versioning): Assert that old_node has empty
24900         ipa_transforms_to_apply.
24901         * trans-mem.c (ipa_tm_create_version): Likewise.
24902         * tree-inline.c (tree_function_versioning): Do not duplicate
24903         ipa_transforms_to_apply.
24904
24905 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24906
24907         PR target/60817
24908         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
24909         x86_64-*-* cases.
24910         Pass necessary as flags on 64-bit Solaris/x86.
24911         Use lowercase relocs for x86_64-*-*.
24912         * configure: Regenerate.
24913
24914 2014-04-15  Jan Hubicka  <jh@suse.cz>
24915
24916         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
24917         (maybe_record_node, likely_target_p): Use it.
24918
24919 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24920
24921         PR target/60839
24922         Revert following patch
24923
24924         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
24925
24926         PR target/60735
24927         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
24928         software floating point or no floating point registers, do not
24929         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
24930         in GPRs that occurs after we tested for GPRs that would never be
24931         true.
24932
24933         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
24934         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
24935         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
24936         specifically allow DDmode, since that does not use the SPE SIMD
24937         instructions.
24938
24939 2014-03-21  Mark Wielaard  <mjw@redhat.com>
24940
24941         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
24942         as unsigned or int depending on type and value used.
24943
24944 2014-04-15  Richard Biener  <rguenther@suse.de>
24945
24946         PR rtl-optimization/56965
24947         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
24948         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
24949         ... here.
24950         * alias.c (true_dependence_1): Do not call
24951         nonoverlapping_component_refs_p.
24952         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
24953         nonoverlapping_component_refs_p.
24954         (indirect_refs_may_alias_p): Likewise.
24955
24956 2014-04-15  Teresa Johnson  <tejohnson@google.com>
24957
24958         * cfg.c (dump_bb_info): Fix flags check.
24959         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
24960
24961 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24962
24963         PR rtl-optimization/60663
24964         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
24965         avoid 0 cost.
24966
24967 2014-04-15  Richard Biener  <rguenther@suse.de>
24968
24969         * lto-streamer.h (LTO_major_version): Bump to 4.
24970
24971 2014-04-15  Richard Biener  <rguenther@suse.de>
24972
24973         * common.opt (lto_partition_model): New enum.
24974         (flto-partition=): Merge separate options with a single with argument,
24975         add -flto-partition=one support.
24976         * flag-types.h (enum lto_partition_model): Declare.
24977         * opts.c (finish_options): Remove duplicate -flto-partition=
24978         option check.
24979         * lto-wrapper.c (run_gcc): Adjust.
24980
24981 2014-04-15  Richard Biener  <rguenther@suse.de>
24982
24983         * alias.c (ncr_compar): New function.
24984         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
24985
24986 2014-04-15  Richard Biener  <rguenther@suse.de>
24987
24988         * alias.c (record_component_aliases): Do not walk BINFOs.
24989
24990 2014-04-15  Richard Biener  <rguenther@suse.de>
24991
24992         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24993         Add struct function argument and adjust.
24994         (find_func_aliases_for_call): Likewise.
24995         (find_func_aliases): Likewise.
24996         (find_func_clobbers): Likewise.
24997         (intra_create_variable_infos): Likewise.
24998         (compute_points_to_sets): Likewise.
24999         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
25000
25001 2014-04-15  Richard Biener  <rguenther@suse.de>
25002
25003         * tree.c (iterative_hash_expr): Use enum tree_code_class
25004         to store TREE_CODE_CLASS.
25005         (tree_block): Likewise.
25006         (tree_set_block): Likewise.
25007         * tree.h (fold_build_pointer_plus_loc): Use
25008         convert_to_ptrofftype_loc.
25009
25010 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
25011
25012         PR plugins/59335
25013         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
25014         added in 4.9.
25015
25016 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
25017
25018         * cfgloop.h (struct loop): Move force_vectorize down.
25019         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
25020         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
25021         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
25022         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
25023         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
25024         * tree-core.h (enum annot_expr_kind): Add new kind values.
25025         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
25026         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
25027         kinds.
25028         * tree.def (ANNOTATE_EXPR): Tweak comment.
25029
25030 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
25031
25032         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
25033         cxa_pure_virtual).
25034
25035 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
25036
25037         * tree.h (TYPE_IDENTIFIER): Declare.
25038         * tree.c (subrange_type_for_debug_p): Use it.
25039         * godump.c (go_format_type): Likewise.
25040         * dwarf2out.c (is_cxx_auto, modified_type_die,
25041         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
25042         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
25043
25044 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
25045
25046         PR lto/60820
25047         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
25048
25049 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
25050
25051         * config/i386/i386.c (examine_argument): Return bool.  Return true if
25052         parameter should be passed in memory.
25053         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
25054         (construct_container): Update calls to examine_argument.
25055         (function_arg_advance_64): Ditto.
25056         (return_in_memory_32): Merge with ix86_return_in_memory.
25057         (return_in_memory_64): Ditto.
25058         (return_in_memory_ms_64): Ditto.
25059
25060 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
25061
25062         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
25063         * coverage.c (coverage_compute_profile_id): Handle externally visible
25064         symbols.
25065
25066 2014-04-14  Martin Jambor  <mjambor@suse.cz>
25067
25068         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
25069         DECL_DISREGARD_INLINE_LIMITS functions.
25070
25071 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
25072
25073         PR target/60827
25074         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
25075
25076 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
25077
25078         PR target/60827
25079         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
25080         optimize_insn_for_speed_p instead of
25081         optimize_function_for_speed_p.
25082
25083 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
25084
25085         * doc/invoke.texi (free): Document AArch64.
25086
25087 2014-04-14  Richard Biener  <rguenther@suse.de>
25088
25089         PR tree-optimization/60042
25090         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
25091         (insert_into_preds_of_block): Do not prevent PHI insertion
25092         for REFERENCE exprs here ...
25093         (eliminate_dom_walker::before_dom_children): ... but prevent
25094         their use here under similar conditions when applied to the
25095         IL after PRE optimizations.
25096
25097 2014-04-14  Richard Biener  <rguenther@suse.de>
25098
25099         * passes.def: Move early points-to after early SRA.
25100
25101 2014-04-14  Richard Biener  <rguenther@suse.de>
25102
25103         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
25104         check for which sign-changes we allow when forwarding
25105         a converted value into a switch.
25106
25107 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
25108
25109         * stor-layout.c (place_field): Finalize non-constant offset for the
25110         field, if any.
25111
25112 2014-04-14  Richard Biener  <rguenther@suse.de>
25113
25114         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
25115         as argument.
25116         (expand_switch_using_bit_tests_p): Likewise.
25117         (process_switch): Compute and pass on speed_p based on the
25118         switch stmt.
25119         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
25120         optimize_bb_for_speed_p.
25121
25122 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
25123
25124         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
25125         * function.h (struct function): Rename has_force_vect_loops into
25126         has_force_vectorize_loops.
25127         * lto-streamer-in.c (input_cfg): Adjust for renaming.
25128         (input_struct_function_base): Likewise.
25129         * lto-streamer-out.c (output_cfg): Likewise.
25130         (output_struct_function_base): Likewise.
25131         * omp-low.c (expand_omp_simd): Likewise.
25132         * tree-cfg.c (move_sese_region_to_fn): Likewise.
25133         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
25134         (version_loop_for_if_conversion): Likewise.
25135         (tree_if_conversion): Likewise.
25136         (main_tree_if_conversion): Likewise.
25137         (gate_tree_if_conversion): Likewise.
25138         * tree-inline.c (copy_loops): Likewise.
25139         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
25140         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
25141         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
25142         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
25143         * tree-vectorizer.c (vectorize_loops): Likewise.
25144         * tree-vectorizer.h (unlimited_cost_model): Likewise.
25145
25146 2014-04-14  Richard Biener  <rguenther@suse.de>
25147
25148         PR lto/60720
25149         * lto-streamer-out.c (wrap_refs): New function.
25150         (lto_output): Wrap symbol references in global initializes in
25151         type-preserving MEM_REFs.
25152
25153 2014-04-14  Christian Bruel  <christian.bruel@st.com>
25154
25155         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
25156
25157 2014-04-14  Christian Bruel  <christian.bruel@st.com>
25158
25159         * config/sh/sh.md (setmemqi): New expand pattern.
25160         * config/sh/sh.h (CLEAR_RATIO): Define.
25161         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
25162         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
25163
25164 2014-04-14  Richard Biener  <rguenther@suse.de>
25165
25166         PR middle-end/55022
25167         * fold-const.c (negate_expr_p): Don't negate directional rounding
25168         division.
25169         (fold_negate_expr): Likewise.
25170
25171 2014-04-14  Richard Biener  <rguenther@suse.de>
25172
25173         PR tree-optimization/59817
25174         PR tree-optimization/60453
25175         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
25176         recursion to catch all CHRECs in the scalar evolution and restrict
25177         the predicate for the remains appropriately.
25178
25179 2014-04-12  Catherine Moore  <clm@codesourcery.com>
25180
25181         * config/mips/constraints.md: Add new register constraint "kb".
25182         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
25183         (*movhi_internal): Likewise.
25184         (*movqi_internal): Likewise.
25185         * config/mips/mips.h (M16_STORE_REGS): New register class.
25186         (REG_CLASS_NAMES): Add M16_STORE_REGS.
25187         (REG_CLASS_CONTENTS): Likewise.
25188         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
25189
25190 2014-04-11  Tobias Burnus  <burnus@net-b.de>
25191
25192         PR c/60194
25193         * doc/invoke.texi (-Wformat-signedness): Document it.
25194         (Wformat=2): Mention that this enables -Wformat-signedness.
25195
25196 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25197
25198         * common/config/epiphany/epiphany-common.c
25199         (epiphany_option_optimization_table): Enable section anchors by
25200         default at -O1 or higher.
25201         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
25202         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
25203         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
25204         carries no extra cost.
25205         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
25206         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
25207         * config/epiphany/predicates.md (memclob_operand): New predicate.
25208         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
25209         Use memclob_operand predicate and X constraint for operand 3.
25210
25211 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25212
25213         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
25214         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
25215         its operands.
25216
25217 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25218
25219         PR rtl-optimization/60651
25220         * mode-switching.c (optimize_mode_switching): Make sure to emit
25221         sets of a lower numbered entity before sets of a higher numbered
25222         entity to a mode of the same or lower priority.
25223         When creating a seginfo for a basic block that starts with a code
25224         label, move the insertion point past the code label.
25225         (new_seginfo): Document and enforce requirement that
25226         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
25227         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
25228         * doc/tm.texi: Regenerate.
25229
25230 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25231
25232         PR target/60811
25233         * config/arc/arc.c (arc_save_restore): Fix assert typo.
25234
25235 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
25236
25237         * BASE-VER: Set to 4.10.0.
25238
25239 2014-04-11  Tobias Burnus  <burnus@net-b.de>
25240
25241         PR other/59055
25242         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
25243         * doc/gcc.texi (Service): Update description in the @menu
25244         * doc/invoke.texi (Option Summary): Remove misplaced and
25245         duplicated @menu.
25246
25247 2014-04-11  Steve Ellcey  <sellcey@mips.com>
25248             Jakub Jelinek  <jakub@redhat.com>
25249
25250         PR middle-end/60556
25251         * expr.c (convert_move): Use emit_store_flag_force instead of
25252         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
25253         argument to it.
25254
25255 2014-04-11  Richard Biener  <rguenther@suse.de>
25256
25257         PR middle-end/60797
25258         * varasm.c (assemble_alias): Avoid endless error reporting
25259         recursion by setting TREE_ASM_WRITTEN.
25260
25261 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25262
25263         * config/s390/s390.md: Add a splitter for NOT rtx.
25264
25265 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
25266
25267         PR rtl-optimization/60663
25268         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
25269
25270 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
25271             Jakub Jelinek  <jakub@redhat.com>
25272
25273         PR lto/60567
25274         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
25275         flag from decl_node to node.
25276
25277 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25278
25279         PR debug/60655
25280         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
25281         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
25282         ameliorating the cases where it can be.
25283
25284 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
25285
25286         Revert
25287         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
25288
25289         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
25290         (loadsync_<mode>): Change mode.
25291         (load_quadpti, store_quadpti): New.
25292         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
25293         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
25294         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
25295
25296 2014-04-09  Cong Hou  <congh@google.com>
25297
25298         PR testsuite/60773
25299         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
25300         documentation.
25301
25302 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25303
25304         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
25305         instead of vnor to exploit possible fusion opportunity in the
25306         future.
25307         (altivec_expand_vec_perm_const_le): Likewise.
25308
25309 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
25310
25311         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
25312         (loadsync_<mode>): Change mode.
25313         (load_quadpti, store_quadpti): New.
25314         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
25315         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
25316
25317 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
25318
25319         PR target/60763
25320         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
25321         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
25322         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
25323
25324 2014-04-08  Richard Biener  <rguenther@suse.de>
25325
25326         PR middle-end/60706
25327         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
25328         a 64bit widest int print double-int similar to on HWI64 hosts.
25329
25330 2014-04-08  Richard Biener  <rguenther@suse.de>
25331
25332         PR tree-optimization/60785
25333         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
25334         default defs properly.
25335
25336 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
25337
25338         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
25339         (Weffc++): Likewise.
25340
25341 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
25342
25343         * ipa-devirt.c (maybe_record_node): When node is not recorded,
25344         set completep to false rather than true.
25345
25346 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
25347
25348         PR target/60504
25349         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
25350         ARM_TARGET2_DWARF_FORMAT.
25351
25352 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
25353
25354         PR target/60609
25355         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
25356         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
25357         ADDR_DIFF_VEC.
25358
25359 2014-04-07  Richard Biener  <rguenther@suse.de>
25360
25361         PR tree-optimization/60766
25362         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
25363         (may_eliminate_iv): Convert cand_value_at result to desired type.
25364
25365 2014-04-07  Jason Merrill  <jason@redhat.com>
25366
25367         PR c++/60731
25368         * common.opt (-fno-gnu-unique): Add.
25369         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
25370
25371 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25372
25373         * haifa-sched.c: Fix outdated function reference and minor
25374         grammar errors in introductory comment.
25375
25376 2014-04-07  Richard Biener  <rguenther@suse.de>
25377
25378         PR middle-end/60750
25379         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
25380         for noreturn calls.
25381         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
25382
25383 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
25384
25385         PR debug/55794
25386         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
25387         size accounting for thunks.
25388         (pa_asm_output_mi_thunk): Use final_start_function() and
25389         final_end_function() to output function start and end directives.
25390
25391 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
25392
25393         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
25394         device specific ISA/ feature information. Remove short_sp and
25395         errata_skip ds.  Add avr_device_specific_features enum to have device
25396         specific info.
25397         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
25398         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
25399         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
25400         updated device specific info.
25401         * config/avr/avr-mcus.def: Merge device specific details to
25402         dev_attribute field.
25403         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
25404         errata_skip.
25405         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
25406         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
25407         assembler if RMW isa supported by current device.
25408         * config/avr/genmultilib.awk: Update as device info structure changed.
25409         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
25410
25411 2014-04-04  Cong Hou  <congh@google.com>
25412
25413         PR tree-optimization/60656
25414         * tree-vect-stmts.c (supportable_widening_operation):
25415         Fix a bug that elements in a vector with vect_used_by_reduction
25416         property are incorrectly reordered when the operation on it is not
25417         consistant with the one in reduction operation.
25418
25419 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
25420
25421         PR rtl-optimization/60155
25422         * gcse.c (record_set_data): New function.
25423         (single_set_gcse): New function.
25424         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
25425         (hoist_code): Likewise.
25426         (get_pressure_class_and_nregs): Likewise.
25427
25428 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
25429
25430         * explow.c (probe_stack_range): Emit a final optimization blockage.
25431
25432 2014-04-04  Anthony Green  <green@moxielogic.com>
25433
25434         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
25435         typos.
25436
25437 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
25438
25439         PR ipa/59626
25440         * lto-cgraph.c (input_overwrite_node): Check that partitioning
25441         flags are set only during streaming.
25442         * ipa.c (process_references, walk_polymorphic_call_targets,
25443         symtab_remove_unreachable_nodes): Drop bodies of always inline
25444         after early inlining.
25445         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
25446
25447 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
25448         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25449
25450         PR debug/60655
25451         * dwarf2out.c (const_ok_for_output_1): Reject expressions
25452         containing a NOT.
25453
25454 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25455
25456         PR bootstrap/60743
25457         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
25458         duration.
25459         (cortex_a53_fdivd): Likewise.
25460
25461 2014-04-04  Martin Jambor  <mjambor@suse.cz>
25462
25463         PR ipa/60640
25464         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
25465         Adjust all callers.
25466         * cgraph.c (clone_of_p): Also return true if thunks match.
25467         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
25468         cgraph_function_or_thunk_node and an obsolete comment.
25469         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
25470         file.
25471         (build_function_decl_skip_args): Likewise.
25472         (set_new_clone_decl_and_node_flags): New function.
25473         (duplicate_thunk_for_node): Likewise.
25474         (redirect_edge_duplicating_thunks): Likewise.
25475         (cgraph_clone_node): New parameter args_to_skip, pass it to
25476         redirect_edge_duplicating_thunks which is called instead of
25477         cgraph_redirect_edge_callee.
25478         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
25479         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
25480
25481 2014-04-04  Jeff Law  <law@redhat.com>
25482
25483         PR target/60657
25484         * config/arm/predicates.md (const_int_I_operand): New predicate.
25485         (const_int_M_operand): Similarly.
25486         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
25487         const_int_operand.
25488         (insv_t2, extv_reg, extzv_t2): Likewise.
25489         (load_multiple_with_writeback): Similarly for const_int_I_operand.
25490         (pop_multiple_with_writeback_and_return): Likewise.
25491         (vfp_pop_multiple_with_writeback): Likewise
25492
25493 2014-04-04  Richard Biener  <rguenther@suse.de>
25494
25495         PR ipa/60746
25496         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
25497         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
25498         non-GIMPLE_LABELs.
25499         * gimplify.h (gimple_add_tmp_var_fn): Declare.
25500         * gimplify.c (gimple_add_tmp_var_fn): New function.
25501         * gimple-expr.h (create_tmp_reg_fn): Declare.
25502         * gimple-expr.c (create_tmp_reg_fn): New function.
25503         * gimple-low.c (record_vars_into): Don't change cfun.
25504         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
25505         code generation without cfun.
25506
25507 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
25508
25509         PR bootstrap/60719
25510         * Makefile.in (install-driver): Fix shell scripting.
25511
25512 2014-04-03  Cong Hou  <congh@google.com>
25513
25514         PR tree-optimization/60505
25515         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
25516         threshold of number of iterations below which no vectorization
25517         will be done.
25518         * tree-vect-loop.c (new_loop_vec_info):
25519         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
25520         * tree-vect-loop.c (vect_analyze_loop_operations):
25521         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
25522         * tree-vect-loop.c (vect_transform_loop):
25523         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
25524         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
25525         of iterations of the loop and see if we should build the epilogue.
25526
25527 2014-04-03  Richard Biener  <rguenther@suse.de>
25528
25529         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
25530         (streamer_tree_cache_create): Adjust.
25531         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
25532         to allow optional nodes array.
25533         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
25534         (streamer_tree_cache_append): Likewise.
25535         (streamer_tree_cache_create): Create nodes array optionally
25536         as specified by parameter.
25537         * lto-streamer-out.c (create_output_block): Avoid maintaining
25538         the node array in the writer cache.
25539         (DFS_write_tree): Remove assertion.
25540         (produce_asm_for_decls): Free the out decl state hash table early.
25541         * lto-streamer-in.c (lto_data_in_create): Adjust for
25542         streamer_tree_cache_create prototype change.
25543
25544 2014-04-03  Richard Biener  <rguenther@suse.de>
25545
25546         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
25547         set TREE_CHAIN to NULL_TREE.
25548
25549 2014-04-03  Richard Biener  <rguenther@suse.de>
25550
25551         PR tree-optimization/60740
25552         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
25553         over all GIMPLE_COND operands.
25554
25555 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
25556
25557         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
25558         (Weffc++): Remove Scott's numbering, merge lists and reference
25559         Wnon-virtual-dtor.
25560
25561 2014-04-03  Nick Clifton  <nickc@redhat.com>
25562
25563         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
25564         properly.
25565
25566 2014-04-03  Martin Jambor  <mjambor@suse.cz>
25567
25568         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
25569         mention gcc_unreachable before failing.
25570         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
25571         removed symbols.
25572
25573 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
25574
25575         PR ipa/60659
25576         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
25577         inconsistent code and instead mark the context inconsistent.
25578         (possible_polymorphic_call_targets): For inconsistent contexts
25579         return empty complete list.
25580
25581 2014-04-02  Anthony Green  <green@moxielogic.com>
25582
25583         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
25584         (extendqisi2, extendhisi2): Define.
25585         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
25586         (WCHAR_TYPE): Change to unsigned int.
25587
25588 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25589
25590         PR tree-optimization/60733
25591         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
25592         insertion point for PHI candidates to be the end of the feeding
25593         block for the PHI argument.
25594
25595 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
25596
25597         PR rtl-optimization/60650
25598         * lra-constraints.c (process_alt_operands): Decrease reject for
25599         earlyclobber matching.
25600
25601 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25602
25603         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
25604
25605 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25606
25607         * config/spu/spu.c (pad_bb): Do not crash when the last
25608         insn is CODE_FOR_blockage.
25609
25610 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25611
25612         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
25613         lies outside the target mode.
25614
25615 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25616
25617         PR target/60735
25618         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
25619         software floating point or no floating point registers, do not
25620         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
25621         in GPRs that occurs after we tested for GPRs that would never be
25622         true.
25623
25624         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
25625         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
25626         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
25627         specifically allow DDmode, since that does not use the SPE SIMD
25628         instructions.
25629
25630 2014-04-02  Richard Biener  <rguenther@suse.de>
25631
25632         PR middle-end/60729
25633         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
25634         MODE_INTs.  Properly use negv_optab.
25635         (expand_abs): Likewise.
25636
25637 2014-04-02  Richard Biener  <rguenther@suse.de>
25638
25639         PR bootstrap/60719
25640         * Makefile.in (install-driver): Guard extra installs with special
25641         names properly.
25642
25643 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
25644
25645         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25646         Document vec_vgbbd.
25647
25648 2014-04-01  Richard Henderson  <rth@redhat.com>
25649
25650         PR target/60704
25651         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
25652         alternative enabled before register allocation.
25653
25654 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
25655
25656         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
25657         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
25658         typo.
25659         (nios2_large_got_address): Remove unneeded 'sym' parameter.
25660         (nios2_got_address): Update nios2_large_got_address call site.
25661         (nios2_delegitimize_address): New function.
25662         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
25663         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
25664         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
25665
25666 2014-04-01  Martin Husemann  <martin@duskware.de>
25667
25668         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
25669         for -mabi=32.
25670
25671 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
25672
25673         PR rtl-optimization/60604
25674         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
25675         check from register_operand.
25676         (register_operand): Redefine in terms of general_operand.
25677         (nonmemory_operand): Use register_operand for the non-constant cases.
25678
25679 2014-04-01  Richard Biener  <rguenther@suse.de>
25680
25681         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
25682
25683 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25684
25685         * doc/invoke.texi (mapp-regs): Clarify.
25686
25687 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
25688
25689         * config/i386/avx512fintrin.h (__v32hi): Define type.
25690         (__v64qi): Likewise.
25691         (_mm512_set1_epi8): Define.
25692         (_mm512_set1_epi16): Define.
25693         (_mm512_set4_epi32): Define.
25694         (_mm512_set4_epi64): Define.
25695         (_mm512_set4_pd): Define.
25696         (_mm512_set4_ps): Define.
25697         (_mm512_setr4_epi64): Define.
25698         (_mm512_setr4_epi32): Define.
25699         (_mm512_setr4_pd): Define.
25700         (_mm512_setr4_ps): Define.
25701         (_mm512_setzero_epi32): Define.
25702
25703 2014-03-31  Martin Jambor  <mjambor@suse.cz>
25704
25705         PR middle-end/60647
25706         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
25707         callsite_arguments_match_p.  Updated all callers.  Also check types of
25708         corresponding formal parameters and actual arguments.
25709         (not_all_callers_have_enough_arguments_p) Renamed to
25710         some_callers_have_mismatched_arguments_p.
25711
25712 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
25713
25714         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
25715
25716 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
25717
25718         PR target/60034
25719         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
25720         section anchor.
25721
25722 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
25723
25724         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
25725         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
25726         Split out
25727         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
25728         Use FMAMODE_NOVF512 mode iterator.
25729         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
25730         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
25731         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
25732         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
25733         Split out
25734         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
25735         Use VF_128_256 mode iterator.
25736         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
25737         Ditto.
25738
25739 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
25740
25741         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
25742         static chain if needed.
25743
25744 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
25745
25746         PR target/60697
25747         * lra-constraints.c (index_part_to_reg): New.
25748         (process_address): Use it.
25749
25750 2014-03-27  Jeff Law  <law@redhat.com>
25751             Jakub Jelinek  <jakub@redhat.com>
25752
25753         PR target/60648
25754         * expr.c (do_tablejump): Use simplify_gen_binary rather than
25755         gen_rtx_{PLUS,MULT} to build up the address expression.
25756
25757         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
25758         creating non-canonical RTL.
25759
25760 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
25761
25762         PR ipa/60243
25763         * ipa-inline.c (want_inline_small_function_p): Short circuit large
25764         functions; reorganize to make cheap checks first.
25765         (inline_small_functions): Do not estimate growth when dumping;
25766         it is expensive.
25767         * ipa-inline.h (inline_summary): Add min_size.
25768         (growth_likely_positive): New function.
25769         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
25770         (set_cond_stmt_execution_predicate): Cleanup.
25771         (estimate_edge_size_and_time): Compute min_size.
25772         (estimate_calls_size_and_time): Likewise.
25773         (estimate_node_size_and_time): Likewise.
25774         (inline_update_overall_summary): Update min_size.
25775         (do_estimate_edge_time): Likewise.
25776         (do_estimate_edge_size): Update.
25777         (do_estimate_edge_hints): Update.
25778         (growth_likely_positive): New function.
25779
25780 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
25781
25782         PR target/60693
25783         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
25784         also if addr has VOIDmode.
25785
25786 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25787
25788         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
25789         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
25790         Declare extern.
25791         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
25792         instructions as well as AdvancedSIMD loads.
25793
25794 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25795
25796         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
25797         Use crypto_aese type.
25798         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
25799         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
25800         crypto_aese, crypto_aesmc.  Move to types.md.
25801         * config/arm/types.md (crypto_aes): Split into crypto_aese,
25802         crypto_aesmc.
25803         * config/arm/iterators.md (crypto_type): Likewise.
25804
25805 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
25806
25807         * cgraph.c: Include expr.h and tree-dfa.h.
25808         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
25809         remove LHS.
25810
25811 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
25812
25813         PR target/60675
25814         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
25815         regs from checking multi-reg pseudos.
25816
25817 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25818
25819         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
25820
25821 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25822
25823         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
25824         if it would clobber the stack pointer, even temporarily.
25825
25826 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
25827
25828         * mode-switching.c: Make small adjustments to the top comment.
25829
25830 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
25831
25832         * config/rs6000/constraints.md (wD constraint): New constraint to
25833         match the constant integer to get the top DImode/DFmode out of a
25834         vector in a VSX register.
25835
25836         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
25837         match the constant integer to get the top DImode/DFmode out of a
25838         vector in a VSX register.
25839
25840         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
25841         for ISA 2.07.
25842
25843         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25844         vbpermq builtins.
25845
25846         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
25847         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
25848
25849         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
25850         Optimize vec_extract of 64-bit values, where the value being
25851         extracted is in the top word, where we can use scalar
25852         instructions.  Add direct move and store support.  Combine the big
25853         endian/little endian vector select load support into a single insn.
25854         (vsx_extract_<mode>_internal1): Likewise.
25855         (vsx_extract_<mode>_internal2): Likewise.
25856         (vsx_extract_<mode>_load): Likewise.
25857         (vsx_extract_<mode>_store): Likewise.
25858         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
25859         combined into vsx_extract_<mode>_load.
25860         (vsx_extract_<mode>_one_le): Likewise.
25861
25862         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
25863         define the top 64-bit vector element.
25864
25865         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
25866         constraint.
25867
25868         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25869         Document vec_vbpermq builtin.
25870
25871         PR target/60672
25872         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
25873         enable use of xxsldwi and xxpermdi builtin functions.
25874         (vec_xxpermdi): Likewise.
25875
25876         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25877         Document use of vec_xxsldwi and vec_xxpermdi builtins.
25878
25879 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
25880
25881         PR rtl-optimization/60650
25882         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
25883         first_p.  Use it.
25884         (find_spills_for): New.
25885         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
25886         Spill all pseudos on the second iteration.
25887
25888 2014-03-27  Marek Polacek  <polacek@redhat.com>
25889
25890         PR c/50347
25891         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
25892         types.
25893
25894 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25895
25896         * config/s390/s390.c (s390_can_use_return_insn): Check for
25897         call-saved FPRs on 31 bit.
25898
25899 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
25900
25901         PR middle-end/60682
25902         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
25903         if they need regimplification, just drop them instead of
25904         calling gimple_regimplify_operands on them.
25905
25906 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
25907
25908         PR target/60580
25909         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
25910         (aarch64_frame_pointer_required): Adjust logic.
25911         (aarch64_can_eliminate): Adjust logic.
25912         (aarch64_override_options_after_change): Adjust logic.
25913
25914 2014-03-27  Dehao Chen  <dehao@google.com>
25915
25916         * ipa-inline.c (early_inliner): Update node's inline info.
25917
25918 2014-03-26  Dehao Chen  <dehao@google.com>
25919
25920         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
25921         compiler inserted conditional jumps for NAN float check.
25922
25923 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
25924
25925         * ubsan.h (ubsan_create_data): Change second argument's type
25926         to const location_t *.
25927         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
25928         _("<unknown>").
25929         (ubsan_create_data): Change second argument to const location_t *PLOC.
25930         Create Loc field whenever PLOC is non-NULL.
25931         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
25932         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
25933         callers.
25934
25935         PR other/59545
25936         * real.c (real_to_integer2): Change type of low to UHWI.
25937
25938 2014-03-26  Tobias Burnus  <burnus@net-b.de>
25939
25940         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
25941         (CILK_SELF_SPECS): New define.
25942         (driver_self_specs): Use it.
25943
25944 2014-03-26  Richard Biener  <rguenther@suse.de>
25945
25946         * tree-pretty-print.c (percent_K_format): Implement special
25947         case for LTO and its stripped down BLOCK tree.
25948
25949 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
25950
25951         PR sanitizer/60636
25952         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
25953
25954         * tree-vrp.c (simplify_internal_call_using_ranges): If only
25955         one range is range_int_cst_p, but not both, at least optimize
25956         addition/subtraction of 0 and multiplication by 0 or 1.
25957         * gimple-fold.c (gimple_fold_call): Fold
25958         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
25959         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
25960         INTEGER_CSTs, try to fold at least x * 0 and y - y.
25961
25962 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
25963
25964         PR rtl-optimization/60452
25965         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
25966         <case REG>: Return 1 for invalid offsets from the frame pointer.
25967
25968 2014-03-26  Marek Polacek  <polacek@redhat.com>
25969
25970         PR c/37428
25971         * doc/extend.texi (C Extensions): Mention variable-length arrays in
25972         a structure/union.
25973
25974 2014-03-26  Marek Polacek  <polacek@redhat.com>
25975
25976         PR c/39525
25977         * doc/extend.texi (Designated Inits): Describe what happens to omitted
25978         field members.
25979
25980 2014-03-26  Marek Polacek  <polacek@redhat.com>
25981
25982         PR other/59545
25983         * ira-color.c (update_conflict_hard_regno_costs): Perform the
25984         multiplication in unsigned type.
25985
25986 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
25987
25988         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
25989
25990 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
25991
25992         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
25993
25994 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
25995
25996         PR ipa/60315
25997         * cif-code.def (UNREACHABLE) New code.
25998         * ipa-inline.c (inline_small_functions): Skip edges to
25999         __builtlin_unreachable.
26000         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
26001         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
26002         predicate to __bulitin_unreachable.
26003         (set_cond_stmt_execution_predicate): Fix issue when
26004         invert_tree_comparison returns ERROR_MARK.
26005         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
26006         propagate to inline clones.
26007         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
26008         to unreachable.
26009         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
26010         * cgraphclones.c (cgraph_clone_node): If call destination is already
26011         ureachable, do not redirect it back.
26012         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
26013         unreachable.
26014
26015 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
26016
26017         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
26018         Do not modify inline clones.
26019
26020 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
26021
26022         * config/i386/i386.md (general_sext_operand): New mode attr.
26023         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
26024         don't generate (sign_extend (const_int)).
26025         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
26026         operands[2].  Use We constraint instead of <i> and
26027         <general_sext_operand> predicate instead of <general_operand>.
26028         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
26029         * config/i386/constraints.md (We): New constraint.
26030         * config/i386/predicates.md (x86_64_sext_operand,
26031         sext_operand): New predicates.
26032
26033 2014-03-25  Martin Jambor  <mjambor@suse.cz>
26034
26035         PR ipa/60600
26036         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
26037         inconsistent devirtualizations to __builtin_unreachable.
26038
26039 2014-03-25  Marek Polacek  <polacek@redhat.com>
26040
26041         PR c/35449
26042         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
26043
26044 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
26045
26046         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
26047         order of elements for big-endian.
26048
26049 2014-03-25  Richard Biener  <rguenther@suse.de>
26050
26051         PR middle-end/60635
26052         * gimplify-me.c (gimple_regimplify_operands): Update the
26053         re-gimplifed stmt.
26054
26055 2014-03-25  Martin Jambor  <mjambor@suse.cz>
26056
26057         PR ipa/59176
26058         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
26059         (lto_output_varpool_node): Likewise.
26060         (input_overwrite_node): Likewise.
26061         (input_varpool_node): Likewise.
26062
26063 2014-03-25  Richard Biener  <rguenther@suse.de>
26064
26065         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
26066         (run_gcc): Likewise.
26067
26068 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
26069
26070         * combine.c (simplify_compare_const): Add MODE argument.
26071         Handle mode_width 0 as very large mode_width.
26072         (try_combine, simplify_comparison): Adjust callers.
26073
26074         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
26075         type to avoid signed integer overflow.
26076         * explow.c (plus_constant): Likewise.
26077
26078 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26079
26080         * doc/generic.texi: Correct typos.
26081
26082 2014-03-24  Tobias Burnus  <burnus@net-b.de>
26083
26084         * doc/invoke.texi (-flto): Expand section about
26085         using static libraries with LTO.
26086
26087 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26088
26089         PR rtl-optimization/60501
26090         * optabs.def (addptr3_optab): New optab.
26091         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
26092         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
26093         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
26094
26095         * lra.c (emit_add3_insn): Use the addptr pattern if available.
26096
26097         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
26098
26099 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
26100
26101         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
26102         _mm512_set1_pd.
26103
26104         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
26105         (_mm256_undefined_ps): Define.
26106         (_mm256_undefined_pd): Define.
26107         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
26108         (_mm_undefined_pd): Define.
26109         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
26110         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
26111         (_mm512_undefined_ps): Define.
26112         (_mm512_undefined_pd): Define.
26113         Use _mm*_undefined_*.
26114         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
26115
26116 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
26117
26118         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
26119         (lshr_simd): DI mode added.
26120         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
26121         (aarch64_ushr_simddi): Likewise.
26122         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
26123         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
26124         (vshrd_n_u64): Likewise.
26125
26126 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26127
26128         * Makefile.in (s-macro_list): Depend on cc1.
26129
26130 2014-03-23  Teresa Johnson  <tejohnson@google.com>
26131
26132         * ipa-utils.c (ipa_print_order): Use specified dump file.
26133
26134 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
26135
26136         PR rtl-optimization/60601
26137         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
26138
26139         * gcc.c (eval_spec_function): Initialize save_growing_value.
26140
26141 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
26142
26143         PR sanitizer/60613
26144         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
26145         code == MINUS_EXPR, never swap op0 with op1.
26146
26147         * toplev.c (init_local_tick): Avoid signed integer multiplication
26148         overflow.
26149         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
26150         shift by first operand's bitsize.
26151
26152 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
26153
26154         PR target/60610
26155         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
26156         redefine to 1 or 0.
26157         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
26158         TARGET_ISA_64BIT_P(x).
26159
26160 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26161
26162         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
26163         pattern for vector nor instead of subtract from splat(-1).
26164         (altivec_expand_vec_perm_const_le): Likewise.
26165
26166 2014-03-21  Richard Henderson  <rth@twiddle.net>
26167
26168         PR target/60598
26169         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
26170         related insns after epilogue_completed.
26171
26172 2014-03-21  Martin Jambor  <mjambor@suse.cz>
26173
26174         PR ipa/59176
26175         * cgraph.h (symtab_node): New flag body_removed.
26176         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
26177         when removing bodies.
26178         * symtab.c (dump_symtab_base): Dump body_removed flag.
26179         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
26180         had their bodies removed.
26181
26182 2014-03-21  Martin Jambor  <mjambor@suse.cz>
26183
26184         PR ipa/60419
26185         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
26186         in the border.
26187
26188 2014-03-21  Richard Biener  <rguenther@suse.de>
26189
26190         PR tree-optimization/60577
26191         * tree-core.h (struct tree_base): Document nothrow_flag use
26192         in DECL_NONALIASED.
26193         * tree.h (DECL_NONALIASED): New.
26194         (may_be_aliased): Adjust.
26195         * coverage.c (build_var): Set DECL_NONALIASED.
26196
26197 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26198
26199         * expr.c (expand_expr_real_1): Remove outdated comment.
26200
26201 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
26202
26203         PR middle-end/60597
26204         * ira.c (adjust_cleared_regs): Call copy_rtx on
26205         *reg_equiv[REGNO (loc)].src_p before passing it to
26206         simplify_replace_fn_rtx.
26207
26208         PR target/60568
26209         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
26210         into CONST, put pic register as first operand of PLUS.  Use
26211         gen_const_mem for both 32-bit and 64-bit PIC got loads.
26212
26213 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26214
26215         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
26216
26217 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26218
26219         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
26220         around for store forwarding issue in the FPU on the UT699.
26221         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
26222         loads and operations if -mfix-ut699 is specified.
26223         (divtf3_hq): Tweak attribute.
26224         (sqrttf2_hq): Likewise.
26225
26226 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26227
26228         * calls.c (store_one_arg): Remove incorrect const qualification on the
26229         type of the temporary.
26230         * cfgexpand.c (expand_return): Likewise.
26231         * expr.c (expand_constructor): Likewise.
26232         (expand_expr_real_1): Likewise.
26233
26234 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
26235
26236         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
26237         of parts.
26238
26239 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
26240
26241         PR target/60039
26242         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
26243
26244 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
26245
26246         * config/arm/aarch-common-protos.h
26247         (alu_cost_table): Fix spelling of "extend".
26248         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
26249
26250 2014-03-19  Richard Biener  <rguenther@suse.de>
26251
26252         PR middle-end/60553
26253         * tree-core.h (tree_type_common): Re-order pointer members
26254         to reduce recursion depth during GC walks.
26255
26256 2014-03-19  Marek Polacek  <polacek@redhat.com>
26257
26258         PR sanitizer/60569
26259         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
26260         before accessing it.
26261
26262 2014-03-19  Richard Biener  <rguenther@suse.de>
26263
26264         PR lto/59543
26265         * lto-streamer-in.c (input_function): In WPA stage do not drop
26266         debug stmts.
26267
26268 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
26269
26270         PR tree-optimization/60559
26271         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
26272         with build_zero_cst assignment.
26273
26274 2014-03-18  Kai Tietz  <ktietz@redhat.com>
26275
26276         PR rtl-optimization/56356
26277         * sdbout.c (sdbout_parms): Verify that parms'
26278         incoming argument is valid.
26279         (sdbout_reg_parms): Likewise.
26280
26281 2014-03-18  Richard Henderson  <rth@redhat.com>
26282
26283         PR target/60562
26284         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
26285         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
26286         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
26287
26288 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
26289
26290         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
26291         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
26292         Italicize plugin event names in description.  Explain that
26293         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
26294         Remind that no GCC functions should be called after PLUGIN_FINISH.
26295         Explain what pragmas with expansion are.
26296
26297 2014-03-18  Martin Liska  <mliska@suse.cz>
26298
26299         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
26300         gimple call statement is update.
26301         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
26302         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
26303
26304 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
26305
26306         PR sanitizer/60557
26307         * ubsan.c (ubsan_instrument_unreachable): Call
26308         initialize_sanitizer_builtins.
26309         (ubsan_pass): Likewise.
26310
26311         PR sanitizer/60535
26312         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
26313         varpool_finalize_decl instead of rest_of_decl_compilation.
26314
26315 2014-03-18  Richard Biener  <rguenther@suse.de>
26316
26317         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
26318         by using bitmap_and_compl instead of bitmap_and_compl_into.
26319         (df_rd_transfer_function): Likewise.
26320
26321 2014-03-18  Richard Biener  <rguenther@suse.de>
26322
26323         * doc/lto.texi (fresolution): Fix typo.
26324
26325 2014-03-18  Richard Biener  <rguenther@suse.de>
26326
26327         * doc/invoke.texi (flto): Update for changes in 4.9.
26328
26329 2014-03-18  Richard Biener  <rguenther@suse.de>
26330
26331         * doc/loop.texi: Remove section on the removed lambda framework.
26332         Update loop docs with recent changes in preserving loop structure.
26333
26334 2014-03-18  Richard Biener  <rguenther@suse.de>
26335
26336         * doc/lto.texi (-fresolution): Document.
26337
26338 2014-03-18  Richard Biener  <rguenther@suse.de>
26339
26340         * doc/contrib.texi: Adjust my name.
26341
26342 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
26343
26344         PR ipa/58721
26345         * internal-fn.c: Include diagnostic-core.h.
26346         (expand_BUILTIN_EXPECT): New function.
26347         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
26348         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
26349         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
26350         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
26351         IFN_BUILTIN_EXPECT.
26352         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
26353         Revert 3 argument __builtin_expect code.
26354         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
26355         * gimple-fold.c (gimple_fold_call): Likewise.
26356         * tree.h (fold_builtin_expect): New prototype.
26357         * builtins.c (build_builtin_expect_predicate): Add predictor
26358         argument, if non-NULL, create 3 argument __builtin_expect.
26359         (fold_builtin_expect): No longer static.  Add ARG2 argument,
26360         pass it through to build_builtin_expect_predicate.
26361         (fold_builtin_2): Adjust caller.
26362         (fold_builtin_3): Handle BUILT_IN_EXPECT.
26363         * internal-fn.def (BUILTIN_EXPECT): New.
26364
26365 2014-03-18  Tobias Burnus  <burnus@net-b.de>
26366
26367         PR ipa/58721
26368         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
26369         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
26370         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
26371
26372 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
26373
26374         PR ipa/58721
26375         * predict.c (combine_predictions_for_bb): Fix up formatting.
26376         (expr_expected_value_1, expr_expected_value): Add predictor argument,
26377         fill what it points to if non-NULL.
26378         (tree_predict_by_opcode): Adjust caller, use the predictor.
26379         * predict.def (PRED_COMPARE_AND_SWAP): Add.
26380
26381 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
26382
26383         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
26384         proper constant for the store mode.
26385
26386 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
26387
26388         * symtab.c (change_decl_assembler_name): Fix transparent alias
26389         chain construction.
26390
26391 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
26392
26393         * config/aarch64/aarch64.c: Correct the comments about the
26394         aarch64 stack layout.
26395
26396 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
26397
26398         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
26399         check for GF_OMP_FOR_KIND_FOR.
26400
26401 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
26402
26403         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
26404         ymm and zmm register names.
26405
26406 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
26407
26408         PR target/60516
26409         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
26410         note creation for the 2010-08-31 changes.
26411
26412 2014-03-17  Marek Polacek  <polacek@redhat.com>
26413
26414         PR middle-end/60534
26415         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
26416         as -fno-tree-loop-vectorize.
26417         (expand_omp_simd): Likewise.
26418
26419 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
26420
26421         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
26422         (eligible_for_call_delay): New prototype.
26423         * config/sparc/sparc.c (tls_call_delay): Rename into...
26424         (eligible_for_call_delay): ...this.  Return false if the instruction
26425         cannot be put in the delay slot of a branch.
26426         (eligible_for_restore_insn): Simplify.
26427         (eligible_for_return_delay): Return false if the instruction cannot be
26428         put in the delay slot of a branch and simplify.
26429         (eligible_for_sibcall_delay): Return false if the instruction cannot be
26430         put in the delay slot of a branch.
26431         * config/sparc/sparc.md (fix_ut699): New attribute.
26432         (tls_call_delay): Delete.
26433         (in_call_delay): Reimplement.
26434         (eligible_for_sibcall_delay): Rename into...
26435         (in_sibcall_delay): ...this.
26436         (eligible_for_return_delay): Rename into...
26437         (in_return_delay): ...this.
26438         (in_branch_delay): Reimplement.
26439         (in_uncond_branch_delay): Delete.
26440         (in_annul_branch_delay): Delete.
26441
26442 2014-03-14  Richard Henderson  <rth@redhat.com>
26443
26444         PR target/60525
26445         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
26446         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
26447         (*floathi<X87MODEF>2_i387_with_temp): Remove.
26448         (floathi splitters): Remove.
26449         (float<SWI48x>xf2): New pattern.
26450         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
26451         code that tried to handle DImode for 32-bit, but which was excluded
26452         by the pattern's condition.  Drop allocation of stack temporary.
26453         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
26454         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
26455         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
26456         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
26457         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
26458         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
26459         (*float<SWI48><MODEF>2_sse_interunit): Remove.
26460         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
26461         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
26462         (*float<SWI48x><X87MODEF>2_i387): Remove.
26463         (all float _with_temp splitters): Remove.
26464         (*float<SWI48x><MODEF>2_i387): New pattern.
26465         (*float<SWI48><MODEF>2_sse): New pattern.
26466         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
26467         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
26468
26469 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
26470             Marek Polacek  <polacek@redhat.com>
26471
26472         PR middle-end/60484
26473         * common.opt (dump_base_name_prefixed): New Variable.
26474         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
26475         if x_dump_base_name_prefixed is already set, set it at the end.
26476
26477 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
26478
26479         PR rtl-optimization/60508
26480         * lra-constraints.c (get_reload_reg): Add new parameter
26481         in_subreg_p.
26482         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
26483         Pass the new parameter values.
26484
26485 2014-03-14  Richard Biener  <rguenther@suse.de>
26486
26487         * common.opt: Revert unintented changes from r205065.
26488         * opts.c: Likewise.
26489
26490 2014-03-14  Richard Biener  <rguenther@suse.de>
26491
26492         PR middle-end/60518
26493         * cfghooks.c (split_block): Properly adjust all loops the
26494         block was a latch of.
26495
26496 2014-03-14  Martin Jambor  <mjambor@suse.cz>
26497
26498         PR lto/60461
26499         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
26500         and simplify it.
26501
26502 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
26503
26504         PR target/59396
26505         * config/avr/avr.c (avr_set_current_function): Pass function name
26506         through default_strip_name_encoding before sanity checking instead
26507         of skipping the first char of the assembler name.
26508
26509 2014-03-13  Richard Henderson  <rth@redhat.com>
26510
26511         PR debug/60438
26512         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
26513         (ix86_force_to_memory, ix86_free_from_memory): Remove.
26514         * config/i386/i386-protos.h: Likewise.
26515         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
26516         in the expander instead of a splitter.
26517         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
26518         any possibility of requiring a memory.
26519         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
26520         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
26521         (fp branch splitters): Update for ix86_split_fp_branch.
26522         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
26523         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
26524         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
26525         (*fop_<MODEF>_2_i387): Remove f/r alternative.
26526         (*fop_<MODEF>_3_i387): Likewise.
26527         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
26528         (splitters for the fop_* register patterns): Remove.
26529         (fscalexf4_i387): Rename from *fscalexf4_i387.
26530         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
26531
26532 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
26533
26534         PR tree-optimization/59779
26535         * tree-dfa.c (get_ref_base_and_extent): Use double_int
26536         type for bitsize and maxsize instead of HOST_WIDE_INT.
26537
26538 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
26539
26540         PR rtl-optimization/57320
26541         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
26542         the CFG after thread_prologue_and_epilogue_insns.
26543
26544 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
26545
26546         PR rtl-optimization/57189
26547         * lra-constraints.c (process_alt_operands): Disfavor spilling
26548         vector pseudos.
26549
26550 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
26551
26552         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
26553
26554 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
26555
26556         PR tree-optimization/59025
26557         PR middle-end/60418
26558         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
26559         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
26560
26561 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
26562
26563         PR target/60486
26564         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
26565         calls of avr_out_plus_1.
26566
26567 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
26568
26569         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
26570         BB's single pred and update the father loop's latch info later.
26571
26572 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
26573
26574         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
26575         (VEC_M): Likewise.
26576         (VEC_N): Likewise.
26577         (VEC_R): Likewise.
26578         (VEC_base): Likewise.
26579         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
26580         registers, we need to swap double words in little endian mode.
26581
26582         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
26583         to be a container mode for 128-bit integer operations added in ISA
26584         2.07.  Unlike TImode and PTImode, the preferred register set is
26585         the Altivec/VMX registers for the 128-bit operations.
26586
26587         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
26588         declarations.
26589         (rs6000_split_128bit_ok_p): Likewise.
26590
26591         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
26592         macros for creating ISA 2.07 normal and overloaded builtin
26593         functions with 3 arguments.
26594         (BU_P8V_OVERLOAD_3): Likewise.
26595         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
26596         for use as overloaded functions.
26597         (VPERM_1TI_UNS): Likewise.
26598         (VSEL_1TI): Likewise.
26599         (VSEL_1TI_UNS): Likewise.
26600         (ST_INTERNAL_1ti): Likewise.
26601         (LD_INTERNAL_1ti): Likewise.
26602         (XXSEL_1TI): Likewise.
26603         (XXSEL_1TI_UNS): Likewise.
26604         (VPERM_1TI): Likewise.
26605         (VPERM_1TI_UNS): Likewise.
26606         (XXPERMDI_1TI): Likewise.
26607         (SET_1TI): Likewise.
26608         (LXVD2X_V1TI): Likewise.
26609         (STXVD2X_V1TI): Likewise.
26610         (VEC_INIT_V1TI): Likewise.
26611         (VEC_SET_V1TI): Likewise.
26612         (VEC_EXT_V1TI): Likewise.
26613         (EQV_V1TI): Likewise.
26614         (NAND_V1TI): Likewise.
26615         (ORC_V1TI): Likewise.
26616         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
26617         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
26618         overloaded builtin.
26619         (VADDUQM): Likewise.
26620         (VSUBCUQ): Likewise.
26621         (VADDEUQM): Likewise.
26622         (VADDECUQ): Likewise.
26623         (VSUBEUQM): Likewise.
26624         (VSUBECUQ): Likewise.
26625
26626         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
26627         __int128_t and __uint128_t types.
26628         (__uint128_type): Likewise.
26629         (altivec_categorize_keyword): Add support for vector __int128_t,
26630         vector __uint128_t, vector __int128, and vector unsigned __int128
26631         as a container type for TImode operations that need to be done in
26632         VSX/Altivec registers.
26633         (rs6000_macro_to_expand): Likewise.
26634         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
26635         to support 128-bit integer instructions vaddcuq, vadduqm,
26636         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
26637         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
26638
26639         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
26640         for V1TImode, and set up preferences to use VSX/Altivec registers.
26641         Setup VSX reload handlers.
26642         (rs6000_debug_reg_global): Likewise.
26643         (rs6000_init_hard_regno_mode_ok): Likewise.
26644         (rs6000_preferred_simd_mode): Likewise.
26645         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
26646         (easy_altivec_constant): Likewise.
26647         (output_vec_const_move): Likewise.
26648         (rs6000_expand_vector_set): Convert V1TImode set and extract to
26649         simple move.
26650         (rs6000_expand_vector_extract): Likewise.
26651         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
26652         addressing.
26653         (rs6000_const_vec): Add support for V1TImode.
26654         (rs6000_emit_le_vsx_load): Swap double words when loading or
26655         storing TImode/V1TImode.
26656         (rs6000_emit_le_vsx_store): Likewise.
26657         (rs6000_emit_le_vsx_move): Likewise.
26658         (rs6000_emit_move): Add support for V1TImode.
26659         (altivec_expand_ld_builtin): Likewise.
26660         (altivec_expand_st_builtin): Likewise.
26661         (altivec_expand_vec_init_builtin): Likewise.
26662         (altivec_expand_builtin): Likewise.
26663         (rs6000_init_builtins): Add support for V1TImode type.  Add
26664         support for ISA 2.07 128-bit integer builtins.  Define type names
26665         for the VSX/Altivec vector types.
26666         (altivec_init_builtins): Add support for overloaded vector
26667         functions with V1TImode type.
26668         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
26669         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
26670         external function.
26671         (rs6000_split_128bit_ok_p): Likewise.
26672         (rs6000_handle_altivec_attribute): Create V1TImode from vector
26673         __int128_t and vector __uint128_t.
26674
26675         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
26676         and mode attributes.
26677         (VSX_M): Likewise.
26678         (VSX_M2): Likewise.
26679         (VSm): Likewise.
26680         (VSs): Likewise.
26681         (VSr): Likewise.
26682         (VSv): Likewise.
26683         (VS_scalar): Likewise.
26684         (VS_double): Likewise.
26685         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
26686
26687         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
26688         we support the ISA 2.07 128-bit integer arithmetic instructions.
26689         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
26690         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
26691         and TImode types for use with the builtin functions.
26692         (V1TI_type_node): Likewise.
26693         (unsigned_V1TI_type_node): Likewise.
26694         (intTI_type_internal_node): Likewise.
26695         (uintTI_type_internal_node): Likewise.
26696
26697         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
26698         128-bit builtin functions.
26699         (UNSPEC_VADDEUQM): Likewise.
26700         (UNSPEC_VADDECUQ): Likewise.
26701         (UNSPEC_VSUBCUQ): Likewise.
26702         (UNSPEC_VSUBEUQM): Likewise.
26703         (UNSPEC_VSUBECUQ): Likewise.
26704         (VM): Add V1TImode to vector mode iterators.
26705         (VM2): Likewise.
26706         (VI_unit): Likewise.
26707         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
26708         (altivec_vaddcuq): Likewise.
26709         (altivec_vsubuqm): Likewise.
26710         (altivec_vsubcuq): Likewise.
26711         (altivec_vaddeuqm): Likewise.
26712         (altivec_vaddecuq): Likewise.
26713         (altivec_vsubeuqm): Likewise.
26714         (altivec_vsubecuq): Likewise.
26715
26716         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
26717         mode iterators.
26718         (BOOL_128): Likewise.
26719         (BOOL_REGS_OUTPUT): Likewise.
26720         (BOOL_REGS_OP1): Likewise.
26721         (BOOL_REGS_OP2): Likewise.
26722         (BOOL_REGS_UNARY): Likewise.
26723         (BOOL_REGS_AND_CR0): Likewise.
26724
26725         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
26726         128-bit integer builtin support.
26727         (vec_vadduqm): Likewise.
26728         (vec_vaddecuq): Likewise.
26729         (vec_vaddeuqm): Likewise.
26730         (vec_vsubecuq): Likewise.
26731         (vec_vsubeuqm): Likewise.
26732         (vec_vsubcuq): Likewise.
26733         (vec_vsubuqm): Likewise.
26734
26735         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
26736         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
26737         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
26738         128-bit integer add/subtract to ISA 2.07.
26739
26740 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
26741
26742         * config/arc/arc.c (arc_predicate_delay_insns):
26743         Fix third argument passed to conditionalize_nonjump.
26744
26745 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
26746
26747         * config/aarch64/aarch64-builtins.c
26748         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
26749         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
26750         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
26751         instead of __builtin_lfloor.
26752         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
26753
26754 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
26755
26756         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
26757         (tree_ssa_ifcombine_bb_1): New function.
26758         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
26759         is an empty forwarder block to then_bb or vice versa and then_bb
26760         and else_bb are effectively swapped.
26761
26762 2014-03-12  Christian Bruel  <christian.bruel@st.com>
26763
26764         PR target/60264
26765         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
26766         REG_CFA_DEF_CFA note.
26767         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
26768         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
26769
26770 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26771
26772         PR tree-optimization/60454
26773         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
26774
26775 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26776
26777         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
26778         Do not define target_cpu_default2 to generic.
26779         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
26780         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
26781         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
26782
26783 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
26784             Marc Glisse  <marc.glisse@inria.fr>
26785
26786         PR tree-optimization/60502
26787         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
26788         instead of build_low_bits_mask.
26789
26790 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
26791
26792         PR middle-end/60482
26793         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
26794         if there are multiple uses, but op doesn't live on E edge.
26795         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
26796         clobber stmts before __builtin_unreachable.
26797
26798 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
26799
26800         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
26801         hard_frame_pointer_rtx.
26802         * cse.c (cse_insn): Remove volatile check.
26803         * cselib.c (cselib_process_insn): Likewise.
26804         * dse.c (scan_insn): Likewise.
26805
26806 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
26807
26808         * config/arc/arc.c (conditionalize_nonjump): New function,
26809         broken out of ...
26810         (arc_ifcvt): ... this.
26811         (arc_predicate_delay_insns): Use it.
26812
26813 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
26814
26815         * config/arc/predicates.md (extend_operand): During/after reload,
26816         allow const_int_operand.
26817         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
26818         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
26819         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
26820         to "i".
26821         (umulsi3_highpart_i): Likewise.
26822
26823 2014-03-11  Richard Biener  <rguenther@suse.de>
26824
26825         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
26826         Add asserts to guard possible wrong-code bugs.
26827
26828 2014-03-11  Richard Biener  <rguenther@suse.de>
26829
26830         PR tree-optimization/60429
26831         PR tree-optimization/60485
26832         * tree-ssa-structalias.c (set_union_with_increment): Properly
26833         take into account all fields that overlap the shifted vars.
26834         (do_sd_constraint): Likewise.
26835         (do_ds_constraint): Likewise.
26836         (get_constraint_for_ptr_offset): Likewise.
26837
26838 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
26839
26840         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
26841         (nios2_compute_frame_layout):
26842         Add calculation of cfun->machine->fp_save_offset.
26843         (nios2_expand_prologue): Correct setting of frame pointer register
26844         in prologue.
26845         (nios2_expand_epilogue): Update recovery of stack pointer from
26846         frame pointer accordingly.
26847         (nios2_initial_elimination_offset): Update calculation of offset
26848         for eliminating to HARD_FRAME_POINTER_REGNUM.
26849
26850 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
26851
26852         PR ipa/60457
26853         * ipa.c (symtab_remove_unreachable_nodes): Don't call
26854         cgraph_get_create_node on VAR_DECLs.
26855
26856 2014-03-10  Richard Biener  <rguenther@suse.de>
26857
26858         PR middle-end/60474
26859         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
26860
26861 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
26862
26863         * config/vms/vms.opt (vms_float_format): New variable.
26864
26865 2014-03-08  Tobias Burnus  <burnus@net-b.de>
26866
26867         * doc/invoke.texi (-fcilkplus): Update implementation status.
26868
26869 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
26870             Richard Biener  <rguenther@suse.de>
26871
26872         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
26873         consistently accross all TUs.
26874         (run_gcc): Enable -fshort-double automatically at link at link-time
26875         and disallow override.
26876
26877 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
26878
26879         PR target/58271
26880         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
26881         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
26882         if they can't be used.
26883
26884 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26885
26886         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
26887         for Solaris 11/x86 ld.
26888         * configure: Regenerate.
26889
26890 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26891
26892         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
26893         (LIB_TLS_SPEC): Save as ld_tls_libs.
26894         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
26895         (HAVE_AS_IX86_TLSLDM): New test.
26896         * configure, config.in: Regenerate.
26897         * config/i386/i386.c (legitimize_tls_address): Fall back to
26898         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
26899         cannot support TLS_MODEL_LOCAL_DYNAMIC.
26900         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
26901         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
26902
26903 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
26904
26905         * common.opt (fira-loop-pressure): Mark as optimization.
26906
26907 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
26908
26909         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
26910         an OpenMP mappable type.
26911
26912 2014-03-06  Matthias Klose  <doko@ubuntu.com>
26913
26914         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
26915         MULTILIB_OSDIRNAMES is not defined.
26916
26917 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
26918             Meador Inge  <meadori@codesourcery.com>
26919
26920         PR target/58595
26921         * config/arm/arm.c (arm_tls_symbol_p): Remove.
26922         (arm_legitimize_address): Call legitimize_tls_address for any
26923         arm_tls_referenced_p expression, handle constant addend.  Call it
26924         before testing for !TARGET_ARM.
26925         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
26926
26927 2014-03-06  Richard Biener  <rguenther@suse.de>
26928
26929         PR middle-end/60445
26930         PR lto/60424
26931         PR lto/60427
26932         Revert
26933         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
26934
26935         * tree-streamer.c (record_common_node): Assert we don't record
26936         nodes with type double.
26937         (preload_common_node): Skip type double, complex double and double
26938         pointer since it is now frontend dependent due to fshort-double option.
26939
26940 2014-03-06  Richard Biener  <rguenther@suse.de>
26941
26942         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
26943         or -fno-lto is specified and the linker has full plugin support.
26944         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
26945         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
26946         * lto-wrapper.c (merge_and_complain): Merge compile-time
26947         optimization levels.
26948         (run_gcc): And pass it through to the link options.
26949
26950 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
26951
26952         PR debug/60381
26953         Revert:
26954         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
26955         PR debug/59992
26956         * cselib.c (remove_useless_values): Skip to avoid quadratic
26957         behavior if the condition moved from...
26958         (cselib_process_insn): ... here holds.
26959
26960 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
26961
26962         PR plugins/59335
26963         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
26964         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
26965
26966         PR plugins/59335
26967         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
26968         (TM_H): Add x86-tune.def.
26969
26970 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26971
26972         * config/aarch64/aarch64.c (generic_tunings):
26973         Use cortexa57_extra_costs.
26974
26975 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
26976
26977         PR lto/60404
26978         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
26979         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
26980         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
26981         cost for in_lto_p.
26982
26983 2014-03-04  Heiher  <r@hev.cc>
26984
26985         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
26986         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
26987
26988 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
26989
26990         * config/i386/predicates.md (const2356_operand): Change to ...
26991         (const2367_operand): ... this.
26992         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
26993         const2367_operand.
26994         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
26995         (*avx512pf_scatterpf<mode>sf): Ditto.
26996         (avx512pf_scatterpf<mode>df): Ditto.
26997         (*avx512pf_scatterpf<mode>df_mask): Ditto.
26998         (*avx512pf_scatterpf<mode>df): Ditto.
26999         * config/i386/i386.c (ix86_expand_builtin): Update
27000         incorrect hint operand error message.
27001
27002 2014-03-04  Richard Biener  <rguenther@suse.de>
27003
27004         * lto-section-in.c (lto_get_section_data): Fix const cast.
27005
27006 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
27007
27008         * tree-streamer.c (record_common_node): Assert we don't record
27009         nodes with type double.
27010         (preload_common_node): Skip type double, complex double and double
27011         pointer since it is now frontend dependent due to fshort-double option.
27012
27013 2014-03-04  Richard Biener  <rguenther@suse.de>
27014
27015         PR lto/60405
27016         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
27017         (lto_input_toplevel_asms): Likewise.
27018         * lto-section-in.c (lto_get_section_data): Instead do it here
27019         for every section.
27020
27021 2014-03-04  Richard Biener  <rguenther@suse.de>
27022
27023         PR tree-optimization/60382
27024         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
27025         dead PHIs a reduction.
27026
27027 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
27028
27029         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
27030         hint value.
27031         (_mm_prefetch): Move out of GCC target("sse") pragma.
27032         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
27033         GCC target("prfchw") pragma.
27034         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
27035         for locality <= 2.
27036         * config/i386/i386.c (ix86_option_override_internal): Enable
27037         -mprfchw with -mprefetchwt1.
27038
27039 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
27040
27041         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
27042         Mark as varying.
27043
27044 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
27045
27046         * opts.h (CL_PCH_IGNORE): Define.
27047         * targhooks.c (option_affects_pch_p):
27048         Return false for options that have CL_PCH_IGNORE set.
27049         * opt-functions.awk: Process PchIgnore.
27050         * doc/options.texi: Document PchIgnore.
27051
27052         * config/arc/arc.opt (misize): Add PchIgnore property.
27053
27054 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27055
27056         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
27057         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
27058         constraint on constants to permit them being loaded into
27059         GENERAL_REGS or BASE_REGS.
27060
27061 2014-03-03  Nick Clifton  <nickc@redhat.com>
27062
27063         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
27064         anti-cacnonical alternatives.
27065         (negandhi3_real): New pattern.
27066         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
27067
27068 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
27069
27070         * config/avr/avr-mcus.def: Remove atxmega16x1.
27071         * config/avr/avr-tables.opt: Regenerate.
27072         * config/avr/t-multilib: Regenerate.
27073         * doc/avr-mmcu.texi: Regenerate.
27074
27075 2014-03-03  Tobias Grosser  <tobias@grosser.es>
27076             Mircea Namolaru  <mircea.namolaru@inria.fr>
27077
27078         PR tree-optimization/58028
27079         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
27080         scalar dimensions.
27081
27082 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27083
27084         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
27085         not handled by recognizers.
27086
27087 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
27088
27089         PR middle-end/60175
27090         * function.c (expand_function_end): Don't emit
27091         clobber_return_register sequence if clobber_after is a BARRIER.
27092         * cfgexpand.c (construct_exit_block): Append instructions before
27093         return_label to prev_bb.
27094
27095 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27096
27097         * config/rs6000/constraints.md: Document reserved use of "wc".
27098
27099 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
27100
27101         PR ipa/60150
27102         * ipa.c (function_and_variable_visibility): When dissolving comdat
27103         group, also set all symbols to local.
27104
27105 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
27106
27107         PR ipa/60306
27108
27109         Revert:
27110         2013-12-14  Jan Hubicka  <jh@suse.cz>
27111         PR middle-end/58477
27112         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
27113
27114 2014-03-02  Jon Beniston  <jon@beniston.com>
27115
27116         PR bootstrap/48230
27117         PR bootstrap/50927
27118         PR bootstrap/52466
27119         PR target/46898
27120         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
27121           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
27122         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
27123         (simple_return, *simple_return): New patterns
27124         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
27125         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
27126
27127 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
27128
27129         * dwarf2out.c (gen_subprogram_die): Tidy.
27130
27131 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
27132
27133         PR target/60071
27134         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
27135         (*mov_t_msb_neg_negc): ... this new insn.
27136
27137 2014-02-28  Jason Merrill  <jason@redhat.com>
27138
27139         PR c++/58678
27140         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
27141         function.
27142
27143 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
27144
27145         PR c++/60314
27146         * dwarf2out.c (decltype_auto_die): New static.
27147         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
27148         (gen_type_die_with_usage): Handle 'decltype(auto)'.
27149         (is_cxx_auto): Likewise.
27150
27151 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
27152
27153         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
27154         we are not using general regs only.
27155
27156 2014-02-28  Richard Biener  <rguenther@suse.de>
27157
27158         PR target/60280
27159         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
27160         previous fix and only allow to remove trivial pre-headers
27161         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
27162         (remove_forwarder_block): Properly update the latch of a loop.
27163
27164 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27165
27166         PR debug/59992
27167         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
27168         (cselib_preserved_hash_table): New.
27169         (preserve_constants_and_equivs): Move preserved vals to it.
27170         (cselib_find_slot): Look it up first.
27171         (cselib_init): Initialize it.
27172         (cselib_finish): Release it.
27173         (dump_cselib_table): Dump it.
27174
27175 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27176
27177         PR debug/59992
27178         * cselib.c (remove_useless_values): Skip to avoid quadratic
27179         behavior if the condition moved from...
27180         (cselib_process_insn): ... here holds.
27181
27182 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27183
27184         PR debug/57232
27185         * var-tracking.c (vt_initialize): Apply the same condition to
27186         preserve the CFA base value.
27187
27188 2014-02-28  Joey Ye  <joey.ye@arm.com>
27189
27190         PR target/PR60169
27191         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
27192         if reload in progress or completed.
27193
27194 2014-02-28  Tobias Burnus  <burnus@net-b.de>
27195
27196         PR middle-end/60147
27197         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
27198         NAMELIST_DECL.
27199
27200 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
27201
27202         * doc/tm.texi.in (Condition Code Status): Update documention for
27203         relative locations of cc0-setter and cc0-user.
27204
27205 2014-02-27  Jeff Law  <law@redhat.com>
27206
27207         PR rtl-optimization/52714
27208         * combine.c (try_combine): When splitting an unrecognized PARALLEL
27209         into two independent simple sets, if I3 is a jump, ensure the
27210         pattern we place into I3 is a (set (pc) ...).
27211
27212 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
27213             Jeff Law  <law@redhat.com>
27214
27215         PR rtl-optimization/49847
27216         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
27217         are in different blocks.
27218         * doc/tm.texi (Condition Code Status): Update documention for
27219         relative locations of cc0-setter and cc0-user.
27220
27221 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
27222
27223         PR target/59222
27224         * lra.c (lra_emit_add): Check SUBREG too.
27225
27226 2014-02-27  Andreas Schwab  <schwab@suse.de>
27227
27228         * config/m68k/m68k.c (m68k_option_override): Disable
27229         -flive-range-shrinkage for classic m68k.
27230         (m68k_override_options_after_change): Likewise.
27231
27232 2014-02-27  Marek Polacek  <polacek@redhat.com>
27233
27234         PR middle-end/59223
27235         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
27236         -Wmaybe-uninitialized.
27237
27238 2014-02-27  Alan Modra  <amodra@gmail.com>
27239
27240         PR target/57936
27241         * reload1.c (emit_input_reload_insns): When reload_override_in,
27242         set old to rl->in_reg when rl->in_reg is a subreg.
27243
27244 2014-02-26  Richard Biener  <rguenther@suse.de>
27245
27246         PR bootstrap/60343
27247         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
27248
27249 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
27250
27251         * common/config/i386/predicates.md (const1256_operand): Remove.
27252         (const2356_operand): New.
27253         (const_1_to_2_operand): Remove.
27254         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
27255         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
27256         (*avx512pf_gatherpf<mode>sf): Ditto.
27257         (avx512pf_gatherpf<mode>df): Ditto.
27258         (*avx512pf_gatherpf<mode>df_mask): Ditto.
27259         (*avx512pf_gatherpf<mode>df): Ditto.
27260         (avx512pf_scatterpf<mode>sf): Ditto.
27261         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
27262         (*avx512pf_scatterpf<mode>sf): Ditto.
27263         (avx512pf_scatterpf<mode>df): Ditto.
27264         (*avx512pf_scatterpf<mode>df_mask): Ditto.
27265         (*avx512pf_scatterpf<mode>df): Ditto.
27266         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
27267
27268 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
27269
27270         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
27271         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
27272         (_mm512_mask_testn_epi64_mask): Move to ...
27273         * config/i386/avx512cdintrin.h: Here.
27274         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
27275         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
27276         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
27277         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
27278         TARGET_AVX512F from TARGET_AVX512CD.
27279
27280 2014-02-26  Richard Biener  <rguenther@suse.de>
27281
27282         PR ipa/60327
27283         * ipa.c (walk_polymorphic_call_targets): Properly guard
27284         call to inline_update_overall_summary.
27285
27286 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
27287
27288         PR target/60280
27289         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
27290         and latches only if requested.  Fix latch if it is removed.
27291         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
27292         LOOPS_HAVE_PREHEADERS.
27293
27294 2014-02-25  Andrew Pinski  <apinski@cavium.com>
27295
27296         * builtins.c (expand_builtin_thread_pointer): Create a new target
27297         when the target is NULL.
27298
27299 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
27300
27301         PR rtl-optimization/60317
27302         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
27303         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
27304         * lra-assigns.c: Include params.h.
27305         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
27306         other reload pseudos considerations.
27307
27308 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27309
27310         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
27311         to use canonical form for nor<mode>3.
27312
27313 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27314
27315         PR target/55426
27316         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
27317         conversions.
27318
27319 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
27320
27321         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
27322         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
27323         (ix86_handle_option): Handle OPT_mprefetchwt1.
27324         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
27325         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
27326         PREFETCHWT1 CPUID.
27327         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
27328         OPTION_MASK_ISA_PREFETCHWT1.
27329         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
27330         (PTA_PREFETCHWT1): New.
27331         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
27332         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
27333         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
27334         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
27335         (*prefetch_avx512pf_<mode>_: Change into ...
27336         (*prefetch_prefetchwt1_<mode>: This.
27337         * config/i386/i386.opt (mprefetchwt1): New.
27338         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
27339         (_mm_prefetch): Handle intent to write.
27340         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
27341
27342 2014-02-25  Richard Biener  <rguenther@suse.de>
27343
27344         PR middle-end/60291
27345         * emit-rtl.c (mem_attrs_htab): Remove.
27346         (mem_attrs_htab_hash): Likewise.
27347         (mem_attrs_htab_eq): Likewise.
27348         (set_mem_attrs): Always allocate new mem-attrs when something changed.
27349         (init_emit_once): Do not allocate mem_attrs_htab.
27350
27351 2014-02-25  Richard Biener  <rguenther@suse.de>
27352
27353         PR lto/60319
27354         * lto-opts.c (lto_write_options): Output non-explicit conservative
27355         -fwrapv, -fno-trapv and -fno-strict-overflow.
27356         * lto-wrapper.c (merge_and_complain): Handle merging those options.
27357         (run_gcc): And pass them through.
27358
27359 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
27360
27361         * sel-sched.c (calculate_new_fences): New parameter ptime.
27362         Calculate it as a maximum over all fence cycles.
27363         (sel_sched_region_2): Adjust the call to calculate_new_fences.
27364         Print the final schedule timing when sched_verbose.
27365
27366 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
27367
27368         PR rtl-optimization/60292
27369         * sel-sched.c (fill_vec_av_set): Do not reset target availability
27370         bit fot the fence instruction.
27371
27372 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
27373
27374         * calls.h: Fix typo in comment.
27375
27376 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
27377
27378         * config/pa/pa.c (pa_output_move_double): Don't valididate when
27379         adjusting offsetable addresses.
27380
27381 2014-02-24  Guozhi Wei  <carrot@google.com>
27382
27383         * sparseset.h (sparseset_pop): Fix the wrong index.
27384
27385 2014-02-24  Walter Lee  <walt@tilera.com>
27386
27387         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
27388         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
27389         triplet.
27390         * common/config/tilegx/tilegx-common.c
27391         (TARGET_DEFAULT_TARGET_FLAGS): Define.
27392         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
27393         (LINK_SPEC): Ditto.
27394         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
27395         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
27396         (tilegx_gimplify_va_arg_expr): Handle big endian.
27397         (tilegx_expand_unaligned_load): Ditto.
27398         (tilegx_expand_unaligned_store): Ditto.
27399         (TARGET_RETURN_IN_MSB): New.
27400         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
27401         (TARGET_ENDIAN_DEFAULT): New.
27402         (TARGET_BIG_ENDIAN): Handle big endian.
27403         (BYTES_BIG_ENDIAN): Ditto.
27404         (WORDS_BIG_ENDIAN): Ditto.
27405         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
27406         (ENDIAN_SPEC): New.
27407         (EXTRA_SPECS): New.
27408         * config/tilegx/tilegx.md (extv): Handle big endian.
27409         (extzv): Ditto.
27410         (insn_st<n>): Ditto.
27411         (insn_st<n>_add<bitsuffix>): Ditto.
27412         (insn_stnt<n>): Ditto.
27413         (insn_stnt<n>_add<bitsuffix>):Ditto.
27414         (vec_interleave_highv8qi): Handle big endian.
27415         (vec_interleave_highv8qi_be): New.
27416         (vec_interleave_highv8qi_le): New.
27417         (insn_v1int_h): Handle big endian.
27418         (vec_interleave_lowv8qi): Handle big endian.
27419         (vec_interleave_lowv8qi_be): New.
27420         (vec_interleave_lowv8qi_le): New.
27421         (insn_v1int_l): Handle big endian.
27422         (vec_interleave_highv4hi): Handle big endian.
27423         (vec_interleave_highv4hi_be): New.
27424         (vec_interleave_highv4hi_le): New.
27425         (insn_v2int_h): Handle big endian.
27426         (vec_interleave_lowv4hi): Handle big endian.
27427         (vec_interleave_lowv4hi_be): New.
27428         (vec_interleave_lowv4hi_le): New.
27429         (insn_v2int_l): Handle big endian.
27430         (vec_interleave_highv2si): Handle big endian.
27431         (vec_interleave_highv2si_be): New.
27432         (vec_interleave_highv2si_le): New.
27433         (insn_v4int_h): Handle big endian.
27434         (vec_interleave_lowv2si): Handle big endian.
27435         (vec_interleave_lowv2si_be): New.
27436         (vec_interleave_lowv2si_le): New.
27437         (insn_v4int_l): Handle big endian.
27438         * config/tilegx/tilegx.opt (mbig-endian): New option.
27439         (mlittle-endian): New option.
27440         * doc/install.texi: Document tilegxbe-linux.
27441         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
27442
27443 2014-02-24  Martin Jambor  <mjambor@suse.cz>
27444
27445         PR ipa/60266
27446         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
27447         there are no parameter descriptors.
27448
27449 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
27450
27451         PR rtl-optimization/60268
27452         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
27453         initialization to ...
27454         (sched_rgn_init): ... here.
27455         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
27456
27457 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
27458
27459         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
27460         names.
27461
27462 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
27463
27464         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
27465         definition.
27466
27467 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
27468
27469         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
27470         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
27471
27472 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
27473
27474         * config/microblaze/predicates.md: Add cmp_op predicate.
27475         * config/microblaze/microblaze.md: Add branch_compare instruction
27476         which uses cmp_op predicate and emits cmp insn before branch.
27477         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
27478         to microblaze_expand_conditional_branch and consolidate logic.
27479         (microblaze_expand_conditional_branch): emit branch_compare
27480         insn instead of handling cmp op separate from branch insn.
27481
27482 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27483
27484         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
27485         to permit subregs.
27486
27487 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27488
27489         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
27490         define_insn with define_expand and new define_insn
27491         *altivec_lve<VI_char>x_internal.
27492         (altivec_stve<VI_char>x): Replace define_insn with define_expand
27493         and new define_insn *altivec_stve<VI_char>x_internal.
27494         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
27495         prototype.
27496         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
27497         lve*x built-ins.
27498         (altivec_expand_stvex_be): New function.
27499
27500 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
27501
27502         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
27503         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
27504         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
27505         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
27506
27507 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
27508
27509         PR target/60298
27510         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
27511         instead of emit_move_insn.
27512
27513 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27514
27515         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
27516         vspltw with vsldoi.
27517         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
27518         gen_altivec_vsumsws.
27519
27520 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27521
27522         * config/rs6000/altivec.md (altivec_lvxl): Rename as
27523         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
27524         (altivec_lvxl_<mode>): New define_expand incorporating
27525         -maltivec=be semantics where needed.
27526         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
27527         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
27528         semantics where needed.
27529         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
27530         (altivec_stvx_<mode>): New define_expand incorporating
27531         -maltivec=be semantics where needed.
27532         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
27533         VM2 iterator instead of V4SI.
27534         (altivec_stvxl_<mode>): New define_expand incorporating
27535         -maltivec=be semantics where needed.
27536         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
27537         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
27538         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
27539         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
27540         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
27541         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
27542         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
27543         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
27544         ALTIVEC_BUILTIN_STVXL.
27545         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
27546         (altivec_expand_stvx_be): Likewise.
27547         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
27548         (altivec_expand_lvx_be): Likewise.
27549         (altivec_expand_stvx_be): Likewise.
27550         (altivec_expand_builtin): Add cases for
27551         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
27552         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
27553         (altivec_init_builtins): Add definitions for
27554         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
27555         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
27556
27557 2014-02-21  Catherine Moore  <clm@codesourcery.com>
27558
27559         * doc/invoke.texi (mvirt, mno-virt): Document.
27560         * config/mips/mips.opt (mvirt): New option.
27561         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
27562
27563 2014-02-21  Richard Biener  <rguenther@suse.de>
27564
27565         PR tree-optimization/60276
27566         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
27567         (STMT_VINFO_MIN_NEG_DIST): New macro.
27568         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
27569         STMT_VINFO_MIN_NEG_DIST.
27570         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
27571         made for negative dependence distances still hold.
27572
27573 2014-02-21  Richard Biener  <rguenther@suse.de>
27574
27575         PR middle-end/60291
27576         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
27577         DECL_INITIAL for globals not in the current function context.
27578
27579 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
27580
27581         PR tree-optimization/56490
27582         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
27583         * tree-ssa-uninit.c: Include params.h.
27584         (compute_control_dep_chain): Add num_calls argument, return false
27585         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
27586         num_calls to recursive call.
27587         (find_predicates): Change dep_chain into normal array,
27588         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
27589         variable and adjust compute_control_dep_chain caller.
27590         (find_def_preds): Likewise.
27591
27592 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
27593
27594         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
27595         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
27596
27597 2014-02-21  Nick Clifton  <nickc@redhat.com>
27598
27599         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
27600         (pushhi1): Likewise.
27601         (popqi1): Add mode to pre_dec.
27602         (pophi1): Likewise.
27603
27604 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
27605
27606         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
27607         mode for mask of V8SFmode permutation.
27608
27609 2014-02-20  Richard Henderson  <rth@redhat.com>
27610
27611         PR c++/60272
27612         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
27613         a new pseudo for OLDVAL.
27614
27615 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
27616
27617         PR target/57896
27618         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
27619         gen_reg_rtx if d->testing_p.
27620         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
27621         if d->testing_p and we will certainly return true.
27622         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
27623         if d->testing_p.
27624
27625 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
27626
27627         * emit-rtl.c (gen_reg_rtx): Assert that
27628         crtl->emit.regno_pointer_align_length is non-zero.
27629
27630 2014-02-20  Richard Henderson  <rth@redhat.com>
27631
27632         PR c++/60272
27633         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
27634         on failure the store back into EXPECT.
27635
27636 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
27637             Sandra Loosemore  <sandra@codesourcery.com>
27638
27639         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
27640         * config/nios2/nios2.c (nios2_function_profiler): Add
27641         -fPIC (flag_pic == 2) support.
27642         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
27643         (nios2_large_offset_p): New function.
27644         (nios2_unspec_reloc_p): Move up position, update to use
27645         nios2_large_offset_p.
27646         (nios2_unspec_address): Remove function.
27647         (nios2_unspec_offset): New function.
27648         (nios2_large_got_address): New function.
27649         (nios2_got_address): Add large offset support.
27650         (nios2_legitimize_tls_address): Update usage of removed and new
27651         functions.
27652         (nios2_symbol_binds_local_p): New function.
27653         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
27654         (nios2_legitimize_address): Update to use nios2_large_offset_p.
27655         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
27656         (nios2_print_operand): Merge H/L processing, add hiadj/lo
27657         processing for (const (unspec ...)).
27658         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
27659
27660 2014-02-20  Richard Biener  <rguenther@suse.de>
27661
27662         * tree-cfg.c (replace_uses_by): Mark altered BBs before
27663         doing the substitution.
27664         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
27665
27666 2014-02-20  Martin Jambor  <mjambor@suse.cz>
27667
27668         PR ipa/55260
27669         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
27670         info when checking whether lattices are bottom.
27671
27672 2014-02-20  Richard Biener  <rguenther@suse.de>
27673
27674         PR middle-end/60221
27675         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
27676         regions at -O0.
27677
27678 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
27679
27680         PR ipa/58555
27681         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
27682         parameter specifying the scaling.
27683         (inline_call): Update.
27684         (want_inline_recursively): Guard division by zero.
27685         (recursive_inlining): Update.
27686         * ipa-inline.h (clone_inlined_nodes): Update.
27687
27688 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
27689
27690         PR target/60204
27691         * config/i386/i386.c (classify_argument): Pass structures of size
27692         64 bytes or less in register.
27693
27694 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
27695             Kirill Yukhin  <kirill.yukhin@intel.com>
27696
27697         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
27698         (_mm_rcp28_round_ss): Ditto.
27699         (_mm_rsqrt28_round_sd): Ditto.
27700         (_mm_rsqrt28_round_ss): Ditto.
27701         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
27702         (_mm_rcp14_round_ss): Ditto.
27703         (_mm_rsqrt14_round_sd): Ditto.
27704         (_mm_rsqrt14_round_ss): Ditto.
27705         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
27706         the first input operand, get rid of match_dup.
27707         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
27708         attribute to sse.
27709         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
27710         Ditto.
27711         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
27712         operand as the first input operand, set type attribute.
27713         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
27714         Set type attribute.
27715         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
27716         operand as the first input operand, set type attribute.
27717
27718 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27719
27720         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
27721         bit of zero.
27722
27723 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
27724
27725         PR target/60207
27726         * config/i386/i386.c (construct_container): Remove TFmode check
27727         for X86_64_INTEGER_CLASS.
27728
27729 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
27730
27731         PR target/59794
27732         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
27733         only when -Wpsabi is enabled.
27734
27735 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
27736
27737          PR target/59799
27738         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
27739         passing arrays in registers are the same as for structs, so remove the
27740         special case for them.
27741
27742 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
27743
27744         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
27745         destination type, extract only the valid bits if the source type is not
27746         integral and has a different mode.
27747
27748 2014-02-19  Richard Biener  <rguenther@suse.de>
27749
27750         PR ipa/60243
27751         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
27752         for all calls.
27753
27754 2014-02-19  Richard Biener  <rguenther@suse.de>
27755
27756         PR ipa/60243
27757         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
27758         (ipa_modify_call_arguments): Emit an argument load explicitely and
27759         preserve virtual SSA form there and for the replacement call.
27760         Do not update SSA form nor free dominance info.
27761
27762 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
27763
27764         * ipa.c (function_and_variable_visibility): Also clear WEAK
27765         flag when disolving COMDAT_GROUP.
27766
27767 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
27768
27769         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
27770         * ipa-prop.c (ipa_set_jf_known_type): Return early when
27771         not devirtualizing.
27772         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
27773         do more sanity checks.
27774         (detect_type_change): Return true when giving up early.
27775         (compute_complex_assign_jump_func): Fix type parameter of
27776         ipa_set_ancestor_jf.
27777         (compute_complex_ancestor_jump_func): Likewise.
27778         (update_jump_functions_after_inlining): Fix updating of
27779         ancestor function.
27780         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
27781
27782 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
27783
27784         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
27785         inline clones when edge disappears.
27786
27787 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
27788
27789         PR target/60203
27790         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
27791         Split 64-bit moves into 2 patterns.  Do not allow the use of
27792         direct move for TDmode in little endian, since the decimal value
27793         has little endian bytes within a word, but the 64-bit pieces are
27794         ordered in a big endian fashion, and normal subreg's of TDmode are
27795         not allowed.
27796         (mov<mode>_64bit_dm): Likewise.
27797         (movtd_64bit_nodm): Likewise.
27798
27799 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
27800
27801         PR tree-optimization/60174
27802         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
27803         statement of an SSA_NAME that occurs in an abnormal PHI node.
27804
27805 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
27806
27807         PR sanitizer/60142
27808         * final.c (SEEN_BB): Remove.
27809         (SEEN_NOTE, SEEN_EMITTED): Renumber.
27810         (final_scan_insn): Don't force_source_line on second
27811         NOTE_INSN_BASIC_BLOCK.
27812
27813 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
27814
27815         PR target/60205
27816         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
27817         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
27818         (type_natural_mode): Warn ABI change when %zmm register is not
27819         available for AVX512F vector value passing.
27820
27821 2014-02-18  Kai Tietz  <ktietz@redhat.com>
27822
27823         PR target/60193
27824         * config/i386/i386.c (ix86_expand_prologue): Use value in
27825         rax register as displacement when restoring %r10 or %rax.
27826         Fix wrong offset when restoring both registers.
27827
27828 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
27829
27830         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
27831         assertion with conditional return.
27832
27833 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
27834             Uros Bizjak  <ubizjak@gmail.com>
27835
27836         PR driver/60233
27837         * config/i386/driver-i386.c (host_detect_local_cpu): If
27838         YMM state is not saved by the OS, also clear has_f16c.  Move
27839         CPUID 0x80000001 handling before YMM state saving checking.
27840
27841 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
27842
27843         PR rtl-optimization/58960
27844         * haifa-sched.c (alloc_global_sched_pressure_data): New,
27845         factored out from ...
27846         (sched_init): ... here.
27847         (free_global_sched_pressure_data): New, factored out from ...
27848         (sched_finish): ... here.
27849         * sched-int.h (free_global_sched_pressure_data): Declare.
27850         * sched-rgn.c (nr_regions_initial): New static global.
27851         (haifa_find_rgns): Initialize it.
27852         (schedule_region): Disable sched-pressure for the newly
27853         generated regions.
27854
27855 2014-02-17  Richard Biener  <rguenther@suse.de>
27856
27857         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
27858         release SSA defs of pattern stmts.
27859
27860 2014-02-17  Richard Biener  <rguenther@suse.de>
27861
27862         * tree-inline.c (expand_call_inline): Release the virtual
27863         operand defined by the call we are about to inline.
27864
27865 2014-02-17  Richard Biener  <rguenther@suse.de>
27866
27867         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
27868
27869 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
27870             Ilya Tocar  <ilya.tocar@intel.com>
27871
27872         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
27873         arguments order in builtin.
27874         (_mm512_permutexvar_epi64): Ditto.
27875         (_mm512_mask_permutexvar_epi64): Ditto
27876         (_mm512_maskz_permutexvar_epi32): Ditto
27877         (_mm512_permutexvar_epi32): Ditto
27878         (_mm512_mask_permutexvar_epi32): Ditto
27879
27880 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27881
27882         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
27883         (p8_vmrgow): Likewise.
27884
27885 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27886
27887         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
27888         endian targets.
27889
27890 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
27891
27892         PR target/60203
27893         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
27894         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
27895         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
27896         using direct move instructions on ISA 2.07.  Also adjust
27897         instruction length for 64-bit.
27898         (mov<mode>_64bit, TFmode/TDmode): Likewise.
27899         (mov<mode>_32bit, TFmode/TDmode): Likewise.
27900
27901 2014-02-15  Alan Modra  <amodra@gmail.com>
27902
27903         PR target/58675
27904         PR target/57935
27905         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
27906         find_replacement on parts of insn rtl that might be reloaded.
27907
27908 2014-02-15  Richard Biener  <rguenther@suse.de>
27909
27910         PR tree-optimization/60183
27911         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
27912         (tree_ssa_phiprop): Calculate and free post-dominators.
27913
27914 2014-02-14  Jeff Law  <law@redhat.com>
27915
27916         PR rtl-optimization/60131
27917         * ree.c (get_extended_src_reg): New function.
27918         (combine_reaching_defs): Use it rather than assuming location of REG.
27919         (find_and_remove_re): Verify first operand of extension is
27920         a REG before adding the insns to the copy list.
27921
27922 2014-02-14  Roland McGrath  <mcgrathr@google.com>
27923
27924         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
27925         * configure: Regenerated.
27926         * config.in: Regenerated.
27927         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
27928         instead of ASM_SHORT.
27929
27930 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
27931             Richard Earnshaw  <rearnsha@arm.com>
27932
27933         PR rtl-optimization/59535
27934         * lra-constraints.c (process_alt_operands): Encourage alternative
27935         when unassigned pseudo class is superset of the alternative class.
27936         (inherit_reload_reg): Don't inherit when optimizing for code size.
27937         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
27938         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
27939         modes not less than 4 for Thumb1.
27940
27941 2014-02-14  Kyle McMartin  <kyle@redhat.com>
27942
27943         PR pch/60010
27944         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
27945
27946 2014-02-14  Richard Biener  <rguenther@suse.de>
27947
27948         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
27949         (get_frame_arg): Drop the assert with langhook types_compatible_p.
27950         Do not strip INDIRECT_REFs.
27951
27952 2014-02-14  Richard Biener  <rguenther@suse.de>
27953
27954         PR lto/60179
27955         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
27956         DECL_FUNCTION_SPECIFIC_TARGET.
27957         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
27958         * tree-streamer-out.c (pack_ts_target_option): Remove.
27959         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
27960         (write_ts_function_decl_tree_pointers): Do not stream
27961         DECL_FUNCTION_SPECIFIC_TARGET.
27962         * tree-streamer-in.c (unpack_ts_target_option): Remove.
27963         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
27964         (lto_input_ts_function_decl_tree_pointers): Do not stream
27965         DECL_FUNCTION_SPECIFIC_TARGET.
27966
27967 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
27968
27969         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
27970         (get_initial_def_for_induction, vectorizable_induction): Ignore
27971         debug stmts when looking for exit_phi.
27972         (vectorizable_live_operation): Fix up condition.
27973
27974 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
27975
27976         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
27977         nreverse() because it changes the content of original tree list.
27978
27979 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
27980
27981         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
27982         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
27983
27984 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
27985
27986         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
27987         GNU coding standards.
27988
27989 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
27990
27991         PR debug/60152
27992         * dwarf2out.c (gen_subprogram_die): Don't call
27993         add_calling_convention_attribute if subr_die is old_die.
27994
27995 2014-02-13  Sharad Singhai  <singhai@google.com>
27996
27997         * doc/optinfo.texi: Fix order of nodes.
27998
27999 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
28000
28001         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
28002         operands[2], not operands[3].
28003
28004 2014-02-13  Richard Biener  <rguenther@suse.de>
28005
28006         PR bootstrap/59878
28007         * doc/install.texi (ISL): Update recommended version to 0.12.2,
28008         mention the possibility of an in-tree build.
28009         (CLooG): Update recommended version to 0.18.1, mention the
28010         possibility of an in-tree build and clarify that the ISL
28011         bundled with CLooG does not work.
28012
28013 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
28014
28015         PR target/43546
28016         * expr.c (compress_float_constant): If x is a hard register,
28017         extend into a pseudo and then move to x.
28018
28019 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
28020
28021         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
28022         caused by bad second argument to warning_at() with -mhotpatch and
28023         nested functions (e.g. with gfortran).
28024
28025 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
28026
28027         * opts.c (option_name): Remove "enabled by default" rider.
28028
28029 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
28030
28031         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
28032
28033 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
28034             Uros Bizjak  <ubizjak@gmail.com>
28035
28036         PR target/60151
28037         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
28038         * configure: Regenerated.
28039
28040 2014-02-12  Richard Biener  <rguenther@suse.de>
28041
28042         * vec.c (vec_prefix::calculate_allocation): Move as
28043         inline variant to vec.h.
28044         (vec_prefix::calculate_allocation_1): New out-of-line version.
28045         * vec.h (vec_prefix::calculate_allocation_1): Declare.
28046         (vec_prefix::m_has_auto_buf): Rename to ...
28047         (vec_prefix::m_using_auto_storage): ... this.
28048         (vec_prefix::calculate_allocation): Inline the easy cases
28049         and dispatch to calculate_allocation_1 which doesn't need the
28050         prefix address.
28051         (va_heap::reserve): Use gcc_checking_assert.
28052         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
28053         m_using_auto_storage.
28054         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
28055         member and adjust.
28056         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
28057         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
28058         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
28059
28060 2014-02-12  Richard Biener  <rguenther@suse.de>
28061
28062         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
28063         when we found a dependence.
28064
28065 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
28066
28067         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
28068         common code...
28069         (maybe_fold_stmt): ... into this new function.
28070         * omp-low.c (lower_omp): Update comment.
28071
28072         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
28073         last use.
28074
28075         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
28076         dereference.
28077
28078 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
28079
28080         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
28081         identifiers in comments.
28082         (cortexa53_extra_costs): Likewise.
28083         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
28084         (cortexa7_extra_costs): Likewise.
28085         (cortexa12_extra_costs): Likewise.
28086         (cortexa15_extra_costs): Likewise.
28087         (v7m_extra_costs): Likewise.
28088
28089 2014-02-12  Richard Biener  <rguenther@suse.de>
28090
28091         PR middle-end/60092
28092         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
28093         of posix_memalign being successful.
28094         (lower_stmt): Restrict lowering of posix_memalign to when
28095         -ftree-bit-ccp is enabled.
28096
28097 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
28098
28099         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
28100         arg_loc.
28101         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
28102
28103 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
28104
28105         PR rtl-optimization/60116
28106         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
28107         other_insn once the combination has been validated.
28108
28109 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
28110
28111         PR lto/59468
28112         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
28113         and wrapper.
28114         * ipa-devirt.c: Include demangle.h
28115         (odr_violation_reported): New static variable.
28116         (add_type_duplicate): Update odr_violations.
28117         (maybe_record_node): Add completep parameter; update it.
28118         (record_target_from_binfo): Add COMPLETEP parameter;
28119         update it as needed.
28120         (possible_polymorphic_call_targets_1): Likewise.
28121         (struct polymorphic_call_target_d): Add nonconstruction_targets;
28122         rename FINAL to COMPLETE.
28123         (record_targets_from_bases): Sanity check we found the binfo;
28124         fix COMPLETEP updating.
28125         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
28126         parameter, fix computing of COMPLETEP.
28127         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
28128         at LTO time do demangling.
28129         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
28130         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
28131         parameter.
28132         (gimple_get_virt_method_for_binfo): Likewise.
28133         * gimple-fold.h (gimple_get_virt_method_for_binfo,
28134         gimple_get_virt_method_for_vtable): Update prototypes.
28135
28136 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
28137
28138         PR target/49008
28139         * genautomata.c (add_presence_absence): Fix typo with
28140         {final_}presence_list.
28141
28142 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
28143
28144         PR target/60137
28145         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
28146         for VSX/Altivec vectors that land in GPR registers.
28147
28148 2014-02-11  Richard Henderson  <rth@redhat.com>
28149             Jakub Jelinek  <jakub@redhat.com>
28150
28151         PR debug/59776
28152         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
28153         around drhs if type conversion to lacc->type is not useless.
28154
28155 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28156
28157         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
28158         tuning struct.
28159         (cortex-a57.cortex-a53): Likewise.
28160         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
28161
28162 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28163
28164         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
28165         arm_restrict_it.
28166
28167 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
28168
28169         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
28170         add_options_for_arm_vfp3.
28171
28172 2014-02-11  Jeff Law  <law@redhat.com>
28173
28174         PR middle-end/54041
28175         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
28176         object with an undesirable mode.
28177
28178 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28179
28180         PR libgomp/60107
28181         * config/i386/sol2-9.h: New file.
28182         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
28183         *-*-solaris2.9*): Use it.
28184
28185 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
28186
28187         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
28188         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
28189
28190 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
28191
28192         * config/microblaze/microblaze.c: Extend mcpu version format
28193
28194 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
28195
28196         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
28197
28198 2014-02-10  Richard Henderson  <rth@redhat.com>
28199
28200         PR target/59927
28201         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
28202         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
28203         ms-abi vs -mno-accumulate-outgoing-args.
28204         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
28205         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
28206         respect to ms-abi.
28207
28208 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28209
28210         PR middle-end/60080
28211         * cfgexpand.c (expand_asm_operands): Attach source location to
28212         ASM_INPUT rtx objects.
28213         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
28214
28215 2014-02-10  Nick Clifton  <nickc@redhat.com>
28216
28217         * config/mn10300/mn10300.c (popcount): New function.
28218         (mn10300_expand_prologue): Include saved registers in stack usage
28219         count.
28220
28221 2014-02-10  Jeff Law  <law@redhat.com>
28222
28223         PR middle-end/52306
28224         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
28225         when changing the SET_DEST of a prior insn to avoid an input reload.
28226
28227 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28228
28229         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
28230         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
28231         -mcall-openbsd, or -mcall-linux.
28232         (CC1_ENDIAN_BIG_SPEC): Remove.
28233         (CC1_ENDIAN_LITTLE_SPEC): Remove.
28234         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
28235         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
28236         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
28237         and %cc1_endian_default.
28238         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
28239
28240 2014-02-10  Richard Biener  <rguenther@suse.de>
28241
28242         PR tree-optimization/60115
28243         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
28244         MEM_REF handling.  Properly verify that the accesses are not
28245         out of the objects bound.
28246
28247 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28248
28249         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
28250         coretex to cortex.
28251
28252 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
28253
28254         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
28255         proper constants and fix formatting.
28256         (possible_polymorphic_call_targets): Fix formatting.
28257
28258 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
28259             Ilya Tocar  <ilya.tocar@intel.com>
28260
28261         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
28262         (_mm512_loadu_epi32): Renamed into...
28263         (_mm512_loadu_si512): This.
28264         (_mm512_storeu_epi32): Renamed into...
28265         (_mm512_storeu_si512): This.
28266         (_mm512_maskz_ceil_ps): Removed.
28267         (_mm512_maskz_ceil_pd): Ditto.
28268         (_mm512_maskz_floor_ps): Ditto.
28269         (_mm512_maskz_floor_pd): Ditto.
28270         (_mm512_floor_round_ps): Ditto.
28271         (_mm512_floor_round_pd): Ditto.
28272         (_mm512_ceil_round_ps): Ditto.
28273         (_mm512_ceil_round_pd): Ditto.
28274         (_mm512_mask_floor_round_ps): Ditto.
28275         (_mm512_mask_floor_round_pd): Ditto.
28276         (_mm512_mask_ceil_round_ps): Ditto.
28277         (_mm512_mask_ceil_round_pd): Ditto.
28278         (_mm512_maskz_floor_round_ps): Ditto.
28279         (_mm512_maskz_floor_round_pd): Ditto.
28280         (_mm512_maskz_ceil_round_ps): Ditto.
28281         (_mm512_maskz_ceil_round_pd): Ditto.
28282         (_mm512_expand_pd): Ditto.
28283         (_mm512_expand_ps): Ditto.
28284         * config/i386/i386.c (ix86_builtins): Remove
28285         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
28286         (bdesc_args): Ditto.
28287         * config/i386/predicates.md (const1256_operand): New.
28288         (const_1_to_2_operand): Ditto.
28289         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
28290         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
28291         (*avx512pf_gatherpf<mode>sf): Ditto.
28292         (avx512pf_gatherpf<mode>df): Ditto.
28293         (*avx512pf_gatherpf<mode>df_mask): Ditto.
28294         (*avx512pf_gatherpf<mode>df): Ditto.
28295         (avx512pf_scatterpf<mode>sf): Ditto.
28296         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
28297         (*avx512pf_scatterpf<mode>sf): Ditto.
28298         (avx512pf_scatterpf<mode>df): Ditto.
28299         (*avx512pf_scatterpf<mode>df_mask): Ditto.
28300         (*avx512pf_scatterpf<mode>df): Ditto.
28301         (avx512f_expand<mode>): Removed.
28302         (<shift_insn><mode>3<mask_name>): Change predicate type.
28303
28304 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
28305
28306         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
28307         not at the end of datarefs vector use ordered_remove to avoid
28308         reordering datarefs vector.
28309
28310         PR c/59984
28311         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
28312         mark local addressable non-static vars as GOVD_PRIVATE
28313         instead of GOVD_LOCAL.
28314         * omp-low.c (lower_omp_for): Move gimple_bind_vars
28315         and BLOCK_VARS of gimple_bind_block to new_stmt rather
28316         than copying them.
28317
28318         PR middle-end/60092
28319         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
28320         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
28321         assume_aligned or alloc_align attributes.
28322         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
28323         arguments.  Handle also assume_aligned and alloc_align attributes.
28324         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
28325         calls to functions with assume_aligned or alloc_align attributes.
28326         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
28327
28328 2014-02-08  Terry Guo  <terry.guo@arm.com>
28329
28330         * doc/invoke.texi: Document ARM -march=armv7e-m.
28331
28332 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
28333
28334         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
28335         flag on __cilkrts_rethrow builtin.
28336
28337         PR ipa/60026
28338         * ipa-cp.c (determine_versionability): Fail at -O0
28339         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
28340         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
28341
28342         Revert:
28343         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
28344
28345         PR ipa/60026
28346         * tree-inline.c (copy_forbidden): Fail for
28347         __attribute__((optimize (0))) functions.
28348
28349 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
28350
28351         * varpool.c: Include pointer-set.h.
28352         (varpool_remove_unreferenced_decls): Variables in other partitions
28353         will not be output; be however careful to not lose information
28354         about partitioning.
28355
28356 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
28357
28358         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
28359         lookup in the vtable constructor.
28360
28361 2014-02-07  Jeff Law  <law@redhat.com>
28362
28363         PR target/40977
28364         * config/m68k/m68k.md (ashldi_extsi): Turn into a
28365         define_insn_and_split.
28366
28367         * ipa-inline.c (inline_small_functions): Fix typos.
28368
28369 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28370
28371         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
28372         (s390_can_use_return_insn): Declare.
28373         * config/s390/s390.h (EPILOGUE_USES): Define.
28374         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
28375         instructions.
28376         (s390_chunkify_start): Handle return JUMP_LABELs.
28377         (s390_early_mach): Emit a main_pool instruction on the entry edge.
28378         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
28379         (s390_can_use_return_insn): New functions.
28380         (s390_fix_long_loop_prediction): Handle conditional returns.
28381         (TARGET_SET_UP_BY_PROLOGUE): Define.
28382         * config/s390/s390.md (ANY_RETURN): New code iterator.
28383         (*creturn, *csimple_return, return, simple_return): New patterns.
28384
28385 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28386
28387         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
28388         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
28389         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
28390         REG_CFA_RESTORE list when deciding not to restore a register.
28391
28392 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28393
28394         * config/s390/s390.c: Include tree-pass.h and context.h.
28395         (s390_early_mach): New function, split out from...
28396         (s390_emit_prologue): ...here.
28397         (pass_data_s390_early_mach): New pass structure.
28398         (pass_s390_early_mach): New class.
28399         (s390_option_override): Create and register early_mach pass.
28400         Move to end of file.
28401
28402 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28403
28404         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
28405         to match for the exit block.
28406
28407 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28408
28409         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
28410         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
28411         Reject misaligned operands.
28412
28413 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28414
28415         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
28416
28417 2014-02-07  Richard Biener  <rguenther@suse.de>
28418
28419         PR middle-end/60092
28420         * gimple-low.c (lower_builtin_posix_memalign): New function.
28421         (lower_stmt): Call it to lower posix_memalign in a way
28422         to make alignment info accessible.
28423
28424 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
28425
28426         PR c++/60082
28427         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
28428         __builtin_setjmp_receiver.
28429
28430 2014-02-07  Richard Biener  <rguenther@suse.de>
28431
28432         PR middle-end/60092
28433         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
28434         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
28435         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
28436         Handle BUILT_IN_POSIX_MEMALIGN.
28437         (find_func_clobbers): Likewise.
28438         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
28439         (call_may_clobber_ref_p_1): Likewise.
28440
28441 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28442
28443         PR ipa/59918
28444         * ipa-devirt.c (record_target_from_binfo): Remove overactive
28445         sanity check.
28446
28447 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28448
28449         PR ipa/59469
28450         * lto-cgraph.c (lto_output_node): Use
28451         symtab_get_symbol_partitioning_class.
28452         (lto_output_varpool_node): likewise.
28453         (symtab_get_symbol_partitioning_class): Move here from
28454         lto/lto-partition.c
28455         * cgraph.h (symbol_partitioning_class): Likewise.
28456         (symtab_get_symbol_partitioning_class): Declare.
28457
28458 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28459
28460         * ggc.h (ggc_internal_cleared_alloc): New macro.
28461         * vec.h (vec_safe_copy): Handle memory stats.
28462         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
28463         * target-globals.c (save_target_globals): Likewise.
28464
28465 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28466
28467         PR target/60077
28468         * expr.c (emit_move_resolve_push): Export; be bit more selective
28469         on when to clear alias set.
28470         * expr.h (emit_move_resolve_push): Declare.
28471         * function.h (struct function): Add tail_call_marked.
28472         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
28473         * config/i386/i386-protos.h (ix86_expand_push): Remove.
28474         * config/i386/i386.md (TImode move expander): De not call
28475         ix86_expand_push.
28476         (FP push expanders): Preserve memory attributes.
28477         * config/i386/sse.md (push<mode>1): Remove.
28478         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
28479         (ix86_expand_push): Remove.
28480         * config/i386/mmx.md (push<mode>1): Remove.
28481
28482 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
28483
28484         PR rtl-optimization/60030
28485         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
28486         lopart with paradoxical subreg before shifting it up by hprec.
28487
28488 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28489
28490         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
28491         Remove extra newline at end of file.
28492         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
28493         (arm_issue_rate): Handle cortexa57.
28494         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
28495         (cortex-a57.cortex-a53): Likewise.
28496
28497 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
28498
28499         PR target/59575
28500         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
28501         don't record in REG_FRAME_RELATED_EXPR registers not set in that
28502         bitmask.
28503         (arm_expand_prologue): Adjust all callers.
28504         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
28505         info, registers also at the lowest numbered registers side.  Use
28506         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
28507         XEXP.
28508
28509         PR debug/59992
28510         * var-tracking.c (adjust_mems): Before adding a SET to
28511         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
28512
28513 2014-02-06  Alan Modra  <amodra@gmail.com>
28514
28515         PR target/60032
28516         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
28517         change SDmode to DDmode when lra_in_progress.
28518
28519 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
28520
28521         PR middle-end/59150
28522         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
28523         free_data_ref on the dr first, and before goto again also set dr
28524         to the next dr.  For simd_lane_access, free old datarefs[i] before
28525         overwriting it.  For get_vectype_for_scalar_type failure, don't
28526         free_data_ref if simd_lane_access.
28527
28528         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
28529
28530         PR target/60062
28531         * tree.h (opts_for_fn): New inline function.
28532         (opt_for_fn): Define.
28533         * config/i386/i386.c (ix86_function_regparm): Use
28534         opt_for_fn (decl, optimize) instead of optimize.
28535
28536 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
28537
28538         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
28539         for SYMBOL_REF in large memory model.
28540
28541 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28542
28543         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
28544         and crypto support.
28545         (cortex-a57): Likewise.
28546         (cortex-a57.cortex-a53): Likewise.
28547
28548 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
28549             Kugan Vivekanandarajah  <kuganv@linaro.org>
28550
28551         * config/arm/arm.c (arm_vector_alignment_reachable): Check
28552         unaligned_access.
28553         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
28554
28555 2014-02-06  Richard Biener  <rguenther@suse.de>
28556
28557         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
28558         set_loop_copy and initialize_original_copy_tables.
28559
28560 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
28561
28562         * config/aarch64/aarch64-simd.md
28563         (aarch64_ashr_simddi): Change QI to SI.
28564
28565 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
28566             Jakub Jelinek  <jakub@redhat.com>
28567
28568         PR middle-end/60013
28569         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
28570         of the dataflow.
28571
28572 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28573
28574         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
28575         CODE_FOR_altivec_vpku[hw]um to
28576         CODE_FOR_altivec_vpku[hw]um_direct.
28577         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
28578         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
28579         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
28580         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
28581
28582 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28583
28584         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
28585         generation for -maltivec=be.
28586         (altivec_vsumsws): Simplify redundant test.
28587
28588 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28589
28590         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
28591         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
28592         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
28593         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
28594         gen_altivec_vpkuwum.
28595         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
28596         BYTES_BIG_ENDIAN.
28597         (altivec_vpks<VI_char>ss): Likewise.
28598         (altivec_vpks<VI_char>us): Likewise.
28599         (altivec_vpku<VI_char>us): Likewise.
28600         (altivec_vpku<VI_char>um): Likewise.
28601         (altivec_vpku<VI_char>um_direct): New (copy of
28602         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
28603         internal use).
28604         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
28605         target is little endian and -maltivec=be is not specified.
28606         (*altivec_vupkhs<VU_char>_direct): New (copy of
28607         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
28608         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
28609         target is little endian and -maltivec=be is not specified.
28610         (*altivec_vupkls<VU_char>_direct): New (copy of
28611         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
28612         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
28613         little endian and -maltivec=be is not specified.
28614         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
28615         little endian and -maltivec=be is not specified.
28616
28617 2014-02-05  Richard Henderson  <rth@redhat.com>
28618
28619         PR debug/52727
28620         * combine-stack-adj.c: Revert r206943.
28621         * sched-int.h (struct deps_desc): Add last_args_size.
28622         * sched-deps.c (init_deps): Initialize it.
28623         (sched_analyze_insn): Add OUTPUT dependencies between insns that
28624         contain REG_ARGS_SIZE notes.
28625
28626 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
28627
28628         * lto-cgraph.c (asm_nodes_output): Make global.
28629         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
28630         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
28631         (driver_handle_option): Handle OPT_fwpa.
28632
28633 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
28634
28635         PR ipa/59947
28636         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
28637         a comment typo and formatting issue.  If odr_hash hasn't been
28638         created, return vNULL and set *completep to false.
28639
28640         PR middle-end/57499
28641         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
28642         bb with no successors.
28643
28644 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
28645
28646         PR target/59718
28647         * doc/invoke.texi (-march): Clarify documentation for ARM.
28648         (-mtune): Likewise.
28649         (-mcpu): Likewise.
28650
28651 2014-02-05  Richard Biener  <rguenther@suse.de>
28652
28653         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
28654         when not vectorizing because of too many alias checks.
28655         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
28656         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
28657
28658 2014-02-05  Nick Clifton  <nickc@redhat.com>
28659
28660         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
28661         accept extended registers in any mode when compiling for the MN10300.
28662
28663 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
28664
28665         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
28666         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
28667         sanitization attributes.
28668         (can_inline_edge_p): Likewise.
28669         (sanitize_attrs_match_for_inline_p): New function.
28670
28671 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
28672
28673         * ipa-prop.c (detect_type_change): Shor circuit testing of
28674         type changes on THIS pointer.
28675
28676 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
28677
28678         PR target/59777
28679         * config/pa/pa.c (legitimize_tls_address): Return original address
28680         if not passed a SYMBOL_REF rtx.
28681         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
28682         addresses.
28683         (pa_emit_move_sequence): Simplify TLS source operands.
28684         (pa_legitimate_constant_p): Reject all TLS constants.
28685         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
28686         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
28687
28688 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
28689
28690         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
28691         groups when we know they are controlled by LTO.
28692         * varasm.c (default_binds_local_p_1): If object is in other partition,
28693         it will be resolved locally.
28694
28695 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28696
28697         * config/host-linux.c (linux_gt_pch_use_address): Don't
28698         use SSIZE_MAX because it is not always defined.
28699
28700 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
28701
28702         PR bootstrap/59913
28703         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
28704         threshold for pseudo splitting.
28705         (update_ebb_live_info): Process call argument hard registers and
28706         hard registers from insn definition too.
28707         (max_small_class_regs_num): New constant.
28708         (inherit_in_ebb): Update live hard regs through EBBs.  Update
28709         reloads_num only for small register classes.  Don't split for
28710         outputs of jumps.
28711
28712 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
28713
28714         PR ipa/60058
28715         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
28716         is non-null.
28717
28718 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
28719
28720         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
28721         visibility is safe.
28722
28723 2014-02-04  Marek Polacek  <polacek@redhat.com>
28724
28725         * gdbinit.in (pel): Define.
28726
28727 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28728
28729         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
28730         behavior.
28731
28732 2014-02-04  Richard Biener  <rguenther@suse.de>
28733
28734         PR lto/59723
28735         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
28736         in function context local.
28737         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
28738         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
28739         similar to LTO_imported_decl_ref.
28740
28741 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
28742
28743         PR tree-optimization/60002
28744         * cgraphclones.c (build_function_decl_skip_args): Clear
28745         DECL_LANG_SPECIFIC.
28746
28747         PR tree-optimization/60023
28748         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
28749         false to gsi_replace.
28750         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
28751         has been in some EH region and vec_stmt could throw, add
28752         vec_stmt into the same EH region.
28753         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
28754         has no lhs, ignore it.
28755         * internal-fn.c (expand_MASK_LOAD): Likewise.
28756
28757         PR ipa/60026
28758         * tree-inline.c (copy_forbidden): Fail for
28759         __attribute__((optimize (0))) functions.
28760
28761         PR other/58712
28762         * omp-low.c (simd_clone_struct_copy): If from->inbranch
28763         is set, copy one less argument.
28764         (expand_simd_clones): Don't subtract clone_info->inbranch
28765         from simd_clone_struct_alloc argument.
28766
28767         PR rtl-optimization/57915
28768         * recog.c (simplify_while_replacing): If all unary/binary/relational
28769         operation arguments are constant, attempt to simplify those.
28770
28771         PR middle-end/59261
28772         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
28773         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
28774
28775 2014-02-04  Richard Biener  <rguenther@suse.de>
28776
28777         PR tree-optimization/60012
28778         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
28779         TBAA disambiguation to all DDRs.
28780
28781 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28782
28783         PR target/59788
28784         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
28785         (LINK_SPEC): Use it for -shared, -shared-libgcc.
28786
28787 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28788
28789         PR ipa/59882
28790         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
28791
28792 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28793
28794         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
28795         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
28796
28797 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28798
28799         PR ipa/59831
28800         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
28801         to figure out targets of polymorphic calls with known decl.
28802         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28803         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
28804         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
28805         (get_polymorphic_call_info): ... here.
28806         (get_polymorphic_call_info_from_invariant): New function.
28807
28808 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28809
28810         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
28811         lookup via vtable pointer; check for type consistency
28812         and turn inconsitent facts into UNREACHABLE.
28813         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28814         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
28815         type inconsistent querries; return UNREACHABLE instead.
28816
28817 2014-02-03  Richard Henderson  <rth@twiddle.net>
28818
28819         PR tree-opt/59924
28820         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
28821         already processed this node.
28822         (normalize_one_pred_1): Pass along mark_set.
28823         (normalize_one_pred): Create and destroy a pointer_set_t.
28824         (normalize_one_pred_chain): Likewise.
28825
28826 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
28827
28828         PR gcov-profile/58602
28829         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
28830
28831 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28832
28833         PR ipa/59831
28834         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
28835         -fno-devirtualize; try to devirtualize by the knowledge of
28836         virtual table pointer given by aggregate propagation.
28837         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28838         (ipa_print_node_jump_functions): Dump also offset that
28839         is relevant for polymorphic calls.
28840         (determine_known_aggregate_parts): Add arg_type parameter; use it
28841         instead of determining the type from pointer type.
28842         (ipa_compute_jump_functions_for_edge): Update call of
28843         determine_known_aggregate_parts.
28844         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
28845         (gimple_get_virt_method_for_binfo): ... here; simplify using
28846         vtable_pointer_value_to_vtable.
28847         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
28848         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
28849         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
28850         (vtable_pointer_value_to_vtable): Break out from ...; handle also
28851         POINTER_PLUS_EXPR.
28852         (vtable_pointer_value_to_binfo): ... here.
28853         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
28854
28855 2014-02-03  Teresa Johnson  <tejohnson@google.com>
28856
28857         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
28858         redef of outer loop index variable.
28859
28860 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
28861
28862         PR c++/53017
28863         PR c++/59211
28864         * doc/extend.texi (Function Attributes): Typo.
28865
28866 2014-02-03  Cong Hou  <congh@google.com>
28867
28868         PR tree-optimization/60000
28869         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
28870         if the vectorized statement is a store.  A store statement can only
28871         appear at the end of pattern statements.
28872
28873 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
28874
28875         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
28876         (ix86_option_override_internal): Default long double to 64-bit for
28877         32-bit Bionic and to 128-bit for 64-bit Bionic.
28878
28879         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
28880         TARGET_LONG_DOUBLE_128 is true.
28881         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
28882
28883         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
28884         (mlong-double-64): Negate -mlong-double-128.
28885         (mlong-double-128): New option.
28886
28887         * config/i386/i386-c.c (ix86_target_macros): Define
28888         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
28889
28890         * doc/invoke.texi: Document -mlong-double-128.
28891
28892 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
28893
28894         PR rtl-optimization/60024
28895         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
28896
28897 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
28898
28899         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
28900
28901 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
28902
28903         PR rtl-optimization/57662
28904         * sel-sched.c (code_motion_path_driver): Do not mark already not
28905         existing blocks in the visiting bitmap.
28906
28907 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
28908
28909         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
28910         on the insn being emitted.
28911
28912 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
28913             Will Deacon  <will.deacon@arm.com>
28914
28915         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
28916
28917 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28918
28919         * config/arm/arm-tables.opt: Regenerate.
28920
28921 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28922
28923         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
28924         for vector types other than V16QImode.
28925         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
28926         define_expand, and call altivec_expand_vec_perm_le when producing
28927         code with little endian element order.
28928         (*altivec_vperm_<mode>_internal): New insn having previous
28929         behavior of altivec_vperm_<mode>.
28930         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
28931         altivec_expand_vec_perm_le when producing code with little endian
28932         element order.
28933         (*altivec_vperm_<mode>_uns_internal): New insn having previous
28934         behavior of altivec_vperm_<mode>_uns.
28935
28936 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28937
28938         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
28939         (altivec_vsumsws): Add handling for -maltivec=be with a little
28940         endian target.
28941         (altivec_vsumsws_direct): New.
28942         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
28943         gen_altivec_vsumsws.
28944
28945 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
28946
28947         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
28948         vtable_pointer_value_to_binfo): New functions.
28949         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
28950         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
28951
28952 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
28953
28954         * config/nios2/nios2.md (load_got_register): Initialize GOT
28955         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
28956         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
28957
28958 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
28959
28960         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
28961         preserverd by passthrough, do not propagate the type.
28962
28963 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
28964
28965         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
28966         (mips_atomic_assign_expand_fenv): New function.
28967         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
28968
28969 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
28970
28971         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
28972         (__builtin_mips_set_fcsr): Likewise.
28973         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
28974         MIPS_USI_FTYPE_VOID.
28975         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
28976         (mips16_expand_set_fcsr): Likewise.
28977         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
28978         (mips16_set_fcsr_stub): Likewise.
28979         (mips16_get_fcsr_one_only_stub): New class.
28980         (mips16_set_fcsr_one_only_stub): Likewise.
28981         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
28982         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
28983         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
28984         (hard_float): New availability predicate.
28985         (mips_builtins): Add get_fcsr and set_fcsr.
28986         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
28987         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
28988         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
28989         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
28990         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
28991         patterns.
28992
28993 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
28994
28995         * config/mips/mips.c (mips_one_only_stub): New class.
28996         (mips_need_mips16_rdhwr_p): Replace with...
28997         (mips16_rdhwr_stub): ...this new variable.
28998         (mips16_stub_call_address): New function.
28999         (mips16_rdhwr_one_only_stub): New class.
29000         (mips_expand_thread_pointer): Use mips16_stub_call_address.
29001         (mips_output_mips16_rdhwr): Delete.
29002         (mips_finish_stub): New function.
29003         (mips_code_end): Use it to handle rdhwr stubs.
29004
29005 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
29006
29007         PR target/60017
29008         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
29009         when calculating size of integer atomic types.
29010
29011 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
29012
29013         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
29014
29015 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
29016
29017         PR tree-optimization/60003
29018         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
29019         * profile.c (branch_prob): Use gimple_call_builtin_p
29020         to check for BUILT_IN_SETJMP_RECEIVER.
29021         * tree-inline.c (copy_bb): Call notice_special_calls.
29022
29023 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
29024
29025         PR bootstrap/59985
29026         * lra-constraints.c (process_alt_operands): Update reload_sum only
29027         on the first pass.
29028
29029 2014-01-31  Richard Henderson  <rth@redhat.com>
29030
29031         PR middle-end/60004
29032         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
29033         until after else_eh is processed.
29034
29035 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
29036
29037         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
29038         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
29039         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
29040         in smmintrin.h, remove them.
29041         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
29042         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
29043         * config/i386/i386.md (ROUND_SAE): Fix value.
29044         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
29045         (const48_operand): New.
29046         * config/i386/subst.md (round), (round_expand): Use
29047         const_4_or_8_to_11_operand.
29048         (round_saeonly), (round_saeonly_expand): Use const48_operand.
29049
29050 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
29051
29052         * config/i386/constraints.md (Yk): Swap meaning with k.
29053         * config/i386/i386.md (movhi_internal): Change Yk to k.
29054         (movqi_internal): Ditto.
29055         (*k<logic><mode>): Ditto.
29056         (*andhi_1): Ditto.
29057         (*andqi_1): Ditto.
29058         (kandn<mode>): Ditto.
29059         (*<code>hi_1): Ditto.
29060         (*<code>qi_1): Ditto.
29061         (kxnor<mode>): Ditto.
29062         (kortestzhi): Ditto.
29063         (kortestchi): Ditto.
29064         (kunpckhi): Ditto.
29065         (*one_cmplhi2_1): Ditto.
29066         (*one_cmplqi2_1): Ditto.
29067         * config/i386/sse.md (): Change k to Yk.
29068         (avx512f_load<mode>_mask): Ditto.
29069         (avx512f_blendm<mode>): Ditto.
29070         (avx512f_store<mode>_mask): Ditto.
29071         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
29072         (avx512f_storedqu<mode>_mask): Ditto.
29073         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
29074         Ditto.
29075         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
29076         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
29077         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
29078         (avx512f_maskcmp<mode>3): Ditto.
29079         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
29080         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
29081         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
29082         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
29083         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
29084         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
29085         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
29086         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
29087         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
29088         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
29089         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
29090         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
29091         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
29092         (vec_extract_lo_<mode>_maskm): Ditto.
29093         (vec_extract_hi_<mode>_maskm): Ditto.
29094         (avx512f_vternlog<mode>_mask): Ditto.
29095         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
29096         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
29097         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
29098         (avx512f_<code>v8div16qi2_mask): Ditto.
29099         (avx512f_<code>v8div16qi2_mask_store): Ditto.
29100         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
29101         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
29102         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
29103         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
29104         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
29105         (*avx512pf_gatherpf<mode>df_mask): Ditto.
29106         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
29107         (*avx512pf_scatterpf<mode>df_mask): Ditto.
29108         (avx512cd_maskb_vec_dupv8di): Ditto.
29109         (avx512cd_maskw_vec_dupv16si): Ditto.
29110         (avx512f_vpermi2var<mode>3_maskz): Ditto.
29111         (avx512f_vpermi2var<mode>3_mask): Ditto.
29112         (avx512f_vpermi2var<mode>3_mask): Ditto.
29113         (avx512f_vpermt2var<mode>3_maskz): Ditto.
29114         (*avx512f_gathersi<mode>): Ditto.
29115         (*avx512f_gathersi<mode>_2): Ditto.
29116         (*avx512f_gatherdi<mode>): Ditto.
29117         (*avx512f_gatherdi<mode>_2): Ditto.
29118         (*avx512f_scattersi<mode>): Ditto.
29119         (*avx512f_scatterdi<mode>): Ditto.
29120         (avx512f_compress<mode>_mask): Ditto.
29121         (avx512f_compressstore<mode>_mask): Ditto.
29122         (avx512f_expand<mode>_mask): Ditto.
29123         * config/i386/subst.md (mask): Change k to Yk.
29124         (mask_scalar_merge): Ditto.
29125         (sd): Ditto.
29126
29127 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
29128
29129         * doc/extend.texi (Vector Extensions): Document ?: in C++.
29130
29131 2014-01-31  Richard Biener  <rguenther@suse.de>
29132
29133         PR middle-end/59990
29134         * builtins.c (fold_builtin_memory_op): Make sure to not
29135         use a floating-point mode or a boolean or enumeral type for
29136         the copy operation.
29137
29138 2014-01-30  DJ Delorie  <dj@redhat.com>
29139
29140         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
29141         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
29142         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
29143         whenever main() has an epilogue.
29144
29145 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29146
29147         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
29148         unused variable "field".
29149         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
29150         (vsx_mergeh_<mode>): Likewise.
29151         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
29152         (altivec_vmrghh): Likewise.
29153         (altivec_vmrghw): Likewise.
29154         (altivec_vmrglb): Likewise.
29155         (altivec_vmrglh): Likewise.
29156         (altivec_vmrglw): Likewise.
29157         (altivec_vspltb): Add missing uses.
29158         (altivec_vsplth): Likewise.
29159         (altivec_vspltw): Likewise.
29160         (altivec_vspltsf): Likewise.
29161
29162 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
29163
29164         PR target/59923
29165         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
29166         frame related instructions.
29167
29168 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
29169
29170         PR rtl-optimization/59959
29171         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
29172         any reload of register whose subreg is invalid.
29173
29174 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
29175
29176         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
29177         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
29178         Add missing return type - void.
29179
29180 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29181
29182         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
29183         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
29184         remove element index adjustment for endian (now handled in vsx.md
29185         and altivec.md).
29186         (altivec_expand_vec_perm_const): Use
29187         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
29188         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
29189         (vsx_xxspltw_<mode>): Adjust element index for little endian.
29190         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
29191         define_expand and a new define_insn *altivec_vspltb_internal;
29192         adjust for -maltivec=be on a little endian target.
29193         (altivec_vspltb_direct): New.
29194         (altivec_vsplth): Divide into a define_expand and a new
29195         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
29196         little endian target.
29197         (altivec_vsplth_direct): New.
29198         (altivec_vspltw): Divide into a define_expand and a new
29199         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
29200         little endian target.
29201         (altivec_vspltw_direct): New.
29202         (altivec_vspltsf): Divide into a define_expand and a new
29203         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
29204         a little endian target.
29205
29206 2014-01-30  Richard Biener  <rguenther@suse.de>
29207
29208         PR tree-optimization/59993
29209         * tree-ssa-forwprop.c (associate_pointerplus): Check we
29210         can propagate form the earlier stmt and avoid the transform
29211         when the intermediate result is needed.
29212
29213 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
29214
29215         * README.Portability: Fix typo.
29216
29217 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
29218
29219         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
29220         comparison_operator with ordered_comparison_operator.
29221
29222 2014-01-30  Nick Clifton  <nickc@redhat.com>
29223
29224         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
29225         Rename to mn10300_store_multiple_regs.
29226         * config/mn10300/mn10300.c: Likewise.
29227         * config/mn10300/mn10300.md (store_movm): Fix typo: call
29228         store_multiple_regs.
29229         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
29230         Call mn10300_store_multiple_regs.
29231
29232 2014-01-30  Nick Clifton  <nickc@redhat.com>
29233             DJ Delorie  <dj@redhat.com>
29234
29235         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
29236         %fp 2 to keep registers after it properly word-aligned.
29237         (rl78_alloc_physical_registers_umul): Handle the case where both
29238         input operands are the same.
29239
29240 2014-01-30  Richard Biener  <rguenther@suse.de>
29241
29242         PR tree-optimization/59903
29243         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
29244         check properly.
29245
29246 2014-01-30  Jason Merrill  <jason@redhat.com>
29247
29248         PR c++/59633
29249         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
29250
29251         PR c++/59645
29252         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
29253
29254 2014-01-30  Richard Biener  <rguenther@suse.de>
29255
29256         PR tree-optimization/59951
29257         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
29258
29259 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
29260
29261         PR target/59784
29262         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
29263         SFmode to DFmode case.
29264
29265 2014-01-29  DJ Delorie  <dj@redhat.com>
29266
29267         * config/msp430/msp430.opt (-minrt): New.
29268         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
29269         if -minrt given.
29270         (ENDFILE_SPEC): Likewise.
29271
29272 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
29273
29274         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
29275         (estimate_function_body_sizes): Use it.
29276
29277 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
29278
29279         PR c++/58561
29280         * dwarf2out.c (is_cxx_auto): New.
29281         (is_base_type): Use it.
29282         (gen_type_die_with_usage): Likewise.
29283
29284 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29285
29286         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
29287         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
29288         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
29289         -maltivec=be with LE targets.
29290         (vsx_mergeh_<mode>): Likewise.
29291         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
29292         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
29293         (altivec_vmrghb): Replace with define_expand and new
29294         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
29295         (altivec_vmrghb_direct): New define_insn.
29296         (altivec_vmrghh): Replace with define_expand and new
29297         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
29298         (altivec_vmrghh_direct): New define_insn.
29299         (altivec_vmrghw): Replace with define_expand and new
29300         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
29301         (altivec_vmrghw_direct): New define_insn.
29302         (*altivec_vmrghsf): Adjust for endianness.
29303         (altivec_vmrglb): Replace with define_expand and new
29304         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
29305         (altivec_vmrglb_direct): New define_insn.
29306         (altivec_vmrglh): Replace with define_expand and new
29307         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
29308         (altivec_vmrglh_direct): New define_insn.
29309         (altivec_vmrglw): Replace with define_expand and new
29310         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
29311         (altivec_vmrglw_direct): New define_insn.
29312         (*altivec_vmrglsf): Adjust for endianness.
29313         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
29314         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
29315         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
29316         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
29317         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
29318         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
29319         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
29320         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
29321
29322 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
29323
29324         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
29325         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
29326         whitespace.
29327
29328 2014-01-29  Richard Biener  <rguenther@suse.de>
29329
29330         PR tree-optimization/58742
29331         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
29332         associate_pointerplus_align.
29333         (associate_pointerplus_diff): New function.
29334         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
29335         and associate_pointerplus_diff.
29336
29337 2014-01-29  Richard Biener  <rguenther@suse.de>
29338
29339         * lto-streamer.h (LTO_major_version): Bump to 3.
29340         (LTO_minor_version): Reset to 0.
29341
29342 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
29343
29344         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
29345         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
29346         (arm_file_start): Generate correct asm header for armv7ve.
29347         * config/arm/bpabi.h: Add multilib support for armv7ve.
29348         * config/arm/driver-arm.c: Change the architectures of cortex-a7
29349         and cortex-a15 to armv7ve.
29350         * config/arm/t-aprofile: Add multilib support for armv7ve.
29351         * doc/invoke.texi: Document -march=armv7ve.
29352
29353 2014-01-29  Richard Biener  <rguenther@suse.de>
29354
29355         PR tree-optimization/58742
29356         * tree-ssa-forwprop.c (associate_plusminus): Return true
29357         if we changed sth, defer EH cleanup to ...
29358         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
29359         (simplify_mult): New function.
29360
29361 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
29362
29363         PR middle-end/59917
29364         PR tree-optimization/59920
29365         * tree.c (build_common_builtin_nodes): Remove
29366         __builtin_setjmp_dispatcher initialization.
29367         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
29368         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
29369         instead of gsi_after_labels + manually skipping debug stmts.
29370         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
29371         ignore bbs with IFN_ABNORMAL_DISPATCHER.
29372         * tree-inline.c (copy_edges_for_bb): Remove
29373         can_make_abnormal_goto argument, instead add abnormal_goto_dest
29374         argument.  Ignore computed_goto_p stmts.  Don't call
29375         make_abnormal_goto_edges.  If a call might need abnormal edges
29376         for non-local gotos, see if it already has an edge to
29377         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
29378         with true argument, don't do anything then, otherwise add
29379         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
29380         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
29381         caller.
29382         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
29383         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
29384         (lower_stmt): Don't set data->calls_builtin_setjmp.
29385         (lower_builtin_setjmp): Adjust comment.
29386         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
29387         * tree-cfg.c (found_computed_goto): Remove.
29388         (factor_computed_gotos): Remove.
29389         (make_goto_expr_edges): Return bool, true for computed gotos.
29390         Don't call make_abnormal_goto_edges.
29391         (build_gimple_cfg): Don't set found_computed_goto, don't call
29392         factor_computed_gotos.
29393         (computed_goto_p): No longer static.
29394         (make_blocks): Don't set found_computed_goto.
29395         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
29396         (make_edges): If make_goto_expr_edges returns true, push bb
29397         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
29398         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
29399         vector.  Record mapping between bbs and OpenMP regions if there
29400         are any, adjust make_gimple_omp_edges caller.  Call
29401         handle_abnormal_edges.
29402         (make_abnormal_goto_edges): Remove.
29403         * tree-cfg.h (make_abnormal_goto_edges): Remove.
29404         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
29405         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
29406         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
29407         * internal-fn.def (ABNORMAL_DISPATCHER): New.
29408         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
29409         filling *region also set *region_idx to (*region)->entry->index.
29410
29411         PR other/58712
29412         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
29413         For REGs set ORIGINAL_REGNO.
29414
29415 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
29416
29417         * doc/md.texi: Mention that a target shouldn't implement
29418         vec_widen_(s|u)mul_even/odd pair if it is less efficient
29419         than hi/lo pair.
29420
29421 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
29422
29423         PR tree-optimization/59594
29424         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
29425         a copy of the datarefs vector rather than the vector itself.
29426
29427 2014-01-28  Jason Merrill  <jason@redhat.com>
29428
29429         PR c++/53756
29430         * dwarf2out.c (auto_die): New static.
29431         (gen_type_die_with_usage): Handle C++1y 'auto'.
29432         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
29433         on definition.
29434
29435 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
29436
29437         PR target/59672
29438         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
29439         (SPEC_X32): Likewise.
29440         (SPEC_64): Likewise.
29441         * config/i386/i386.c (ix86_option_override_internal): Turn off
29442         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
29443         for TARGET_16BIT.
29444         (x86_file_start): Output .code16gcc for TARGET_16BIT.
29445         * config/i386/i386.h (TARGET_16BIT): New macro.
29446         (TARGET_16BIT_P): Likewise.
29447         * config/i386/i386.opt: Add m16.
29448         * doc/invoke.texi: Document -m16.
29449
29450 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
29451
29452         PR preprocessor/59935
29453         * input.c (location_get_source_line): Bail out on when line number
29454         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
29455
29456 2014-01-28  Richard Biener  <rguenther@suse.de>
29457
29458         PR tree-optimization/58742
29459         * tree-ssa-forwprop.c (associate_plusminus): Handle
29460         pointer subtraction of the form (T)(P + A) - (T)P.
29461
29462 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29463
29464         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
29465         at const_int_cost.
29466
29467 2014-01-28  Richard Biener  <rguenther@suse.de>
29468
29469         Revert
29470         2014-01-28  Richard Biener  <rguenther@suse.de>
29471
29472         PR rtl-optimization/45364
29473         PR rtl-optimization/59890
29474         * var-tracking.c (local_get_addr_clear_given_value): Handle
29475         already cleared slot.
29476         (val_reset): Handle not allocated local_get_addr_cache.
29477         (vt_find_locations): Use post-order on the inverted CFG.
29478
29479 2014-01-28  Richard Biener  <rguenther@suse.de>
29480
29481         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
29482
29483 2014-01-28  Richard Biener  <rguenther@suse.de>
29484
29485         PR rtl-optimization/45364
29486         PR rtl-optimization/59890
29487         * var-tracking.c (local_get_addr_clear_given_value): Handle
29488         already cleared slot.
29489         (val_reset): Handle not allocated local_get_addr_cache.
29490         (vt_find_locations): Use post-order on the inverted CFG.
29491
29492 2014-01-28  Alan Modra  <amodra@gmail.com>
29493
29494         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
29495         * configure.ac <recursive call for build != host>: Define
29496         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
29497         and LD_FOR_BUILD too.
29498         * configure: Regenerate.
29499
29500 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
29501
29502         * config/i386/i386.c (get_builtin_code_for_version): Separate
29503         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
29504         Broadwell from Haswell.
29505
29506 2014-01-27  Steve Ellcey  <sellcey@mips.com>
29507
29508         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
29509         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
29510         * config/mips/mips.c (mips_option_override): Change setting
29511         of TARGET_DSP.
29512         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
29513         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
29514         Change from Mask to Var.
29515
29516 2014-01-27  Jeff Law  <law@redhat.com>
29517
29518         * ipa-inline.c (inline_small_functions): Fix typo.
29519
29520 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
29521
29522         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
29523         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
29524         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
29525         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
29526         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
29527         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
29528         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
29529         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
29530         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
29531         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
29532         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
29533         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
29534         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
29535         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
29536         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
29537         (_mm512_storeu_epi64): Ditto.
29538         (_mm512_cmpge_epi32_mask): Ditto.
29539         (_mm512_cmpge_epu32_mask): Ditto.
29540         (_mm512_cmpge_epi64_mask): Ditto.
29541         (_mm512_cmpge_epu64_mask): Ditto.
29542         (_mm512_cmple_epi32_mask): Ditto.
29543         (_mm512_cmple_epu32_mask): Ditto.
29544         (_mm512_cmple_epi64_mask): Ditto.
29545         (_mm512_cmple_epu64_mask): Ditto.
29546         (_mm512_cmplt_epi32_mask): Ditto.
29547         (_mm512_cmplt_epu32_mask): Ditto.
29548         (_mm512_cmplt_epi64_mask): Ditto.
29549         (_mm512_cmplt_epu64_mask): Ditto.
29550         (_mm512_cmpneq_epi32_mask): Ditto.
29551         (_mm512_cmpneq_epu32_mask): Ditto.
29552         (_mm512_cmpneq_epi64_mask): Ditto.
29553         (_mm512_cmpneq_epu64_mask): Ditto.
29554         (_mm512_expand_pd): Ditto.
29555         (_mm512_expand_ps): Ditto.
29556         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
29557         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
29558         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
29559         * config/i386/i386.c (ix86_builtins): Add
29560         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
29561         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
29562         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
29563         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
29564         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
29565         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
29566         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
29567         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
29568         IX86_BUILTIN_PMOVUSQW512_MEM.
29569         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
29570         __builtin_ia32_pmovsqd512mem_mask,
29571         __builtin_ia32_pmovqd512mem_mask,
29572         __builtin_ia32_pmovusqw512mem_mask,
29573         __builtin_ia32_pmovsqw512mem_mask,
29574         __builtin_ia32_pmovqw512mem_mask,
29575         __builtin_ia32_pmovusdw512mem_mask,
29576         __builtin_ia32_pmovsdw512mem_mask,
29577         __builtin_ia32_pmovdw512mem_mask,
29578         __builtin_ia32_pmovqb512mem_mask,
29579         __builtin_ia32_pmovusqb512mem_mask,
29580         __builtin_ia32_pmovsqb512mem_mask,
29581         __builtin_ia32_pmovusdb512mem_mask,
29582         __builtin_ia32_pmovsdb512mem_mask,
29583         __builtin_ia32_pmovdb512mem_mask.
29584         (bdesc_args): Add __builtin_ia32_expanddf512,
29585         __builtin_ia32_expandsf512.
29586         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
29587         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
29588         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
29589         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
29590         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
29591         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
29592         (avx512f_<code>v8div16qi2_mask_store): This.
29593         (avx512f_expand<mode>): New.
29594
29595 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
29596
29597         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
29598         New.
29599         (_mm512_mask_prefetch_i64gather_pd): Ditto.
29600         (_mm512_prefetch_i32scatter_pd): Ditto.
29601         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
29602         (_mm512_prefetch_i64scatter_pd): Ditto.
29603         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
29604         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
29605         (_mm512_mask_prefetch_i64gather_ps): Ditto.
29606         (_mm512_prefetch_i32scatter_ps): Ditto.
29607         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
29608         (_mm512_prefetch_i64scatter_ps): Ditto.
29609         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
29610         * config/i386/i386-builtin-types.def: Define
29611         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
29612         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
29613         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
29614         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
29615         IX86_BUILTIN_SCATTERPFQPD.
29616         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
29617         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
29618         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
29619         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
29620         __builtin_ia32_scatterpfqps.
29621         (ix86_expand_builtin): Expand new built-ins.
29622         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
29623         fix memory access data type.
29624         (*avx512pf_gatherpf<mode>_mask): Ditto.
29625         (*avx512pf_gatherpf<mode>): Ditto.
29626         (avx512pf_scatterpf<mode>): Ditto.
29627         (*avx512pf_scatterpf<mode>_mask): Ditto.
29628         (*avx512pf_scatterpf<mode>): Ditto.
29629         (GATHER_SCATTER_SF_MEM_MODE): New.
29630         (avx512pf_gatherpf<mode>df): Ditto.
29631         (*avx512pf_gatherpf<mode>df_mask): Ditto.
29632         (*avx512pf_scatterpf<mode>df): Ditto.
29633
29634 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
29635
29636         PR bootstrap/59934
29637         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
29638         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
29639         reached.
29640
29641 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
29642
29643         * common/config/arm/arm-common.c
29644         (arm_rewrite_mcpu): Handle multiple names.
29645         * config/arm/arm.h
29646         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
29647
29648 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
29649
29650         * gimple-builder.h (create_gimple_tmp): Delete.
29651
29652 2014-01-27  Christian Bruel  <christian.bruel@st.com>
29653
29654         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
29655         words comparisons.
29656
29657 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
29658
29659         * config/pa/pa.md (call): Generate indirect long calls to non-local
29660         functions when outputing 32-bit code.
29661         (call_value): Likewise except for special call to buggy powf function.
29662
29663         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
29664         portable runtime and PIC indirect calls.
29665         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
29666         and PIC call sequences.  Use ldo instead of blr to set return register
29667         in PIC call sequence.
29668
29669 2014-01-25  Walter Lee  <walt@tilera.com>
29670
29671         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
29672         avoid clobbering a live register.
29673
29674 2014-01-25  Walter Lee  <walt@tilera.com>
29675
29676         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
29677         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
29678         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
29679         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
29680
29681 2014-01-25  Walter Lee  <walt@tilera.com>
29682
29683         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
29684         arguments on even registers.
29685         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
29686         STACK_BOUNDARY.
29687         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
29688         (BIGGEST_ALIGNMENT): Ditto.
29689         (BIGGEST_FIELD_ALIGNMENT): Ditto.
29690
29691 2014-01-25  Walter Lee  <walt@tilera.com>
29692
29693         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
29694         insns before bundling.
29695         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
29696
29697 2014-01-25  Walter Lee  <walt@tilera.com>
29698
29699         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
29700         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
29701         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
29702
29703 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
29704
29705         * config/mips/constraints.md (kl): Delete.
29706         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
29707         define expands, using...
29708         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
29709         instructions for MIPS16.
29710         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
29711         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
29712
29713 2014-01-25  Walter Lee  <walt@tilera.com>
29714
29715         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
29716         (clzdi2): Ditto.
29717         (ffsdi2): Ditto.
29718
29719 2014-01-25  Walter Lee  <walt@tilera.com>
29720
29721         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
29722         (TARGET_EXPAND_TO_RTL_HOOK): Define.
29723
29724 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
29725
29726         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
29727         Handle XOR.
29728
29729 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
29730
29731         * print-rtl.c (in_call_function_usage): New var.
29732         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
29733         EXPR_LIST mode as mode and not as reg note name.
29734
29735         PR middle-end/59561
29736         * cfgloopmanip.c (copy_loop_info): If
29737         loop->warned_aggressive_loop_optimizations, make sure
29738         the flag is set in target loop too.
29739
29740 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
29741
29742         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
29743         flag_cilkplus.
29744         * builtins.def: Likewise.
29745         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
29746         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
29747         * ira.c (ira_setup_eliminable_regset): Likewise.
29748         * omp-low.c (gate_expand_omp): Likewise.
29749         (execute_lower_omp): Likewise.
29750         (diagnose_sb_0): Likewise.
29751         (gate_diagnose_omp_blocks): Likewise.
29752         (simd_clone_clauses_extract): Likewise.
29753         (gate): Likewise.
29754
29755 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29756
29757         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
29758         correction for little endian...
29759         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
29760         here.
29761
29762 2014-01-24  Jeff Law  <law@redhat.com>
29763
29764         PR tree-optimization/59919
29765         * tree-vrp.c (find_assert_locations_1): Do not register asserts
29766         for non-returning calls.
29767
29768 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
29769
29770         * common/config/aarch64/aarch64-common.c
29771         (aarch64_rewrite_mcpu): Handle multiple names.
29772         * config/aarch64/aarch64.h
29773         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
29774
29775 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
29776
29777         * input.c (add_file_to_cache_tab): Handle the case where fopen
29778         returns NULL.
29779
29780 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
29781
29782         PR target/59929
29783         * config/i386/i386.md (pushsf splitter): Get stack adjustment
29784         from push operand if code of push isn't PRE_DEC.
29785
29786 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
29787
29788         PR target/59909
29789         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
29790         -mquad-memory-atomic.  Update -mquad-memory documentation to say
29791         it is only used for non-atomic loads/stores.
29792
29793         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
29794         -mquad-memory or -mquad-memory-atomic switches.
29795
29796         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
29797         -mquad-memory-atomic to ISA 2.07 support.
29798
29799         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
29800         to separate support of normal quad word memory operations (ldq, stq)
29801         from the atomic quad word memory operations.
29802
29803         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
29804         support to separate non-atomic quad word operations from atomic
29805         quad word operations.  Disable non-atomic quad word operations in
29806         little endian mode so that we don't have to swap words after the
29807         load and before the store.
29808         (quad_load_store_p): Add comment about atomic quad word support.
29809         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
29810         options printed with -mdebug=reg.
29811
29812         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
29813         -mquad-memory-atomic as the test for whether we have quad word
29814         atomic instructions.
29815         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
29816         or -mp8-vector are used, allow byte/half-word atomic operations.
29817
29818         * config/rs6000/sync.md (load_lockedti): Insure that the address
29819         is a proper indexed or indirect address for the lqarx instruction.
29820         On little endian systems, swap the hi/lo registers after the lqarx
29821         instruction.
29822         (load_lockedpti): Use indexed_or_indirect_operand predicate to
29823         insure the address is valid for the lqarx instruction.
29824         (store_conditionalti): Insure that the address is a proper indexed
29825         or indirect address for the stqcrx. instruction.  On little endian
29826         systems, swap the hi/lo registers before doing the stqcrx.
29827         instruction.
29828         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
29829         insure the address is valid for the stqcrx. instruction.
29830
29831         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
29832         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
29833         type of quad memory support is available.
29834
29835 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
29836
29837         PR regression/59915
29838         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
29839         there is a danger of looping.
29840
29841 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
29842
29843         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
29844         force flag_ira_loop_pressure if set via command line.
29845
29846 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
29847
29848         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
29849         (ashr_simd): New builtin handling DI mode.
29850         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
29851         (aarch64_sshr_simddi): New match pattern.
29852         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
29853         (vshrd_n_s64): Likewise.
29854         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
29855
29856 2014-01-23  Nick Clifton  <nickc@redhat.com>
29857
29858         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
29859         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
29860         favour of mcu specific scripts.
29861         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
29862         430x multilibs.
29863
29864 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
29865             Alex Velenko  <Alex.Velenko@arm.com>
29866
29867         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
29868         (vaddv_s16): Likewise.
29869         (vaddv_s32): Likewise.
29870         (vaddv_u8): Likewise.
29871         (vaddv_u16): Likewise.
29872         (vaddv_u32): Likewise.
29873         (vaddvq_s8): Likewise.
29874         (vaddvq_s16): Likewise.
29875         (vaddvq_s32): Likewise.
29876         (vaddvq_s64): Likewise.
29877         (vaddvq_u8): Likewise.
29878         (vaddvq_u16): Likewise.
29879         (vaddvq_u32): Likewise.
29880         (vaddvq_u64): Likewise.
29881         (vaddv_f32): Likewise.
29882         (vaddvq_f32): Likewise.
29883         (vaddvq_f64): Likewise.
29884         (vmaxv_f32): Likewise.
29885         (vmaxv_s8): Likewise.
29886         (vmaxv_s16): Likewise.
29887         (vmaxv_s32): Likewise.
29888         (vmaxv_u8): Likewise.
29889         (vmaxv_u16): Likewise.
29890         (vmaxv_u32): Likewise.
29891         (vmaxvq_f32): Likewise.
29892         (vmaxvq_f64): Likewise.
29893         (vmaxvq_s8): Likewise.
29894         (vmaxvq_s16): Likewise.
29895         (vmaxvq_s32): Likewise.
29896         (vmaxvq_u8): Likewise.
29897         (vmaxvq_u16): Likewise.
29898         (vmaxvq_u32): Likewise.
29899         (vmaxnmv_f32): Likewise.
29900         (vmaxnmvq_f32): Likewise.
29901         (vmaxnmvq_f64): Likewise.
29902         (vminv_f32): Likewise.
29903         (vminv_s8): Likewise.
29904         (vminv_s16): Likewise.
29905         (vminv_s32): Likewise.
29906         (vminv_u8): Likewise.
29907         (vminv_u16): Likewise.
29908         (vminv_u32): Likewise.
29909         (vminvq_f32): Likewise.
29910         (vminvq_f64): Likewise.
29911         (vminvq_s8): Likewise.
29912         (vminvq_s16): Likewise.
29913         (vminvq_s32): Likewise.
29914         (vminvq_u8): Likewise.
29915         (vminvq_u16): Likewise.
29916         (vminvq_u32): Likewise.
29917         (vminnmv_f32): Likewise.
29918         (vminnmvq_f32): Likewise.
29919         (vminnmvq_f64): Likewise.
29920
29921 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
29922
29923         * config/aarch64/aarch64-simd.md
29924         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
29925         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
29926         (*aarch64_mul3_elt<mode>): Likewise.
29927         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
29928         (*aarch64_mul3_elt_to_64v2df): Likewise.
29929         (*aarch64_mla_elt<mode>): Likewise.
29930         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
29931         (*aarch64_mls_elt<mode>): Likewise.
29932         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
29933         (*aarch64_fma4_elt<mode>): Likewise.
29934         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
29935         (*aarch64_fma4_elt_to_64v2df): Likewise.
29936         (*aarch64_fnma4_elt<mode>): Likewise.
29937         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
29938         (*aarch64_fnma4_elt_to_64v2df): Likewise.
29939         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
29940         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
29941         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
29942         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
29943         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
29944         (aarch64_sqdmull_lane<mode>_internal): Likewise.
29945         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
29946
29947 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
29948
29949         * config/aarch64/aarch64-simd.md
29950         (aarch64_be_checked_get_lane<mode>): New define_expand.
29951         * config/aarch64/aarch64-simd-builtins.def
29952         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
29953         New builtin definition.
29954         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
29955         Use new safe be builtin.
29956
29957 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
29958
29959         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
29960         New define_insn.
29961         (aarch64_be_st1<mode>): Likewise.
29962         (aarch_ld1<VALL:mode>): Define_expand modified.
29963         (aarch_st1<VALL:mode>): Likewise.
29964         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
29965         (UNSPEC_ST1): Likewise.
29966
29967 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
29968
29969         * config/microblaze/microblaze.md: Add trap insn and attribute
29970
29971 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
29972
29973         PR preprocessor/58580
29974         * input.h (location_get_source_line): Take an additional line_size
29975         parameter.
29976         (void diagnostics_file_cache_fini): Declare new function.
29977         * input.c (struct fcache): New type.
29978         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
29979         New static constants.
29980         (diagnostic_file_cache_init, total_lines_num)
29981         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
29982         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
29983         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
29984         (get_next_line, read_next_line, goto_next_line, read_line_num):
29985         New static function definitions.
29986         (diagnostic_file_cache_fini): New function.
29987         (location_get_source_line): Take an additional output line_len
29988         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
29989         read_line_num.
29990         * diagnostic.c (diagnostic_finish): Call
29991         diagnostic_file_cache_fini.
29992         (adjust_line): Take an additional input parameter for the length
29993         of the line, rather than calculating it with strlen.
29994         (diagnostic_show_locus): Adjust the use of
29995         location_get_source_line and adjust_line with respect to their new
29996         signature.  While displaying a line now, do not stop at the first
29997         null byte.  Rather, display the zero byte as a space and keep
29998         going until we reach the size of the line.
29999         * Makefile.in: Add vec.o to OBJS-libcommon
30000
30001 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
30002             Ilya Tocar  <ilya.tocar@intel.com>
30003
30004         * config/i386/avx512fintrin.h (_mm512_kmov): New.
30005         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
30006         (__builtin_ia32_kmov16): Ditto.
30007         * config/i386/i386.md (UNSPEC_KMOV): New.
30008         (kmovw): Ditto.
30009
30010 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
30011
30012         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
30013         (_mm512_storeu_si512): Ditto.
30014
30015 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
30016
30017         PR target/52125
30018         * rtl.h (get_referenced_operands): Declare.
30019         * recog.c (get_referenced_operands): New function.
30020         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
30021         operands have been referenced when recording LO_SUM references.
30022
30023 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
30024
30025         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
30026
30027 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
30028
30029         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
30030         Enable for generic and recent AMD targets.
30031
30032 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
30033
30034         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
30035         ARG_SIZE note when adjustment was eliminated.
30036
30037 2014-01-22  Jeff Law  <law@redhat.com>
30038
30039         PR tree-optimization/59597
30040         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
30041         in file.  Accept new argument REGISTERING and use it to modify
30042         dump output appropriately.
30043         (register_jump_thread): Corresponding changes.
30044         (mark_threaded_blocks): Reinstate code to cancel unprofitable
30045         thread paths involving joiner blocks.  Add code to dump cancelled
30046         jump threading paths.
30047
30048 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
30049
30050         PR rtl-optimization/59477
30051         * lra-constraints.c (inherit_in_ebb): Process call for living hard
30052         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
30053
30054 2014-01-22  Tom Tromey  <tromey@redhat.com>
30055
30056         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
30057         PARAMS.
30058         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
30059
30060 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
30061
30062         PR rtl-optimization/59896
30063         * lra-constraints.c (process_alt_operands): Check unused note for
30064         matched operands of insn with no output reloads.
30065
30066 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
30067
30068         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
30069         (mips_move_from_gpr_cost): Likewise.
30070
30071 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
30072
30073         PR rtl-optimization/59858
30074         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
30075         ira_class_hard_regs_num.
30076         (process_alt_operands): Increase reject for dying matched operand.
30077
30078 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
30079
30080         PR target/59003
30081         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
30082         smaller than size, perform several stores or loads and stores
30083         at dst + count - size to store or copy all of size bytes, rather
30084         than just last modesize bytes.
30085
30086 2014-01-20  DJ Delorie  <dj@redhat.com>
30087
30088         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
30089         that CLOBBERs are REGs before propogating their values.
30090
30091 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
30092
30093         PR middle-end/59789
30094         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
30095         (cgraph_inline_failed_type): New function.
30096         * cgraph.h (DEFCIFCODE): Add type.
30097         (cgraph_inline_failed_type_t): New enum.
30098         (cgraph_inline_failed_type): New prototype.
30099         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
30100         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
30101         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
30102         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
30103         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
30104         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
30105         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
30106         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
30107         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
30108         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
30109         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
30110         OPTIMIZATION_MISMATCH.
30111         * tree-inline.c (expand_call_inline): Emit errors during
30112         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
30113
30114 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
30115
30116         PR target/59685
30117         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
30118         mode attribute in insn output.
30119
30120 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
30121
30122         * output.h (output_constant): Delete.
30123         * varasm.c (output_constant): Make private.
30124
30125 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
30126
30127         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
30128
30129 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
30130
30131         PR middle-end/59860
30132         * tree.h (fold_builtin_strcat): New prototype.
30133         * builtins.c (fold_builtin_strcat): No longer static.  Add len
30134         argument, if non-NULL, don't call c_strlen.  Optimize
30135         directly into __builtin_memcpy instead of __builtin_strcpy.
30136         (fold_builtin_2): Adjust fold_builtin_strcat caller.
30137         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
30138
30139 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
30140
30141         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
30142         for SImode_address_operand operands, having only a REG argument.
30143
30144 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
30145
30146         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
30147         loader name using mbig-endian.
30148         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
30149
30150 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
30151
30152         * doc/invoke.texi (-march): Clarify documentation for AArch64.
30153         (-mtune): Likewise.
30154         (-mcpu): Likewise.
30155
30156 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
30157
30158         * config/aarch64/aarch64-protos.h
30159         (aarch64_cannot_change_mode_class_ptr): Declare.
30160         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
30161         aarch64_cannot_change_mode_class_ptr): New.
30162         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
30163         backend hook aarch64_cannot_change_mode_class.
30164
30165 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
30166
30167         * common/config/aarch64/aarch64-common.c
30168         (aarch64_handle_option): Don't handle any option order logic here.
30169         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
30170         selected_cpu, warn on architecture version mismatch.
30171         (aarch64_override_options): Fix parsing order for option strings.
30172
30173 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
30174             Iain Sandoe  <iain@codesourcery.com>
30175
30176         PR bootstrap/59496
30177         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
30178         warning.  Amend comment to reflect current functionality.
30179
30180 2014-01-20  Richard Biener  <rguenther@suse.de>
30181
30182         PR middle-end/59860
30183         * builtins.c (fold_builtin_strcat): Remove case better handled
30184         by tree-ssa-strlen.c.
30185
30186 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
30187
30188         * config/aarch64/aarch64.opt
30189         (mcpu, march, mtune): Make case-insensitive.
30190
30191 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
30192
30193         PR target/59880
30194         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
30195         if operands[1] is a REG or ZERO_EXTEND of a REG.
30196
30197 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
30198
30199         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
30200
30201 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
30202
30203         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
30204         long non-pic millicode calls.
30205
30206 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
30207
30208         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
30209
30210 2014-01-19  Kito Cheng  <kito@0xlab.org>
30211
30212         * builtins.c (expand_movstr): Check movstr expand done or fail.
30213
30214 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
30215             H.J. Lu  <hongjiu.lu@intel.com>
30216
30217         PR target/59379
30218         * config/i386/i386.md (*lea<mode>): Zero-extend return register
30219         to DImode for zero-extended addresses.
30220
30221 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
30222
30223         PR rtl-optimization/57763
30224         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
30225         on the new indirect jump_insn and increment LABEL_NUSES (label).
30226
30227 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
30228
30229         PR bootstrap/59580
30230         PR bootstrap/59583
30231         * config.gcc (x86_archs): New variable.
30232         (x86_64_archs): Likewise.
30233         (x86_cpus): Likewise.
30234         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
30235         --with-arch/--with-cpu= options.
30236         Support --with-arch=/--with-cpu={nehalem,westmere,
30237         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
30238
30239 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
30240
30241         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
30242         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
30243
30244 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
30245
30246         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
30247
30248 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
30249
30250         PR target/58944
30251         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
30252         clear cpp_get_options (parse_in)->warn_unused_macros for
30253         ix86_target_macros_internal with cpp_define.
30254
30255 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
30256
30257         * jump.c (delete_related_insns): Keep (use (insn))s.
30258         * reorg.c (redundant_insn): Check for barriers too.
30259
30260 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30261
30262         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
30263
30264 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
30265
30266         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
30267         call to $$dyncall when TARGET_LONG_CALLS is true.
30268
30269 2014-01-17  Jeff Law  <law@redhat.com>
30270
30271         * ree.c (combine_set_extension): Temporarily disable test for
30272         changing number of hard registers.
30273
30274 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
30275
30276         PR middle-end/58125
30277         * ipa-inline-analysis.c (inline_free_summary):
30278         Do not free summary of aliases.
30279
30280 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
30281
30282         PR middle-end/59706
30283         * gimplify.c (gimplify_expr): Use create_tmp_var
30284         instead of create_tmp_var_raw.  If cond doesn't have
30285         integral type, don't add the IFN_ANNOTATE builtin at all.
30286
30287 2014-01-17  Martin Jambor  <mjambor@suse.cz>
30288
30289         PR ipa/59736
30290         * ipa-cp.c (prev_edge_clone): New variable.
30291         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
30292         Also resize prev_edge_clone vector.
30293         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
30294         (ipcp_edge_removal_hook): New function.
30295         (ipcp_driver): Register ipcp_edge_removal_hook.
30296
30297 2014-01-17  Andrew Pinski  <apinski@cavium.com>
30298             Steve Ellcey  <sellcey@mips.com>
30299
30300         PR target/59462
30301         * config/mips/mips.c (mips_print_operand): Check operand mode instead
30302         of operator mode.
30303
30304 2014-01-17  Jeff Law  <law@redhat.com>
30305
30306         PR middle-end/57904
30307         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
30308         so that pass_ccp runs first.
30309
30310 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30311
30312         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
30313         (ix86_adjust_cost): Use !TARGET_XXX.
30314         (do_reorder_for_imul): Likewise.
30315         (swap_top_of_ready_list): Likewise.
30316         (ix86_sched_reorder): Likewise.
30317
30318 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30319
30320         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
30321         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
30322         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
30323         (intel_memset): New.  Duplicate slm_memset.
30324         (intel_cost): New.  Duplicate slm_cost.
30325         (m_INTEL): New macro.
30326         (processor_target_table): Add "intel".
30327         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
30328         with PROCESSOR_INTEL for "intel".
30329         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
30330         PROCESSOR_SILVERMONT.
30331         (ix86_issue_rate): Likewise.
30332         (ix86_adjust_cost): Likewise.
30333         (ia32_multipass_dfa_lookahead): Likewise.
30334         (swap_top_of_ready_list): Likewise.
30335         (ix86_sched_reorder): Likewise.
30336         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
30337         instead of TARGET_OPT_AGU.
30338         * config/i386/i386.h (TARGET_INTEL): New.
30339         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
30340         (processor_type): Add PROCESSOR_INTEL.
30341         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
30342         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
30343
30344 2014-01-17  Marek Polacek  <polacek@redhat.com>
30345
30346         PR c/58346
30347         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
30348         size is zero.
30349
30350 2014-01-17  Richard Biener  <rguenther@suse.de>
30351
30352         PR tree-optimization/46590
30353         * opts.c (default_options_table): Add entries for
30354         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
30355         all enabled at -O1 but not for -Og.
30356         * common.opt (fbranch-count-reg): Remove Init(1).
30357         (fmove-loop-invariants): Likewise.
30358         (ftree-pta): Likewise.
30359
30360 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
30361
30362         * config/i386/i386.c (ix86_data_alignment): For compatibility with
30363         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
30364         decls to at least the GCC 4.8 used alignments.
30365
30366         PR fortran/59440
30367         * tree-nested.c (convert_nonlocal_reference_stmt,
30368         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
30369         of GIMPLE_BIND stmts, adjust associated decls.
30370
30371 2014-01-17  Richard Biener  <rguenther@suse.de>
30372
30373         PR tree-optimization/46590
30374         * vec.h (vec<>::bseach): New member function implementing
30375         binary search according to C89 bsearch.
30376         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
30377         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
30378         bitmap pointer again.  Make accesses_in_loop a flat array.
30379         (mem_ref_obstack): New global.
30380         (outermost_indep_loop): Adjust for mem_ref->stored changes.
30381         (mark_ref_stored): Likewise.
30382         (ref_indep_loop_p_2): Likewise.
30383         (set_ref_stored_in_loop): New helper function.
30384         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
30385         (memref_free): Adjust.
30386         (record_mem_ref_loc): Simplify.
30387         (gather_mem_refs_stmt): Adjust.
30388         (sort_locs_in_loop_postorder_cmp): New function.
30389         (analyze_memory_references): Sort accesses_in_loop after
30390         loop postorder number.
30391         (find_ref_loc_in_loop_cmp): New function.
30392         (for_all_locs_in_loop): Find relevant cluster of locs in
30393         accesses_in_loop and iterate without recursion.
30394         (execute_sm): Avoid uninit warning.
30395         (struct ref_always_accessed): Simplify.
30396         (ref_always_accessed::operator ()): Likewise.
30397         (ref_always_accessed_p): Likewise.
30398         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
30399         loop postorder numbers here.
30400         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
30401         numbers.
30402
30403 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
30404
30405         PR c++/57945
30406         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
30407         on decls for which assemble_alias has been called.
30408
30409 2014-01-17  Nick Clifton  <nickc@redhat.com>
30410
30411         * config/msp430/msp430.opt: (mcpu): New option.
30412         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
30413         (msp430_option_override): Parse target_cpu.  If the MCU name
30414         matches a generic string, clear target_mcu.
30415         (msp430_attr): Allow numeric interrupt values up to 63.
30416         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
30417         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
30418         option.
30419         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
30420         Add mcpu matches.
30421         * config/msp430/msp430.md (popm): Use %J rather than %I.
30422         (addsi3): Use msp430_nonimmediate_operand for operand 2.
30423         (addhi_cy_i): Use immediate_operand for operand 2.
30424         * doc/invoke.texi: Document -mcpu option.
30425
30426 2014-01-17  Richard Biener  <rguenther@suse.de>
30427
30428         PR rtl-optimization/38518
30429         * df.h (df_analyze_loop): Declare.
30430         * df-core.c: Include cfgloop.h.
30431         (df_analyze_1): Split out main part of df_analyze.
30432         (df_analyze): Adjust.
30433         (loop_inverted_post_order_compute): New function.
30434         (loop_post_order_compute): Likewise.
30435         (df_analyze_loop): New function avoiding whole-function
30436         postorder computes.
30437         * loop-invariant.c (find_defs): Use df_analyze_loop.
30438         (find_invariants): Adjust.
30439         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
30440
30441 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
30442
30443         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
30444         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
30445
30446 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
30447
30448         * ipa-ref.c (ipa_remove_stmt_references): Fix references
30449         traversal when removing references.
30450
30451 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
30452
30453         PR ipa/59775
30454         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
30455
30456 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
30457
30458         PR middle-end/56791
30459         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
30460         pushing a reload for an autoinc when we had previously reloaded an
30461         inner part of the address.
30462
30463 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
30464
30465         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
30466         field.
30467         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
30468         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
30469         when not giving up or versioning for alias only because of
30470         loop->safelen.
30471         (vect_analyze_data_ref_dependences): Set to true.
30472         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
30473         is a GIMPLE_PHI.
30474         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
30475         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
30476         to the condition.
30477
30478         PR middle-end/58344
30479         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
30480
30481         PR target/59839
30482         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
30483         operand 0 predicate for gathers, use a new pseudo as subtarget.
30484
30485 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
30486
30487         PR middle-end/59609
30488         * lra-constraints.c (process_alt_operands): Add printing debug info.
30489         Check absence of input/output reloads for matched operands too.
30490
30491 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
30492
30493         PR rtl-optimization/59835
30494         * ira.c (ira_init_register_move_cost): Increase cost for
30495         impossible modes.
30496
30497 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
30498
30499         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
30500
30501 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
30502
30503         PR target/59780
30504         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
30505         non-register objects.  Use gen_(high/low)part more consistently.
30506         Fix assertions.
30507
30508 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
30509
30510         PR target/59844
30511         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
30512         endian support, remove tests for WORDS_BIG_ENDIAN.
30513         (p8_mfvsrd_3_<mode>): Likewise.
30514         (reload_gpr_from_vsx<mode>): Likewise.
30515         (reload_gpr_from_vsxsf): Likewise.
30516         (p8_mfvsrd_4_disf): Likewise.
30517
30518 2014-01-16  Richard Biener  <rguenther@suse.de>
30519
30520         PR rtl-optimization/46590
30521         * lcm.c (compute_antinout_edge): Use postorder iteration.
30522         (compute_laterin): Use inverted postorder iteration.
30523
30524 2014-01-16  Nick Clifton  <nickc@redhat.com>
30525
30526         PR middle-end/28865
30527         * varasm.c (output_constant): Return the number of bytes actually
30528         emitted.
30529         (output_constructor_array_range): Update the field size with the
30530         number of bytes emitted by output_constant.
30531         (output_constructor_regular_field): Likewise.  Also do not
30532         complain if the total number of bytes emitted is now greater
30533         than the expected fieldpos.
30534         * output.h (output_constant): Update prototype and descriptive comment.
30535
30536 2014-01-16  Marek Polacek  <polacek@redhat.com>
30537
30538         PR middle-end/59827
30539         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
30540         it is error_mark_node.
30541
30542 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
30543
30544         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
30545         VALID_AVX256_REG_OR_OI_MODE.
30546
30547 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
30548
30549         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
30550         current procedure should be profiled.
30551
30552 2014-01-15  Andrew Pinski  <apinski@cavium.com>
30553
30554         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
30555         of moving from/to the STACK_REG register class.
30556
30557 2014-01-15  Richard Henderson  <rth@redhat.com>
30558
30559         PR debug/54694
30560         * reginfo.c (global_regs_decl): Globalize.
30561         * rtl.h (global_regs_decl): Declare.
30562         * ira.c (do_reload): Diagnose frame_pointer_needed and it
30563         reserved via global_regs.
30564
30565 2014-01-15  Teresa Johnson  <tejohnson@google.com>
30566
30567         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
30568
30569 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
30570
30571         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
30572         and vmulosh rather than call gen_vec_widen_smult_*.
30573         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
30574         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
30575         (vec_widen_smult_even_v16qi): Likewise.
30576         (vec_widen_umult_even_v8hi): Likewise.
30577         (vec_widen_smult_even_v8hi): Likewise.
30578         (vec_widen_umult_odd_v16qi): Likewise.
30579         (vec_widen_smult_odd_v16qi): Likewise.
30580         (vec_widen_umult_odd_v8hi): Likewise.
30581         (vec_widen_smult_odd_v8hi): Likewise.
30582         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
30583         vmuloub rather than call gen_vec_widen_umult_*.
30584         (vec_widen_umult_lo_v16qi): Likewise.
30585         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
30586         vmulosb rather than call gen_vec_widen_smult_*.
30587         (vec_widen_smult_lo_v16qi): Likewise.
30588         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
30589         rather than call gen_vec_widen_umult_*.
30590         (vec_widen_umult_lo_v8hi): Likewise.
30591         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
30592         rather than call gen_vec_widen_smult_*.
30593         (vec_widen_smult_lo_v8hi): Likewise.
30594
30595 2014-01-15  Jeff Law  <law@redhat.com>
30596
30597         PR tree-optimization/59747
30598         * ree.c (find_and_remove_re): Properly handle case where a second
30599         eliminated extension requires widening a copy created for elimination
30600         of a prior extension.
30601         (combine_set_extension): Ensure that the number of hard regs needed
30602         for a destination register does not change when we widen it.
30603
30604 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30605
30606         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
30607         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
30608         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
30609         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
30610         (avr-*-rtems*): Likewise.
30611         (bfin*-rtems*): Likewise.
30612         (moxie-*-rtems*): Likewise.
30613         (h8300-*-rtems*): Likewise.
30614         (i[34567]86-*-rtems*): Likewise.
30615         (lm32-*-rtems*): Likewise.
30616         (m32r-*-rtems*): Likewise.
30617         (m68k-*-rtems*): Likewise.
30618         (microblaze*-*-rtems*): Likewise.
30619         (mips*-*-rtems*): Likewise.
30620         (powerpc-*-rtems*): Likewise.
30621         (sh-*-rtems*): Likewise.
30622         (sparc-*-rtems*): Likewise.
30623         (sparc64-*-rtems*): Likewise.
30624         (v850-*-rtems*): Likewise.
30625         (m32c-*-rtems*): Likewise.
30626
30627 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
30628
30629         PR rtl-optimization/59511
30630         * ira.c (ira_init_register_move_cost): Use memory costs for some
30631         cases of register move cost calculations.
30632         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
30633         instead of BB frequency.
30634         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
30635         * lra-assigns.c (find_hard_regno_for): Ditto.
30636
30637 2014-01-15  Richard Biener  <rguenther@suse.de>
30638
30639         PR tree-optimization/59822
30640         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
30641         (vectorizable_load): Use it to hoist defs of uses of invariant
30642         loads out of the loop.
30643
30644 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
30645             Kugan Vivekanandarajah  <kuganv@linaro.org>
30646
30647         PR target/59695
30648         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
30649         truncation.
30650
30651 2014-01-15  Richard Biener  <rguenther@suse.de>
30652
30653         PR rtl-optimization/59802
30654         * lcm.c (compute_available): Use inverted postorder to seed
30655         the initial worklist.
30656
30657 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30658
30659         PR target/59803
30660         * config/s390/s390.c (s390_preferred_reload_class): Don't return
30661         ADDR_REGS for invalid symrefs in non-PIC code.
30662
30663 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
30664
30665         PR other/58712
30666         * builtins.c (determine_block_size): Initialize *probable_max_size
30667         even if len_rtx is CONST_INT.
30668
30669 2014-01-14  Andrew Pinski  <apinski@cavium.com>
30670
30671         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
30672         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
30673         (cortexa53_tunings): Likewise.
30674         (aarch64_sched_issue_rate): New function.
30675         (TARGET_SCHED_ISSUE_RATE): Define.
30676
30677 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
30678
30679         * ira-costs.c (find_costs_and_classes): Add missed
30680         ira_init_register_move_cost_if_necessary.
30681
30682 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
30683
30684         PR target/59787
30685         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
30686
30687 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
30688
30689         PR target/59794
30690         * config/i386/i386.c (type_natural_mode): Add a bool parameter
30691         to indicate if type is used for function return value.  Warn ABI
30692         change if the vector mode isn't available for function return value.
30693         (ix86_function_arg_advance): Pass false to type_natural_mode.
30694         (ix86_function_arg): Likewise.
30695         (ix86_gimplify_va_arg): Likewise.
30696         (function_arg_32): Don't warn ABI change.
30697         (ix86_function_value): Pass true to type_natural_mode.
30698         (ix86_return_in_memory): Likewise.
30699         (ix86_struct_value_rtx): Removed.
30700         (TARGET_STRUCT_VALUE_RTX): Likewise.
30701
30702 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
30703
30704         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
30705         converting a conditional jump into a conditional return.
30706
30707 2014-01-14  Richard Biener  <rguenther@suse.de>
30708
30709         PR tree-optimization/58921
30710         PR tree-optimization/59006
30711         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
30712         hoisting invariant stmts.
30713         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
30714         invariant loads on the preheader edge if possible.
30715
30716 2014-01-14  Joey Ye  <joey.ye@arm.com>
30717
30718         * doc/plugin.texi (Building GCC plugins): Update to C++.
30719
30720 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
30721
30722         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
30723         (_mm_rcp28_round_ss): Ditto.
30724         (_mm_rsqrt28_round_sd): Ditto.
30725         (_mm_rsqrt28_round_ss): Ditto.
30726         (_mm_rcp28_sd): Ditto.
30727         (_mm_rcp28_ss): Ditto.
30728         (_mm_rsqrt28_sd): Ditto.
30729         (_mm_rsqrt28_ss): Ditto.
30730         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
30731         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
30732         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
30733         (IX86_BUILTIN_RCP28SD): Ditto.
30734         (IX86_BUILTIN_RCP28SS): Ditto.
30735         (IX86_BUILTIN_RSQRT28SD): Ditto.
30736         (IX86_BUILTIN_RSQRT28SS): Ditto.
30737         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
30738         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
30739         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
30740         (ix86_expand_special_args_builtin): Expand new FTYPE.
30741         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
30742         (srcp14<mode>): Make insn unary.
30743         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
30744         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
30745         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
30746         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
30747         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
30748         Fix rounding: make it SAE only.
30749         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
30750         Ditto.
30751         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
30752         Ditto.
30753         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
30754         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
30755         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
30756         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
30757         (round_saeonly_mask_scalar_operand4): Ditto.
30758         (round_saeonly_mask_scalar_op3): Ditto.
30759         (round_saeonly_mask_scalar_op4): Ditto.
30760
30761 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30762
30763         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
30764         Implement -maltivec=be for vec_insert and vec_extract.
30765
30766 2014-01-10  DJ Delorie  <dj@redhat.com>
30767
30768         * config/msp430/msp430.md (call_internal): Don't allow memory
30769         references with SP as the base register.
30770         (call_value_internal): Likewise.
30771         * config/msp430/constraints.md (Yc): New.  For memory references
30772         that don't use SP as a base register.
30773
30774         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
30775         "an integer without a # prefix"
30776         * config/msp430/msp430.md (epilogue_helper): Use it.
30777
30778 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
30779
30780         PR target/59617
30781         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
30782         AVX512F gather builtins.
30783         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
30784         on gather decls with INTEGER_TYPE masktype.
30785         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
30786         directly into the builtin rather than hoisting it before loop.
30787
30788         PR tree-optimization/59387
30789         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
30790         (scev_const_prop): If folded_casts and type has undefined overflow,
30791         use force_gimple_operand instead of force_gimple_operand_gsi and
30792         for each added stmt if it is assign with
30793         arith_code_with_undefined_signed_overflow, call
30794         rewrite_to_defined_overflow.
30795         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
30796         gimple-fold.h instead.
30797         (arith_code_with_undefined_signed_overflow,
30798         rewrite_to_defined_overflow): Moved to ...
30799         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
30800         rewrite_to_defined_overflow): ... here.  No longer static.
30801         Include gimplify-me.h.
30802         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
30803         rewrite_to_defined_overflow): New prototypes.
30804
30805 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30806
30807         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
30808
30809 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
30810
30811         * builtins.c (get_object_alignment_2): Minor tweak.
30812         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
30813
30814 2014-01-13  Christian Bruel  <christian.bruel@st.com>
30815
30816         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
30817         optimized non constant lengths.
30818
30819 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
30820
30821         PR libgomp/59194
30822         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
30823         load as __atomic_load_N if possible.
30824
30825 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
30826
30827         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
30828         target parameter.
30829         (rs6000_expand_builtin): Adjust call.
30830
30831 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
30832
30833         PR target/58115
30834         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
30835         * config/rs6000/rs6000.c: Include target-globals.h.
30836         (rs6000_set_current_function): Instead of doing target_reinit
30837         unconditionally, use save_target_globals_default_opts and
30838         restore_target_globals.
30839
30840         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
30841         FPSCR.
30842         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
30843         (rs6000_expand_builtin): Handle mffs and mtfsf.
30844         (rs6000_init_builtins): Define mffs and mtfsf.
30845         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
30846         (rs6000_mffs): New pattern.
30847         (rs6000_mtfsf): New pattern.
30848
30849 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
30850
30851         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
30852         Start narrowing with START.  Apply candidate-use pair
30853         and check overall cost in narrowing.
30854         (iv_ca_prune): Pass new argument.
30855
30856 2014-01-10  Jeff Law  <law@redhat.com>
30857
30858         PR middle-end/59743
30859         * ree.c (combine_reaching_defs): Ensure the defining statement
30860         occurs before the extension when optimizing extensions with
30861         different source and destination hard registers.
30862
30863 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
30864
30865         PR ipa/58585
30866         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
30867         vtables into the type inheritance graph.
30868
30869 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
30870
30871         PR rtl-optimization/59754
30872         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
30873         modes in the REGNO != REGNO case.
30874
30875 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30876
30877         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
30878
30879 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
30880
30881         PR tree-optimization/59745
30882         * tree-predcom.c (tree_predictive_commoning_loop): Call
30883         free_affine_expand_cache if giving up because components is NULL.
30884
30885         * target-globals.c (save_target_globals): Allocate < 4KB structs using
30886         GC in payload of target_globals struct instead of allocating them on
30887         the heap and the larger structs separately using GC.
30888         * target-globals.h (struct target_globals): Make regs, hard_regs,
30889         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
30890         of GTY((skip)) and change type to void *.
30891         (reset_target_globals): Cast loads from those fields to corresponding
30892         types.
30893
30894 2014-01-10  Steve Ellcey  <sellcey@mips.com>
30895
30896         PR plugins/59335
30897         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
30898         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
30899         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
30900
30901 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
30902
30903         PR target/59744
30904         * aarch64-modes.def (CC_Zmode): New flags mode.
30905         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
30906         represents an equality.
30907         (aarch64_get_condition_code): Handle CC_Zmode.
30908         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
30909
30910 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30911
30912         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
30913         extraction in good case.
30914
30915 2014-01-10  Richard Biener  <rguenther@suse.de>
30916
30917         PR tree-optimization/59374
30918         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
30919         checking after SLP discovery.  Mark stmts not participating
30920         in any SLP instance properly.
30921
30922 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30923
30924         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
30925         when handling a SET rtx.
30926
30927 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30928
30929         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
30930         (cortex-a57): Likewise.
30931         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
30932
30933 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30934
30935         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
30936         non-iwmmxt builtins.
30937
30938 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
30939
30940         PR ipa/58252
30941         PR ipa/59226
30942         * ipa-devirt.c record_target_from_binfo): Take as argument
30943         stack of binfos and lookup matching one for virtual inheritance.
30944         (possible_polymorphic_call_targets_1): Update.
30945
30946 2014-01-10  Huacai Chen  <chenhc@lemote.com>
30947
30948         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
30949         kernel strings for Loongson-2E/2F/3A.
30950
30951 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
30952
30953         PR middle-end/59670
30954         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
30955         is_gimple_call before calling gimple_call_internal_p.
30956
30957 2014-01-09  Steve Ellcey  <sellcey@mips.com>
30958
30959         * Makefile.in (TREE_FLOW_H): Remove.
30960         (TREE_SSA_H): Add file names from tree-flow.h.
30961         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
30962         * tree.h: Remove tree-flow.h reference.
30963         * hash-table.h: Remove tree-flow.h reference.
30964         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
30965         reference with tree-ssa-loop.h.
30966
30967 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30968
30969         * doc/invoke.texi: Add -maltivec={be,le} options, and document
30970         default element-order behavior for -maltivec.
30971         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
30972         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
30973         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
30974         when targeting big endian, at least for now.
30975         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
30976
30977 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
30978
30979         PR middle-end/47735
30980         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
30981         var satisfies use_register_for_decl, just take into account type
30982         alignment, rather than decl alignment.
30983
30984         PR tree-optimization/59622
30985         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
30986         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
30987         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
30988         Don't devirtualize for inplace at all.  For targets.length () == 1,
30989         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
30990
30991 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
30992
30993         * config/i386/i386.md (cpu): Remove the unused btver1.
30994
30995 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
30996
30997         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
30998
30999 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
31000
31001         PR target/58115
31002         * tree-core.h (struct target_globals): New forward declaration.
31003         (struct tree_target_option): Add globals field.
31004         * tree.h (TREE_TARGET_GLOBALS): Define.
31005         (prepare_target_option_nodes_for_pch): New prototype.
31006         * target-globals.h (struct target_globals): Define even if
31007         !SWITCHABLE_TARGET.
31008         * tree.c (prepare_target_option_node_for_pch,
31009         prepare_target_option_nodes_for_pch): New functions.
31010         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
31011         * config/i386/i386.c: Include target-globals.h.
31012         (ix86_set_current_function): Instead of doing target_reinit
31013         unconditionally, use save_target_globals_default_opts and
31014         restore_target_globals.
31015
31016 2014-01-09  Richard Biener  <rguenther@suse.de>
31017
31018         PR tree-optimization/59715
31019         * tree-cfg.h (split_critical_edges): Declare.
31020         * tree-cfg.c (split_critical_edges): Export.
31021         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
31022
31023 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
31024
31025         * cfgexpand.c (expand_stack_vars): Optionally disable
31026         asan stack protection.
31027         (expand_used_vars): Likewise.
31028         (partition_stack_vars): Likewise.
31029         * asan.c (asan_emit_stack_protection): Optionally disable
31030         after return stack usage.
31031         (instrument_derefs): Optionally disable memory access instrumentation.
31032         (instrument_builtin_call): Likewise.
31033         (instrument_strlen_call): Likewise.
31034         (asan_protect_global): Optionally disable global variables protection.
31035         * doc/invoke.texi: Added doc for new options.
31036         * params.def: Added new options.
31037         * params.h: Likewise.
31038
31039 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
31040
31041         PR rtl-optimization/59724
31042         * ifcvt.c (cond_exec_process_if_block): Don't call
31043         flow_find_head_matching_sequence with 0 longest_match.
31044         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
31045         non-active insns if !stop_after.
31046         (try_head_merge_bb): Revert 2014-01-07 changes.
31047
31048 2014-01-08  Jeff Law  <law@redhat.com>
31049
31050         * ree.c (get_sub_rtx): New function, extracted from...
31051         (merge_def_and_ext): Here.
31052         (combine_reaching_defs): Use get_sub_rtx.
31053
31054 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
31055
31056         * cgraph.h (varpool_variable_node): Do not choke on null node.
31057
31058 2014-01-08  Catherine Moore  <clm@codesourcery.com>
31059
31060         * config/mips/mips.md (simple_return): Attempt to use JRC
31061         for microMIPS.
31062         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
31063
31064 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
31065
31066         PR rtl-optimization/59137
31067         * reorg.c (steal_delay_list_from_target): Call update_block for
31068         elided insns.
31069         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
31070
31071 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31072
31073         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
31074         two duplicate entries.
31075
31076 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
31077
31078         Revert:
31079         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
31080
31081         * config/mips/mips.c (mips_truncated_op_cost): New function.
31082         (mips_rtx_costs): Adjust test for BADDU.
31083         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
31084
31085         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
31086
31087         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
31088         (*baddu_si): ...this new pattern.
31089
31090 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
31091
31092         PR ipa/59722
31093         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
31094
31095 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31096
31097         PR middle-end/57748
31098         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
31099         inner_reference_p.
31100         (expand_expr, expand_normal): Adjust.
31101         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
31102         inner_reference_p. Use inner_reference_p to expand inner references.
31103         (store_expr): Adjust.
31104         * cfgexpand.c (expand_call_stmt): Adjust.
31105
31106 2014-01-08  Rong Xu  <xur@google.com>
31107
31108         * gcov-io.c (gcov_var): Move from gcov-io.h.
31109         (gcov_position): Ditto.
31110         (gcov_is_error): Ditto.
31111         (gcov_rewrite): Ditto.
31112         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
31113         only part to libgcc/libgcov.h.
31114
31115 2014-01-08  Marek Polacek  <polacek@redhat.com>
31116
31117         PR middle-end/59669
31118         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
31119
31120 2014-01-08  Marek Polacek  <polacek@redhat.com>
31121
31122         PR sanitizer/59667
31123         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
31124
31125 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
31126
31127         PR rtl-optimization/59649
31128         * stor-layout.c (get_mode_bounds): For BImode return
31129         0 and STORE_FLAG_VALUE.
31130
31131 2014-01-08  Richard Biener  <rguenther@suse.de>
31132
31133         PR middle-end/59630
31134         * gimple.h (is_gimple_builtin_call): Remove.
31135         (gimple_builtin_call_types_compatible_p): New.
31136         (gimple_call_builtin_p): New overload.
31137         * gimple.c (is_gimple_builtin_call): Remove.
31138         (validate_call): Rename to ...
31139         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
31140         check return types.
31141         (validate_type): New static function.
31142         (gimple_call_builtin_p): New overload and adjust.
31143         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
31144         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
31145         (gimple_fold_stmt_to_constant_1): Likewise.
31146         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
31147
31148 2014-01-08  Richard Biener  <rguenther@suse.de>
31149
31150         PR middle-end/59471
31151         * gimplify.c (gimplify_expr): Gimplify register-register type
31152         VIEW_CONVERT_EXPRs to separate stmts.
31153
31154 2014-01-07  Jeff Law  <law@redhat.com>
31155
31156         PR middle-end/53623
31157         * ree.c (combine_set_extension): Handle case where source
31158         and destination registers in an extension insn are different.
31159         (combine_reaching_defs): Allow source and destination registers
31160         in extension to be different under limited circumstances.
31161         (add_removable_extension): Remove restriction that the
31162         source and destination registers in the extension are the same.
31163         (find_and_remove_re): Emit a copy from the extension's
31164         destination to its source after the defining insn if
31165         the source and destination registers are different.
31166
31167         PR middle-end/59285
31168         * ifcvt.c (merge_if_block): If we are merging a block with more than
31169         one successor with a block with no successors, remove any BARRIER
31170         after the second block.
31171
31172 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
31173
31174         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
31175
31176 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
31177
31178         PR target/59652
31179         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
31180         for 14-bit register offsets when INT14_OK_STRICT is false.
31181
31182 2014-01-07  Roland Stigge  <stigge@antcom.de>
31183             Michael Meissner  <meissner@linux.vnet.ibm.com>
31184
31185         PR 57386/target
31186         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
31187         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
31188
31189 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
31190
31191         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
31192         -mcpu.
31193
31194 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
31195
31196         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
31197         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
31198         rtx is const0_rtx or not.
31199
31200 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
31201
31202         PR target/58115
31203         * target-globals.c (save_target_globals): Remove this_fn_optab
31204         handling.
31205         * toplev.c: Include optabs.h.
31206         (target_reinit): Temporarily restore the global options if another
31207         set of options are in force.
31208
31209 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
31210
31211         PR rtl-optimization/58668
31212         * cfgcleanup.c (flow_find_cross_jump): Don't count
31213         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
31214         to determine what is counted.
31215         (flow_find_head_matching_sequence): Use active_insn_p to determine
31216         what is counted.
31217         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
31218         counting change.
31219         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
31220         determine what is counted.
31221
31222         PR tree-optimization/59643
31223         * tree-predcom.c (split_data_refs_to_components): If one dr is
31224         read and one write, determine_offset fails and the write isn't
31225         in the bad component, just put the read into the bad component.
31226
31227 2014-01-07  Mike Stump  <mikestump@comcast.net>
31228             Jakub Jelinek  <jakub@redhat.com>
31229
31230         PR pch/59436
31231         * tree-core.h (struct tree_optimization_option): Change optabs
31232         type from unsigned char * to void *.
31233         * optabs.c (init_tree_optimization_optabs): Adjust
31234         TREE_OPTIMIZATION_OPTABS initialization.
31235
31236 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
31237
31238         PR target/59644
31239         * config/i386/i386.h (struct machine_function): Add
31240         no_drap_save_restore field.
31241         * config/i386/i386.c (ix86_save_reg): Use
31242         !cfun->machine->no_drap_save_restore instead of
31243         crtl->stack_realign_needed.
31244         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
31245         this function clears frame_pointer_needed.  Set
31246         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
31247         and DRAP reg is needed.
31248
31249 2014-01-06  Marek Polacek  <polacek@redhat.com>
31250
31251         PR c/57773
31252         * doc/implement-c.texi: Mention that other integer types are
31253         permitted as bit-field types in strictly conforming mode.
31254
31255 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
31256
31257         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
31258         is newly allocated.
31259
31260 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
31261
31262         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
31263
31264 2014-01-06  Martin Jambor  <mjambor@suse.cz>
31265
31266         PR ipa/59008
31267         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
31268         to int.
31269         * ipa-prop.c (ipa_print_node_params): Fix indentation.
31270
31271 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
31272
31273         PR debug/59350
31274         PR debug/59510
31275         * var-tracking.c (add_stores): Preserve the value of the source even if
31276         we don't record the store.
31277
31278 2014-01-06  Terry Guo  <terry.guo@arm.com>
31279
31280         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
31281
31282 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
31283
31284         PR bootstrap/59541
31285         * config/darwin.c (darwin_function_section): Adjust return values to
31286         correspond to optimisation changes made in r206070.
31287
31288 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
31289
31290         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
31291         from prefetch_block tune setting.
31292         (nocona_cost): Correct size of prefetch block to 64.
31293
31294 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
31295
31296         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
31297         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
31298         used to save the static chain register in the computation of the offset
31299         from which the FP registers need to be restored.
31300
31301 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
31302
31303         PR tree-optimization/59519
31304         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
31305         ICE if get_current_def (current_new_name) is already non-NULL, as long
31306         as it is a phi result of some other phi in *new_exit_bb that has
31307         the same argument.
31308
31309         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
31310         or vmovdqu* for misaligned_operand.
31311         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
31312         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
31313         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
31314         aligned_mem for AVX512F masked aligned load and store builtins and for
31315         non-temporal moves.
31316
31317 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
31318
31319         PR tree-optimization/59651
31320         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
31321         Address range for negative step should be added by TYPE_SIZE_UNIT.
31322
31323 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
31324
31325         * config/m68k/m68k.c (handle_move_double): Handle pushes with
31326         overlapping registers also for registers other than the stack pointer.
31327
31328 2014-01-03  Marek Polacek  <polacek@redhat.com>
31329
31330         PR other/59661
31331         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
31332         __builtin_FILE.
31333
31334 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
31335
31336         PR target/59625
31337         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
31338         asm goto as jump.
31339
31340         * config/i386/i386.md (MODE_SIZE): New mode attribute.
31341         (push splitter): Use <P:MODE_SIZE> instead of
31342         GET_MODE_SIZE (<P:MODE>mode).
31343         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
31344         (mov -1, reg peephole2): Likewise.
31345         * config/i386/sse.md (*mov<mode>_internal,
31346         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
31347         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
31348         *<code><mode>3, *andnot<mode>3<mask_name>,
31349         <mask_codefor><code><mode>3<mask_name>): Likewise.
31350         * config/i386/subst.md (mask_mode512bit_condition,
31351         sd_mask_mode512bit_condition): Likewise.
31352
31353 2014-01-02  Xinliang David Li  <davidxl@google.com>
31354
31355         PR tree-optimization/59303
31356         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
31357         (dump_predicates): Better output format.
31358         (pred_equal_p): New function.
31359         (is_neq_relop_p): Ditto.
31360         (is_neq_zero_form_p): Ditto.
31361         (pred_expr_equal_p): Ditto.
31362         (pred_neg_p): Ditto.
31363         (simplify_pred): Ditto.
31364         (simplify_preds_2): Ditto.
31365         (simplify_preds_3): Ditto.
31366         (simplify_preds_4): Ditto.
31367         (simplify_preds): Ditto.
31368         (push_pred): Ditto.
31369         (push_to_worklist): Ditto.
31370         (get_pred_info_from_cmp): Ditto.
31371         (is_degenerated_phi): Ditto.
31372         (normalize_one_pred_1): Ditto.
31373         (normalize_one_pred): Ditto.
31374         (normalize_one_pred_chain): Ditto.
31375         (normalize_preds): Ditto.
31376         (normalize_cond_1): Remove function.
31377         (normalize_cond): Ditto.
31378         (is_gcond_subset_of): Ditto.
31379         (is_subset_of_any): Ditto.
31380         (is_or_set_subset_of): Ditto.
31381         (is_and_set_subset_of): Ditto.
31382         (is_norm_cond_subset_of): Ditto.
31383         (pred_chain_length_cmp): Ditto.
31384         (convert_control_dep_chain_into_preds): Type change.
31385         (find_predicates): Ditto.
31386         (find_def_preds): Ditto.
31387         (destroy_predicates_vecs): Ditto.
31388         (find_matching_predicates_in_rest_chains): Ditto.
31389         (use_pred_not_overlap_with_undef_path_pred): Ditto.
31390         (is_pred_expr_subset): Ditto.
31391         (is_pred_chain_subset_of): Ditto.
31392         (is_included_in): Ditto.
31393         (is_superset_of): Ditto.
31394
31395 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
31396
31397         Update copyright years.
31398
31399 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
31400
31401         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
31402         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
31403         config/arc/arc.md, config/arc/arc.opt,
31404         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
31405         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
31406         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
31407         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
31408         config/linux-protos.h, config/linux.c, config/winnt-c.c,
31409         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
31410         vtable-verify.c, vtable-verify.h: Use the standard form for the
31411         copyright notice.
31412
31413 2014-01-02  Tobias Burnus  <burnus@net-b.de>
31414
31415         * gcc.c (process_command): Update copyright notice dates.
31416         * gcov-dump.c: Ditto.
31417         * gcov.c: Ditto.
31418         * doc/cpp.texi: Bump @copying's copyright year.
31419         * doc/cppinternals.texi: Ditto.
31420         * doc/gcc.texi: Ditto.
31421         * doc/gccint.texi: Ditto.
31422         * doc/gcov.texi: Ditto.
31423         * doc/install.texi: Ditto.
31424         * doc/invoke.texi: Ditto.
31425
31426 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
31427
31428         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
31429
31430 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
31431
31432         * config/i386/sse.md (*mov<mode>_internal): Guard
31433         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
31434
31435         PR rtl-optimization/59647
31436         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
31437         new_rtx into UNSIGNED_FLOAT rtxes.
31438 \f
31439 Copyright (C) 2014 Free Software Foundation, Inc.
31440
31441 Copying and distribution of this file, with or without modification,
31442 are permitted in any medium without royalty provided the copyright
31443 notice and this notice are preserved.