re PR c++/62017 (AddressSanitizer reports *-buffer-overflow in destructor when multip...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
2
3         PR c++/62017
4         * asan.c (transform_statements): Don't instrument clobber statements.
5
6 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7
8         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
9         to neon_load1_1reg<q>.
10
11 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
12
13         PR debug/63284
14         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
15         if there are only debug stmts after the noreturn call, instead
16         remove the debug stmts.
17
18 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
19
20         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
21         (odr_types_equivalent_p): Use pair hash.
22         (odr_subtypes_equivalent_p): Likewise, do structural compare
23         on ODR types that may be mismatched.
24         (warn_odr): Support warning when only one field is given.
25         (odr_types_equivalent_p): Strenghten comparsions made;
26         support VOIDtype.
27         (add_type_duplicate): Update VISITED hash set.
28
29 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30
31         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
32         Enable selection of 'posix' or no thread model.
33
34 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
35
36         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
37         when architecture is older than ARMv7.
38
39 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
40
41         PR target/61853
42         * config/pa/pa.c (pa_function_value): Directly handle aggregates
43         that fit exactly in a word or double word.
44
45 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
46
47         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
48         zmm/k regs support.
49
50 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
51             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
52             Anna Tikhonova  <anna.tikhonova@intel.com>
53             Ilya Tocar  <ilya.tocar@intel.com>
54             Andrey Turetskiy  <andrey.turetskiy@intel.com>
55             Ilya Verbin  <ilya.verbin@intel.com>
56             Kirill Yukhin  <kirill.yukhin@intel.com>
57             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
58
59         * config/i386/i386.c
60         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
61         * config/i386/sse.md
62         (define_mode_iterator VI48F_256): New.
63         (define_mode_attr extract_type): Ditto.
64         (define_mode_attr extract_suf): Ditto.
65         (define_mode_iterator AVX512_VEC): Ditto.
66         (define_expand
67         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
68         AVX512_VEC.
69         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
70         (define_insn
71         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
72         Ditto.
73         (define_mode_attr extract_type_2): Ditto.
74         (define_mode_attr extract_suf_2): Ditto.
75         (define_mode_iterator AVX512_VEC_2): Ditto.
76         (define_expand
77         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
78         AVX512_VEC_2 mode iterator.
79         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
80         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
81         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
82         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
83         (define_split for V16FI mode): Ditto.
84         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
85         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
86         (define_split for VI8F_256 mode): Ditto.
87         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
88         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
89         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
90         (define_split for VI4F_256 mode): Ditto.
91         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
92         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
93         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
94         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
95         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
96         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
97         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
98         Update `type' attribute, remove explicit `memory' attribute calculation.
99
100 2014-09-16  Kito Cheng  <kito@0xlab.org>
101
102         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
103         ira_spilled_reg_stack_slots_num if using lra.
104         (do_reload): Remove release ira_spilled_reg_stack_slots part.
105         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
106         make sure not using lra.
107         (ira_reuse_stack_slot): Likewise.
108         (ira_mark_new_stack_slot): Likewise.
109
110 2014-09-15  Andi Kleen  <ak@linux.intel.com>
111
112         * function.c (allocate_struct_function): Force
113         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
114         profiling is disabled.
115
116 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
117     
118         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
119         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
120         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
121         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
122         macro with statically checked member functions.
123         * rtl.h (rtx_insn::deleted): New method.
124         (rtx_insn::set_deleted): Likewise.
125         (rtx_insn::set_undeleted): Likewise.
126         (INSN_DELETED_P): Remove.
127
128 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
129
130         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
131         result of emit_jump_insn_before to a new variable.
132         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
133         (mark_jump_label_1): Likewise.
134         (mark_jump_label_asm): Likewise.
135         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
136         * rtl.h (mark_jump_label): Adjust.
137
138 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
139
140         * Makefile.in (dg_target_exps): Remove.
141         (check_gcc_parallelize): Change to just an upper bound number.
142         (check-%-subtargets): Always print the non-parallelized goals.
143         (check_p_vars, check_p_comma, check_p_subwork): Remove.
144         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
145         check_p_numbers3, check_p_numbers4, check_p_numbers5,
146         check_p_numbers6): New variables.
147         (check_p_numbers): Set to sequence from 1 to 9999.
148         (check_p_subdirs): Set to sequence from 1 to minimum of
149         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
150         or 128.
151         (check-%, check-parallel-%): Rewritten so that for parallelized
152         testing each job runs all the *.exp files, with
153         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
154
155 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
156
157         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
158         rtx to rtx_insn *.
159         (arc_sets_cc_p): Likewise.
160         * config/arc/arc.c (arc_print_operand): Use methods of
161         "final_sequence" for clarity, and to enable strengthening of
162         locals "jump" and "delay" from rtx to rtx_insn *.
163         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
164         rtx_insn *; use method of rtx_sequence for typesafety.
165         (arc_get_insn_variants): Use insn method of rtx_sequence for
166         typesafety.
167         (arc_pad_return): Likewise.
168         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
169         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
170         dyn_cast to rtx_sequence *, using insn method for typesafety.
171         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
172         rtx_sequence * and use insn method when invoking get_attr_length.
173         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
174         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
175         rtx_sequence *, introducing a local "seq", using its insn method
176         from typesafety and clarity.
177         (add_sched_insns_for_speculation): Strengthen local "next" from
178         rtx to rtx_insn *.
179         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
180         (predicate_insn): Likewise.
181         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
182         second param.
183         * config/cris/cris.c (cris_notice_update_cc): Likewise.
184         * config/epiphany/epiphany-protos.h
185         (extern void epiphany_insert_mode_switch_use): Likewise for param
186         "insn".
187         (get_attr_sched_use_fpu): Likewise for param.
188         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
189         Likewise for param "insn".
190         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
191         param "insn" of "target_insert_mode_switch_use" callback.
192         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
193         (frv_issues_to_branch_unit_p): Likewise.
194         (frv_pack_insn_p): Likewise.
195         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
196         const rtx * (i.e. mutable rtx_def * const *) to
197         rtx_insn * const *.
198         * config/i386/i386-protos.h (standard_sse_constant_opcode):
199         Strengthen first param from rtx to rtx_insn *.
200         (output_fix_trunc): Likewise.
201         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
202         (output_fix_trunc): Likewise.
203         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
204         local "insn".
205         (min_insn_size): Likewise for param "insn".
206         (get_mem_group): Likewise.
207         (is_cmp): Likewise.
208         (get_insn_path): Likewise.
209         (get_insn_group): Likewise.
210         (count_num_restricted): Likewise.
211         (fits_dispatch_window): Likewise.
212         (add_insn_window): Likewise.
213         (add_to_dispatch_window): Likewise.
214         (debug_insn_dispatch_info_file): Likewise.
215         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
216         first param.
217         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
218         "cmp" and local "prev".
219         (m32c_output_compare): Likewise for param "insn".
220         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
221         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
222         (define_predicate "large_insn_p"): Likewise.
223         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
224         param from rtx to rtx_insn *.
225         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
226         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
227         (m68k_sched_attr_size): Likewise.
228         (sched_get_opxy_mem_type): Likewise for param "insn".
229         (m68k_sched_attr_op_mem): Likewise.
230         (sched_mem_operand_p): Likewise.
231         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
232         * config/mep/mep.c (mep_multi_slot): Likewise.
233         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
234         first param.
235         (mips_sync_loop_insns): Likewise.
236         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
237         method of "final_sequence" for typesafety.
238         (mips_process_sync_loop): Strengthen param "insn" from rtx to
239         rtx_insn *.
240         (mips_output_sync_loop): Likewise.
241         (mips_sync_loop_insns): Likewise.
242         (mips_74k_agen_init): Likewise.
243         (mips_sched_init): Use NULL rather than NULL_RTX when working with
244         insns.
245         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
246         Strengthen param "insn" from rtx to rtx_insn *.
247         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
248         local "insn".
249         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
250         param.
251         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
252         "insn".  Use method of rtx_sequence for typesafety.
253         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
254         rtx_insn *.
255         (branch_needs_nop_p): Likewise.
256         (use_skip_p): Likewise.
257         (pa_insn_refs_are_delayed): Likewise.
258         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
259         for locals "insn", "ninsn".
260         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
261         "insn".
262         (is_cracked_insn): Likewise.
263         (is_branch_slot_insn): Likewise.
264         (is_nonpipeline_insn): Likewise.
265         (insn_terminates_group_p): Likewise.
266         (insn_must_be_first_in_group): Likewise.
267         (insn_must_be_last_in_group): Likewise.
268         (force_new_group): Likewise for param "next_insn".
269         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
270         "insn".
271         (s390_sched_score): Likewise.
272         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
273         (rtx sfunc_uses_reg): Likewise for sole param.
274         * config/sh/sh.c (sh_print_operand): Use insn method of
275         final_sequence for typesafety.
276         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
277         Use insn method of final_sequence for typesafety.
278         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
279         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
280         for param.
281         (eligible_for_return_delay): Likewise.
282         (eligible_for_sibcall_delay): Likewise.
283         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
284         (eligible_for_return_delay): Likewise.
285         (eligible_for_sibcall_delay): Likewise.
286         * config/stormy16/stormy16-protos.h
287         (xstormy16_output_cbranch_hi): Likewise for final param.
288         (xstormy16_output_cbranch_si): Likewise.
289         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
290         (xstormy16_output_cbranch_si): Likewise.
291         * config/v850/v850-protos.h (notice_update_cc): Likewise.
292         * config/v850/v850.c (notice_update_cc): Likewise.
293
294         * final.c (get_attr_length_1): Strengthen param "insn" and param
295         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
296         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
297         (get_attr_min_length): Likewise.
298         (shorten_branches): Likewise for signature of locals "length_fun"
299         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
300         from a checked cast and use its methods for clarity and to enable
301         strengthening local "inner_insn" from rtx to rtx_insn *.
302         * genattr.c (gen_attr): When writing out the prototypes of the
303         various generated "get_attr_" functions, strengthen the params of
304         the non-const functions from rtx to rtx_insn *.
305         Similarly, strengthen the params of insn_default_length,
306         insn_min_length, insn_variable_length_p, insn_current_length.
307         (main): Similarly, strengthen the param of num_delay_slots,
308         internal_dfa_insn_code, insn_default_latency, bypass_p,
309         insn_latency, min_issue_delay, print_reservation,
310         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
311         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
312         to hook_int_rtx_insn_unreachable.
313         * genattrtab.c (write_attr_get): When writing out the generated
314         "get_attr_" functions, strengthen the param "insn" from rtx to
315         rtx_insn *, eliminating a checked cast.
316         (make_automaton_attrs): When writing out prototypes of
317         "internal_dfa_insn_code_", "insn_default_latency_" functions
318         and the "internal_dfa_insn_code" and "insn_default_latency"
319         callbacks, strengthen their params from rtx to rtx_insn *
320         * genautomata.c (output_internal_insn_code_evaluation): When
321         writing out code, add a checked cast from rtx to rtx_insn * when
322         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
323         (output_dfa_insn_code_func): Strengthen param of generated
324         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
325         (output_trans_func): Likewise for generated function
326         "state_transition".
327         (output_internal_insn_latency_func): When writing out generated
328         function "internal_insn_latency", rename params from "insn" and
329         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
330         locals "insn" and "insn2" as rtx_insn * with checked casts once
331         we've proven that we're not dealing with const0_rtx.
332         (output_insn_latency_func):  Strengthen param of generated
333         function "insn_latency" from rtx to rtx_insn *.
334         (output_print_reservation_func): Likewise for generated function
335         "print_reservation".
336         (output_insn_has_dfa_reservation_p): Likewise for generated
337         function "insn_has_dfa_reservation_p".
338         * hooks.c (hook_int_rtx_unreachable): Rename to...
339         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
340         from rtx to rtx_insn *.
341         * hooks.h (hook_int_rtx_unreachable): Likewise.
342         (extern int hook_int_rtx_insn_unreachable): Likewise.
343         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
344         (get_attr_min_length): Likewise.
345         * recog.c (get_enabled_alternatives): Likewise.
346         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
347         * reorg.c (find_end_label): Introduce local rtx "pat" and
348         strengthen local "insn" from rtx to rtx_insn *.
349         (redundant_insn): Use insn method of "seq" rather than element for
350         typesafety; strengthen local "control" from rtx to rtx_insn *.
351         * resource.c (mark_referenced_resources): Add checked cast to
352         rtx_insn * within INSN/JUMP_INSN case.
353         (mark_set_resources): Likewise.
354         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
355         rtx to rtx_insn *.
356
357 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
358
359         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
360         param "label" from rtx to rtx_insn *.
361         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
362         and local "op".
363         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
364         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
365         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
366         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
367         * final.c (default_label_align_after_barrier_max_skip): Strengthen
368         param from rtx to rtx_insn *.
369         (default_loop_align_max_skip): Likewise.
370         (default_label_align_max_skip): Likewise.
371         (default_jump_align_max_skip): Likewise.
372         * target.def (label_align_after_barrier_max_skip): Likewise.
373         (loop_align_max_skip): Likewise.
374         (label_align_max_skip): Likewise.
375         (jump_align_max_skip): Likewise.
376         * targhooks.h (default_label_align_after_barrier_max_skip):
377         Likewise.
378         (default_loop_align_max_skip): Likewise.
379         (default_label_align_max_skip): Likewise.
380         (default_jump_align_max_skip): Likewise.
381
382 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
383
384         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
385         from const_rtx to const rtx_insn *.  Update union members from rtx
386         to rtx_insn *.
387         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
388         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
389         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
390         strengthen both params from const_rtx to const rtx_insn *.
391         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
392         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
393         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
394         rtx_insn *.
395         * target.def (can_follow_jump): Strengthen both params from
396         const_rtx to const rtx_insn *, and update default implementation
397         from hook_bool_const_rtx_const_rtx_true to
398         hook_bool_const_rtx_insn_const_rtx_insn_true.
399
400 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
401
402         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
403         "insn" from rtx to rtx_insn *.
404         * sched-int.h (deps_start_bb): Likewise for 2nd param.
405
406 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
407             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
408             Anna Tikhonova  <anna.tikhonova@intel.com>
409             Ilya Tocar  <ilya.tocar@intel.com>
410             Andrey Turetskiy  <andrey.turetskiy@intel.com>
411             Ilya Verbin  <ilya.verbin@intel.com>
412             Kirill Yukhin  <kirill.yukhin@intel.com>
413             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
414
415         * config/i386/sse.md
416         (define_insn "vcvtph2ps<mask_name>"): Add masking.
417         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
418         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
419         (define_expand "vcvtps2ph_mask"): New.
420         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
421         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
422         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
423
424 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
425             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
426             Anna Tikhonova  <anna.tikhonova@intel.com>
427             Ilya Tocar  <ilya.tocar@intel.com>
428             Andrey Turetskiy  <andrey.turetskiy@intel.com>
429             Ilya Verbin  <ilya.verbin@intel.com>
430             Kirill Yukhin  <kirill.yukhin@intel.com>
431             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
432
433         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
434         New.
435         (define_mode_iterator VI24_AVX512BW_1): Ditto.
436         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
437         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
438         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
439         also for TARGET_AVX512VL.
440         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
441
442 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
443
444         * doc/install.texi (Options specification): add 
445         --disable-libsanitizer item.
446
447 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
448             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
449
450         PR target/61407
451         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
452         and above.
453         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
454         kernel version check to avoid incrementing it after every major OS X
455         release.
456         (darwin_default_min_version): Avoid static memory buffer.
457
458 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
459
460         * tree.c (need_assembler_name_p): Store C++ type mangling only
461         for aggregates.
462
463 2014-09-13  Marek Polacek  <polacek@redhat.com>
464
465         * tree.c (protected_set_expr_location): Don't check whether T is
466         non-null here.
467
468 2014-09-12  DJ Delorie  <dj@redhat.com>
469
470         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
471         (extend_and_shift1_hipsi2): Likewise.
472         (extend_and_shift2_hipsi2): Likewise.
473
474 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
475
476         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
477         with NULL when dealing with an insn.
478         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
479         from rtx to rtx_insn *.
480         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
481         const_rtx to const rtx_insn *.
482         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
483
484 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
485
486         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
487         assert.
488
489 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
490
491         * target.def (libgcc_floating_mode_supported_p): New hook.
492         * targhooks.c (default_libgcc_floating_mode_supported_p): New
493         function.
494         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
495         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
496         (LIBGCC2_HAS_TF_MODE): Remove.
497         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
498         * doc/tm.texi: Regenerate.
499         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
500         machine mode.
501         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
502         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
503         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
504         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
505         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
506         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
507         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
508         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
509         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
510         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
511         function.
512         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
513         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
514         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
515         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
516         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
517         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
518         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
519         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
520         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
521         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
522         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
523         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
524         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
525         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
526         Remove.
527         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
528         New macro.
529         (ia64_libgcc_floating_mode_supported_p): New function.
530         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
531         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
532         (IA64_NO_LIBGCC_TFMODE): Define.
533         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
534         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
535         macro.
536         (pdp11_scalar_mode_supported_p): New function.
537         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
538         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
539
540 2014-09-12  Richard Biener  <rguenther@suse.de>
541
542         PR middle-end/63237
543         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
544
545 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
546
547         * tree.c (integer_each_onep): New function.
548         * tree.h (integer_each_onep): Declare it.
549         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
550         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
551         (X & 1) == 0 for vector and complex.
552
553 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
554
555         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
556         for A57.
557         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
558         cost to spilling from integer to FP registers.
559
560 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
561
562         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
563         move handling.
564         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
565         are now handled correctly.
566
567 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
568
569         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
570         handling of CALLER_SAVE_REGS and POINTER_REGS.
571
572 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
573
574         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
575         the number of hard registers.
576
577 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
578             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
579             Anna Tikhonova  <anna.tikhonova@intel.com>
580             Ilya Tocar  <ilya.tocar@intel.com>
581             Andrey Turetskiy  <andrey.turetskiy@intel.com>
582             Ilya Verbin  <ilya.verbin@intel.com>
583             Kirill Yukhin  <kirill.yukhin@intel.com>
584             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
585
586         * config/i386/sse.md
587         (define_mode_iterator VI48_AVX512VL): New.
588         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
589         "avx512f_vternlog<mode>_maskz" and update mode iterator.
590         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
591         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
592         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
593         "avx512f_vternlog<mode>_mask" and update mode iterator.
594         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
595         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
596         iterator.
597         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
598         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
599         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
600         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
601         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
602         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
603
604 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
605             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
606             Anna Tikhonova  <anna.tikhonova@intel.com>
607             Ilya Tocar  <ilya.tocar@intel.com>
608             Andrey Turetskiy  <andrey.turetskiy@intel.com>
609             Ilya Verbin  <ilya.verbin@intel.com>
610             Kirill Yukhin  <kirill.yukhin@intel.com>
611             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
612
613         * config/i386/sse.md (VI128_256): Delete.
614         (define_mode_iterator VI124_256): New.
615         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
616         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
617         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
618         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
619         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
620         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
621         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
622         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
623         iterator.
624         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
625         in presence of AVX-512.
626
627 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
628             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
629             Anna Tikhonova  <anna.tikhonova@intel.com>
630             Ilya Tocar  <ilya.tocar@intel.com>
631             Andrey Turetskiy  <andrey.turetskiy@intel.com>
632             Ilya Verbin  <ilya.verbin@intel.com>
633             Kirill Yukhin  <kirill.yukhin@intel.com>
634             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
635
636         * config/i386/sse.md
637         (define_expand "<avx512>_gathersi<mode>"): Rename from
638         "avx512f_gathersi<mode>".
639         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
640         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
641         (define_expand "<avx512>_gatherdi<mode>"): Rename from
642         "avx512f_gatherdi<mode>".
643         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
644         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
645         wide versions.
646         (define_expand "<avx512>_scattersi<mode>"): Rename from
647         "avx512f_scattersi<mode>".
648         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
649         (define_expand "<avx512>_scatterdi<mode>"): Rename from
650         "avx512f_scatterdi<mode>".
651         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
652
653 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
654
655         * ira.h (ira_finish_once): Delete.
656         * ira-int.h (target_ira_int::~target_ira_int): Declare.
657         (target_ira_int::free_ira_costs): Likewise.
658         (target_ira_int::free_register_move_costs): Likewise.
659         (ira_finish_costs_once): Delete.
660         * ira.c (free_register_move_costs): Replace with...
661         (target_ira_int::free_register_move_costs): ...this new function.
662         (target_ira_int::~target_ira_int): Define.
663         (ira_init): Call free_register_move_costs as a member function rather
664         than a global function.
665         (ira_finish_once): Delete.
666         * ira-costs.c (free_ira_costs): Replace with...
667         (target_ira_int::free_ira_costs): ...this new function.
668         (ira_init_costs): Call free_ira_costs as a member function rather
669         than a global function.
670         (ira_finish_costs_once): Delete.
671         * target-globals.c (target_globals::~target_globals): Call the
672         target_ira_int destructor.
673         * toplev.c: Include lra.h.
674         (finalize): Call lra_finish_once rather than ira_finish_once.
675
676 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
677
678         * common.opt (flto-odr-type-merging): New flag.
679         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
680         (types_same_for_odr): Likewise.
681         (odr_subtypes_equivalent_p): Likewise.
682         (add_type_duplicate): Do not walk type variants.
683         (register_odr_type): New function.
684         * ipa-utils.h (register_odr_type): Declare.
685         (odr_type_p): New function.
686         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
687         TYPE_DECLs
688         * doc/invoke.texi (-flto-odr-type-merging): Document.
689         * tree.c (need_assembler_name_p): Compute ODR names when asked
690         for it.
691         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
692
693 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
694
695         PR target/63228
696         * config/i386/i386.c (ix86_option_override_internal): Also turn
697         off OPTION_MASK_ABI_X32 for -m16.
698
699 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
700
701         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
702         GPR instead of P.
703
704 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
705
706         PR target/58757
707         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
708         Directly forward to __*_DENORM_MIN__.
709
710 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
711
712         * rtl.h (LABEL_REF_LABEL): New macro.
713
714         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
715         of XEXP (, 0), where we know that we have a LABEL_REF.
716         * cfgbuild.c (make_edges): Likewise.
717         (purge_dead_tablejump_edges): Likewise.
718         * cfgexpand.c (convert_debug_memory_address): Likewise.
719         * cfgrtl.c (patch_jump_insn): Likewise.
720         * combine.c (distribute_notes): Likewise.
721         * cse.c (hash_rtx_cb): Likewise.
722         (exp_equiv_p): Likewise.
723         (fold_rtx): Likewise.
724         (check_for_label_ref): Likewise.
725         * cselib.c (rtx_equal_for_cselib_1): Likewise.
726         (cselib_hash_rtx): Likewise.
727         * emit-rtl.c (mark_label_nuses): Likewise.
728         * explow.c (convert_memory_address_addr_space): Likewise.
729         * final.c (output_asm_label): Likewise.
730         (output_addr_const): Likewise.
731         * gcse.c (add_label_notes): Likewise.
732         * genconfig.c (walk_insn_part): Likewise.
733         * genrecog.c (validate_pattern): Likewise.
734         * ifcvt.c (cond_exec_get_condition): Likewise.
735         (noce_emit_store_flag): Likewise.
736         (noce_get_alt_condition): Likewise.
737         (noce_get_condition): Likewise.
738         * jump.c (maybe_propagate_label_ref): Likewise.
739         (mark_jump_label_1): Likewise.
740         (redirect_exp_1): Likewise.
741         (rtx_renumbered_equal_p): Likewise.
742         * lra-constraints.c (operands_match_p): Likewise.
743         * reload.c (operands_match_p): Likewise.
744         (find_reloads): Likewise.
745         * reload1.c (set_label_offsets): Likewise.
746         * reorg.c (get_branch_condition): Likewise.
747         * rtl.c (rtx_equal_p_cb): Likewise.
748         (rtx_equal_p): Likewise.
749         * rtlanal.c (reg_mentioned_p): Likewise.
750         (rtx_referenced_p): Likewise.
751         (get_condition): Likewise.
752         * sched-vis.c (print_value): Likewise.
753         * varasm.c (const_hash_1): Likewise.
754         (compare_constant): Likewise.
755         (const_rtx_hash_1): Likewise.
756         (output_constant_pool_1): Likewise.
757
758 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
759
760         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
761         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
762         instead of minus.
763         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
764         cr6_test_for_lt_reverse): Ditto.
765
766 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
767
768         PR c++/61489
769         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
770
771 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
772
773         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
774         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
775         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
776         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
777         Delete.
778
779         (aarch64_fold_builtin): Remove all reinterpret cases.
780
781         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
782
783         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
784
785         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
786         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
787         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
788         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
789         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
790         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
791         aarch64_reinterpretv2df<mode>): Delete.
792
793         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
794
795         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
796         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
797         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
798         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
799         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
800         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
801         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
802         vreinterpret_u32_f64): Use cast.
803
804         * config/aarch64/iterators.md (VD_RE): Delete.
805
806 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
807
808         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
809         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
810         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
811         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
812         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
813         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
814         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
815         Replace inline assembler with __aarch64_vset_lane_any.
816
817 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
818
819         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
820         types.
821         (vmull_high_lane_s32): Likewise.
822         (vmull_high_lane_u16): Likewise.
823         (vmull_high_lane_u32): Likewise.
824
825 2014-09-11  Jason Merrill  <jason@redhat.com>
826
827         PR c++/58678
828         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
829
830 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
831
832         PR target/63223
833         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
834         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
835         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
836
837 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
838             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
839             Anna Tikhonova  <anna.tikhonova@intel.com>
840             Ilya Tocar  <ilya.tocar@intel.com>
841             Andrey Turetskiy  <andrey.turetskiy@intel.com>
842             Ilya Verbin  <ilya.verbin@intel.com>
843             Kirill Yukhin  <kirill.yukhin@intel.com>
844             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
845
846         * config/i386/sse.md
847         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
848         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
849         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
850         New.
851         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
852         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
853         iterator.
854         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
855         New.
856         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
857         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
858         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
859         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
860         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
861         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
862         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
863         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
864         iterator.
865         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
866         New.
867         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
868         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
869         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
870
871 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
872
873         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
874         to access removed nodes.
875
876 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
877
878         PR tree-optimization/63186
879         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
880         (mark_nonssa_use): Likewise.
881         (verify_non_ssa_vars): Verify all header blocks for label
882         definitions.
883
884 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
885             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
886             Anna Tikhonova  <anna.tikhonova@intel.com>
887             Ilya Tocar  <ilya.tocar@intel.com>
888             Andrey Turetskiy  <andrey.turetskiy@intel.com>
889             Ilya Verbin  <ilya.verbin@intel.com>
890             Kirill Yukhin  <kirill.yukhin@intel.com>
891             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
892
893         * config/i386/sse.md
894         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
895         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
896         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
897         "<avx2_avx512f>_permvar<mode><mask_name>".
898         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
899         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
900         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
901         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
902         Ditto.
903         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
904         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
905         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
906         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
907
908 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
909
910         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
911         V2DF, V4SF, DF, and DI modes.
912         (vsx_fmav2df2): Likewise.
913         (vsx_float_fix_<mode>2): Likewise.
914         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
915
916 2014-09-10  Xinliang David Li  <davidxl@google.com>
917
918         PR target/63209
919         * config/arm/arm.md (movcond_addsi): Handle case where source
920         and target operands are the same.
921
922 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
923
924         * final.c (this_is_asm_operands): Strengthen this variable from
925         rtx to const rtx_insn *.
926         * output.h (this_is_asm_operands): Likewise.
927         * rtl-error.c (location_for_asm): Strengthen param "insn" from
928         const_rtx to const rtx_insn *.
929         (diagnostic_for_asm): Likewise.
930         * rtl-error.h (error_for_asm): Likewise.
931         (warning_for_asm): Likewise.
932
933 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
934
935         * genextract.c (print_header): When writing out insn_extract to
936         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
937         * recog.h (insn_extract): Strengthen the param from rtx to
938         rtx_insn *.
939
940 2014-09-10  Mike Stump  <mikestump@comcast.net>
941
942         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
943         8.6.1.
944
945 2014-09-10  Martin Jambor  <mjambor@suse.cz>
946
947         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
948         (analyze): Do not set analyze flag if expand_thunk returns false;.
949         (create_wrapper): Likewise.
950         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
951
952 2014-09-10  Martin Jambor  <mjambor@suse.cz>
953
954         PR ipa/61654
955         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
956         new decl properly.  Analyze the new thunk if it is expanded.
957
958 2014-09-10  Andreas Schwab  <schwab@suse.de>
959
960         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
961         [USED_FOR_TARGET]: Define.
962
963 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
964
965         * config/mips/mips.c (mips_secondary_reload_class): Handle
966         regno < 0 case.
967
968 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
969
970         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
971         assignment.
972
973 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
974
975         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
976         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
977         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
978         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
979         flag_delete_null_pointer_checks for them.
980         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
981         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
982         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
983         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
984         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
985         stmt's iterator.
986         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
987         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
988         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
989         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
990         * doc/invoke.texi (-fsanitize=nonnull-attribute,
991         -fsanitize=returns-nonnull-attribute): Document.
992
993         * ubsan.h (struct ubsan_mismatch_data): Removed.
994         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
995         * ubsan.c (ubsan_source_location): For unknown locations,
996         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
997         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
998         Allow more than one location and arbitrary extra arguments passed
999         in ... instead of through MISMATCH pointer.
1000         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
1001         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
1002         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
1003         callers.
1004
1005 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1006             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1007             Anna Tikhonova  <anna.tikhonova@intel.com>
1008             Ilya Tocar  <ilya.tocar@intel.com>
1009             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1010             Ilya Verbin  <ilya.verbin@intel.com>
1011             Kirill Yukhin  <kirill.yukhin@intel.com>
1012             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1013
1014         * config/i386/sse.md
1015         (define_mode_iterator VI48F): New.
1016         (define_insn "<avx512>_compress<mode>_mask"): Rename from
1017         "avx512f_compress<mode>_mask" and update mode iterator.
1018         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
1019         "avx512f_compressstore<mode>_mask" and update mode iterator.
1020         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
1021         "avx512f_expand<mode>_maskz" and update mode iterator.
1022         (define_insn "<avx512>_expand<mode>_mask"): Rename from
1023         "avx512f_expand<mode>_mask" and update mode iterator.
1024
1025 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1026             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1027             Anna Tikhonova  <anna.tikhonova@intel.com>
1028             Ilya Tocar  <ilya.tocar@intel.com>
1029             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1030             Ilya Verbin  <ilya.verbin@intel.com>
1031             Kirill Yukhin  <kirill.yukhin@intel.com>
1032             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1033
1034         * config/i386/i386.c
1035         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
1036         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
1037         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
1038         avx512dq_rangepv4sf_mask.
1039         * config/i386/sse.md
1040         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
1041         UNSPEC_RANGE.
1042         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
1043         (define_insn "reduces<mode>"): Ditto.
1044         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
1045         Ditto.
1046         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
1047         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
1048         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
1049
1050 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1051             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1052             Anna Tikhonova  <anna.tikhonova@intel.com>
1053             Ilya Tocar  <ilya.tocar@intel.com>
1054             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1055             Ilya Verbin  <ilya.verbin@intel.com>
1056             Kirill Yukhin  <kirill.yukhin@intel.com>
1057             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1058
1059         * config/i386/i386.c
1060         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
1061         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
1062         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
1063         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
1064         avx512vl_getmantv2df_mask.
1065         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
1066         avx512f_vgetmantv4sf_round.
1067         * config/i386/sse.md
1068         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
1069         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
1070         mode iterator.
1071         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
1072         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
1073         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
1074         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
1075         iterator..
1076         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
1077         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
1078         update mode iterator.
1079         (define_expand
1080         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
1081         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
1082         mode iterator.
1083         (define_insn
1084         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
1085         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
1086         update mode iterator.
1087         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
1088         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
1089         iterator..
1090         (define_insn
1091         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
1092         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
1093         mode iterator..
1094         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
1095         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
1096         update mode iterator.
1097         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
1098         "avx512f_getmant<mode><round_saeonly_name>".
1099
1100 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
1101
1102         PR ipa/63166
1103         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
1104
1105 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1106             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1107             Anna Tikhonova  <anna.tikhonova@intel.com>
1108             Ilya Tocar  <ilya.tocar@intel.com>
1109             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1110             Ilya Verbin  <ilya.verbin@intel.com>
1111             Kirill Yukhin  <kirill.yukhin@intel.com>
1112             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1113
1114         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
1115         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
1116         (define_mode_iterator FMAMODE_AVX512): New.
1117         (define_mode_iterator FMAMODE): Remove conditions.
1118         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
1119         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
1120         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
1121         mode iterator.
1122         (define_mode_iterator FMAMODE_NOVF512): Remove.
1123         (define_insn "*fma_fmadd_<mode>"): Rename from
1124         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
1125         FMAMODE mode iterator.
1126         (define_mode_iterator VF_SF_AVX512VL): New.
1127         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
1128         Use VF_SF_AVX512VL mode iterator.
1129         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
1130         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
1131         iterator.
1132         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
1133         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1134         iterator.
1135         (define_insn "*fma_fmsub_<mode>"): Rename from
1136         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
1137         FMAMODE mode iterator.
1138         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
1139         Use VF_SF_AVX512VL mode iterator.
1140         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
1141         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
1142         iterator.
1143         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
1144         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1145         iterator.
1146         (define_insn "*fma_fnmadd_<mode>"): Rename from
1147         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
1148         use FMAMODE mode iterator.
1149         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
1150         Use VF_SF_AVX512VL mode iterator.
1151         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
1152         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
1153         iterator.
1154         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
1155         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1156         iterator.
1157         (define_insn "*fma_fnmsub_<mode>"): Rename from
1158         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
1159         FMAMODE mode iterator.
1160         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
1161         Use VF_SF_AVX512VL mode iterator.
1162         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
1163         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
1164         iterator.
1165         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
1166         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1167         iterator.
1168         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
1169         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
1170         use VF_AVX512VL mode iterator.
1171         (define_insn "*fma_fmaddsub_<mode>"): Rename from
1172         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
1173         remove subst usage.
1174         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
1175         Use VF_SF_AVX512VL mode iterator.
1176         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
1177         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
1178         iterator.
1179         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
1180         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1181         iterator.
1182         (define_insn "*fma_fmsubadd_<mode>"): Rename from
1183         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
1184         remove usage of subst.
1185         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
1186         Use VF_SF_AVX512VL mode iterator.
1187         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
1188         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
1189         iterator.
1190         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
1191         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1192         iterator.
1193
1194 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
1195
1196         Revert r213751:
1197         * calls.c (precompute_arguments): Check
1198          promoted_for_signed_and_unsigned_p and set the promoted mode.
1199         (promoted_for_signed_and_unsigned_p): New function.
1200         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
1201         and set the promoted mode.
1202         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
1203         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
1204         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
1205
1206 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1207
1208         * opth-gen.awk: Generate mapping from cpp message reasons to the
1209         options that enable them.
1210         * doc/options.texi (CppReason): Document.
1211
1212 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1213
1214         * doc/invoke.texi (Wnormalized=): Update.
1215
1216 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
1217
1218         PR target/63195
1219         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
1220         operands.  Split off the constant operand alternative to ...
1221         (*bool<mode>3_imm): New.
1222
1223 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1224
1225         * rtl.h (single_set_2): Strengthen first param from const_rtx to
1226         const rtx_insn *, and move prototype to above...
1227         (single_set): ...this.  Convert this from a macro to an inline
1228         function, enforcing the requirement that the param is a const
1229         rtx_insn *.
1230         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
1231
1232         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
1233         Strengthen both params from rtx to rtx_insn *.
1234         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
1235         Likewise; introduce locals "producer_set", "consumer_set", using
1236         them in place of "producer" and "consumer" when dealing with SET
1237         rather than insn.
1238         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
1239         when invoking single_set in region guarded by INSN_P.
1240         (avr_out_bitop): Likewise.
1241         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
1242         region guarded by GET_CODE check, using methods to strengthen
1243         local "this_insn" from rtx to rtx_insn *, and for clarity.
1244         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
1245         Strengthen local "insn" from rtx to rtx_insn *.
1246         (define_insn_and_split "xload<mode>_A"): Likewise.
1247         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
1248         "insn".
1249         (find_load): Likewise for return type.
1250         (workaround_speculation): Likewise for both locals named
1251         "load_insn".
1252         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
1253         local "cc0_user".
1254         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
1255         for local "prev".
1256         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
1257         param 2.
1258         * config/h8300/h8300.c (notice_update_cc): Likewise.
1259         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
1260         "insn" and "dep_insn".
1261         (exact_store_load_dependency): Likewise for both params.
1262         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
1263         since this now clashes with inline function.  Instead, delay
1264         calling single_set until the point where its needed, and then
1265         assign the result to "compare_set" and rework the conditional that
1266         follows.
1267         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
1268         local "last" from rtx to rtx_insn *.
1269         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
1270         second param.
1271         (mips_store_data_bypass_p): Likewise for both params.
1272         * config/mips/mips.c (mips_load_store_insns): Likewise for second
1273         param.
1274         (mips_store_data_bypass_p): Likewise for both params.
1275         (mips_orphaned_high_part_p): Likewise for param "insn".
1276         * config/mn10300/mn10300.c (extract_bundle): Likewise.
1277         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
1278         Introduce local rtx "insn2_pat".
1279         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
1280         "ninsn".
1281         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
1282         Introduce local rtx "set", using it in place of "insn" for the
1283         result of single_set.  This appears to fix a bug, since the call
1284         to find_regno_note on a SET does nothing.
1285         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
1286         params from rtx to rtx_insn *.
1287         (set_to_load_agen): Likewise.
1288         * config/s390/s390.c (s390_label_align): Likewise for local
1289         "prev_insn".  Introduce new rtx locals "set" and "src", using
1290         them in place of "prev_insn" for the results of single_set
1291         and SET_SRC respectively.
1292         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
1293         Introduce new rtx local "set" using in place of "jump" for the
1294         result of single_set.  Use SET_SRC (set) rather than plain
1295         XEXP (set, 1).
1296         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
1297         rtx to rtx_insn *.
1298         (noncall_uses_reg): Likewise.
1299         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
1300         guarded by GET_CODE check, using its methods for clarity, and to
1301         enable strengthening local "this_insn" from rtx to rtx_insn *.
1302         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
1303         "insn" from rtx to rtx_insn *.
1304         (define_expand "umulhisi3"): Likewise.
1305         (define_expand "smulsi3_highpart"): Likewise.
1306         (define_expand "umulsi3_highpart"): Likewise.
1307         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
1308         local "after".  Replace GET_CODE check with a dyn_cast,
1309         introducing new local rtx_sequence * "seq", using insn method for
1310         typesafety.
1311
1312         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
1313         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
1314         place of "insn" once we're dealing with patterns rather than the
1315         input insn.
1316         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
1317         (scan_trace): Likewise for local "elt", updating lookups within
1318         sequence to use insn method rather than element method.
1319         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
1320         to rtx_insn *.
1321         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
1322         * ifcvt.c (noce_try_abs): Likewise for local "insn".
1323         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
1324         invoking single_set.
1325         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
1326         "insn" from rtx to rtx_insn *.
1327         (skip_usage_debug_insns): Likewise for return type, adding a
1328         checked cast.
1329         (check_secondary_memory_needed_p): Likewise for local "insn".
1330         (inherit_reload_reg): Likewise.
1331         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
1332         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
1333         checked casts.
1334         (store_data_bypass_p): Likewise for both params.
1335         (if_test_bypass_p): Likewise.
1336         * recog.h (store_data_bypass_p): Likewise for both params.
1337         (if_test_bypass_p): Likewise.
1338         * reload.c (find_equiv_reg): Likewise for local "where".
1339         * reorg.c (delete_jump): Likewise for param "insn".
1340         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
1341         to const rtx_insn *.
1342         * store-motion.c (replace_store_insn): Likewise for param "del".
1343         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
1344         and use its methods for clarity, and to strengthen local "del"
1345         from rtx to rtx_insn *.
1346         (build_store_vectors): Use insn method of "st" when calling
1347         replace_store_insn for typesafety and clarity.
1348
1349 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1350
1351         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
1352         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
1353         on how to make it legal in future.
1354
1355 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1356
1357         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
1358         to rtx_insn *.
1359         (restinsn): Likewise.
1360         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
1361         Likewise for param.
1362         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
1363         Likewise.
1364         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
1365         first param.
1366         (arc_hazard): Likewise for both params.
1367         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
1368         checked casts to rtx_sequence * and uses of the insn method for
1369         type-safety.
1370         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
1371         (arc_adjust_insn_length): Likewise for param "insn".
1372         (struct insn_length_parameters_s): Likewise for first param of
1373         "get_variants" callback field.
1374         (arc_get_insn_variants): Likewise for first param and local
1375         "inner".  Replace a check of GET_CODE with a dyn_cast to
1376         rtx_sequence *, using methods for type-safety and clarity.
1377         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
1378         rtx_sequence * and uses of the insn method for type-safety when
1379         invoking arc_adjust_insn_length.
1380         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
1381         for param.
1382         (arm_address_offset_is_imm): Likewise.
1383         (struct tune_params): Likewise for params 1 and 3 of the
1384         "sched_adjust_cost" callback field.
1385         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
1386         params 1 and 3 ("insn" and "dep").
1387         (xscale_sched_adjust_cost): Likewise.
1388         (fa726te_sched_adjust_cost): Likewise.
1389         (cortexa7_older_only): Likewise for param "insn".
1390         (cortexa7_younger): Likewise.
1391         (arm_attr_length_move_neon): Likewise.
1392         (arm_address_offset_is_imm): Likewise.
1393         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
1394         * config/avr/avr.c (avr_notice_update_cc): Likewise.
1395         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
1396         (workaround_speculation): Likewise for local "last_condjump".
1397         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
1398         (shadow_or_blockage_p): Likewise.
1399         (get_unit_reqs): Likewise.
1400         (get_unit_operand_masks): Likewise.
1401         (c6x_registers_update): Likewise.
1402         (returning_call_p): Likewise.
1403         (can_use_callp): Likewise.
1404         (convert_to_callp): Likewise.
1405         (find_last_same_clock): Likwise for local "t".
1406         (reorg_split_calls): Likewise for local "shadow".
1407         (hwloop_pattern_reg): Likewise for param "insn".
1408         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
1409         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
1410         (frv_extract_membar): Likewise.
1411         (frv_optimize_membar_local): Strengthen param "last_membar" from
1412         rtx * to rtx_insn **.
1413         (frv_optimize_membar_global): Strengthen param "membar" from rtx
1414         to rtx_insn *.
1415         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
1416         to rtx_insn **.
1417         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
1418         both params from rtx to rtx_insn *.
1419         (ia64_ld_address_bypass_p): Likewise.
1420         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
1421         "insn".
1422         (ia64_safe_type): Likewise.
1423         (group_barrier_needed): Likewise.
1424         (safe_group_barrier_needed): Likewise.
1425         (ia64_single_set): Likewise.
1426         (is_load_p): Likewise.
1427         (record_memory_reference): Likewise.
1428         (get_mode_no_for_insn): Likewise.
1429         (important_for_bundling_p): Likewise.
1430         (unknown_for_bundling_p): Likewise.
1431         (ia64_st_address_bypass_p): Likewise for both params.
1432         (ia64_ld_address_bypass_p): Likewise.
1433         (expand_vselect): Introduce new local rtx_insn * "insn", using it
1434         in place of rtx "x" after the emit_insn call.
1435         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
1436         Strengthen param from rtx to rtx_insn *.
1437         (ix86_agi_dependent): Likewise for both params.
1438         (ix86_attr_length_immediate_default): Likewise for param 1.
1439         (ix86_attr_length_address_default): Likewise for param.
1440         (ix86_attr_length_vex_default): Likewise for param 1.
1441         * config/i386/i386.c (ix86_attr_length_immediate_default):
1442         Likewise for param "insn".
1443         (ix86_attr_length_address_default): Likewise.
1444         (ix86_attr_length_vex_default): Likewise.
1445         (ix86_agi_dependent): Likewise for both params.
1446         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
1447         (vselect_insn): Likewise for this variable.
1448         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
1449         for param 1.
1450         (m68k_sched_attr_opy_type): Likewise.
1451         * config/m68k/m68k.c (sched_get_operand): Likewise.
1452         (sched_attr_op_type): Likewise.
1453         (m68k_sched_attr_opx_type): Likewise.
1454         (m68k_sched_attr_opy_type): Likewise.
1455         (sched_get_reg_operand): Likewise.
1456         (sched_get_mem_operand): Likewise.
1457         (m68k_sched_address_bypass_p): Likewise for both params.
1458         (sched_get_indexed_address_scale): Likewise.
1459         (m68k_sched_indexed_address_bypass_p): Likewise.
1460         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
1461         (m68k_sched_indexed_address_bypass_p): Likewise.
1462         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
1463         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
1464         removing another.
1465         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
1466         params from rtx to rtx_insn *.
1467         (mips_fmadd_bypass): Likewise.
1468         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
1469         (mips_linked_madd_p): Likewise.
1470         (mips_macc_chains_last_hilo): Likewise for this variable.
1471         (mips_macc_chains_record): Likewise for param.
1472         (vr4130_last_insn): Likewise for this variable.
1473         (vr4130_swap_insns_p): Likewise for both params.
1474         (mips_ls2_variable_issue): Likewise for param.
1475         (mips_need_noat_wrapper_p): Likewise for param "insn".
1476         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
1477         in place of "x" after the emit_insn.
1478         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
1479         params from rtx to rtx_insn *.
1480         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
1481         (pa_combine_instructions): Introduce local "par" for result of
1482         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
1483         to make_insn_raw.
1484         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
1485         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
1486         (rl78_alloc_physical_registers_op1): Likewise.
1487         (rl78_alloc_physical_registers_op2): Likewise.
1488         (rl78_alloc_physical_registers_ro1): Likewise.
1489         (rl78_alloc_physical_registers_cmp): Likewise.
1490         (rl78_alloc_physical_registers_umul): Likewise.
1491         (rl78_alloc_address_registers_macax): Likewise.
1492         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
1493         * config/s390/predicates.md (execute_operation): Likewise for
1494         local "insn".
1495         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
1496         params.
1497         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
1498         (addr_generation_dependency_p): Likewise for param "insn".
1499         (s390_agen_dep_p): Likewise for both params.
1500         (s390_fpload_toreg): Likewise for param "insn".
1501         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
1502         * config/sh/sh.c (sh_loop_align): Likewise for param and local
1503         "next".
1504         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
1505         * config/sh/sh_treg_combine.cc
1506         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
1507         and local "i".
1508         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
1509         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
1510         "and_insn", "load", "shift".
1511         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
1512         "insn".
1513         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
1514         for XEXP (note, 0) of the REG_CC_SETTER note.
1515         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
1516         rtx_insn *, eliminating a checked cast made redundant by this.
1517         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
1518         to rtx_insn *.
1519         * genattr.c (main): When writing out the prototype to
1520         const_num_delay_slots, strengthen the param from rtx to
1521         rtx_insn *.
1522         * genattrtab.c (write_const_num_delay_slots): Likewise when
1523         writing out the implementation of const_num_delay_slots.
1524         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
1525         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
1526         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
1527         favor of new rtx locals "src" and "set" and new local rtx_insn *
1528         "insn" and "seq".
1529         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
1530         to rtx_insn *.
1531         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
1532         locals "cond", "if_then_else", "set" and new rtx_insn * locals
1533         "insn" and "seq".
1534         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
1535         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
1536         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
1537         the top-level scope, replacing with new more tightly-scoped rtx
1538         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
1539         "new_insn", "copy_of_insn_b", and make local rtx "set" more
1540         tightly-scoped.
1541         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
1542         rtx_insn *.
1543         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
1544         "move_insn".
1545         (ira_setup_alts): Likewise for param "insn".
1546         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
1547         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
1548         and an rtx_insn *.
1549         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
1550         new more-tightly scoped rtx locals "add3_insn", "insn",
1551         "add2_insn" and rtx_insn * "move_insn".
1552         * postreload-gcse.c (eliminate_partially_redundant_load): Add
1553         checked cast on result of gen_move_insn when invoking
1554         extract_insn.
1555         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
1556         rtx_insn *.
1557         (verify_changes): Add a checked cast on "object" when invoking
1558         insn_invalid_p.
1559         (extract_insn_cached): Strengthen param "insn" from rtx to
1560         rtx_insn *.
1561         (extract_constrain_insn_cached): Likewise.
1562         (extract_insn): Likewise.
1563         * recog.h (insn_invalid_p): Likewise for param 1.
1564         (recog_memoized): Likewise for param.
1565         (extract_insn): Likewise.
1566         (extract_constrain_insn_cached): Likewise.
1567         (extract_insn_cached): Likewise.
1568         * reload.c (can_reload_into): Likewise for local "test_insn".
1569         * reload.h (cleanup_subreg_operands): Likewise for param.
1570         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
1571         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
1572         result of emit_insn.  Remove a checked cast made redundant by this
1573         change.
1574         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
1575         rtx to rtx_insn *.
1576         * sel-sched.c (get_reg_class): Likewise.
1577
1578 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1579         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1580
1581          * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
1582          * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
1583         Define.
1584         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
1585
1586 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1587
1588         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
1589         const rtx_insn *, and from rtx to rtx_insn * for the other
1590         overloaded variant.
1591         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
1592         INSN_LOCATION, since we know INSN_P holds.
1593         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
1594         (insn_file): Likewise.
1595         (insn_scope): Likewise.
1596         (insn_location): Likewise.
1597
1598         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
1599         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
1600         for the result of gen_load_const_gp.
1601         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
1602         param from rtx to rtx_insn *.
1603         * config/rs6000/rs6000.c (output_call): Likewise.
1604         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
1605         introducing a checked cast to rtx_sequence * and use of the insn
1606         method.
1607         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
1608         from rtx to rtx_insn *.
1609         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
1610         (insn_line): Likewise.
1611         (insn_file): Likewise.
1612         (insn_location): Likewise.
1613         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
1614         from rtx to rtx_insn *.
1615         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
1616         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
1617         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
1618         via a checked cast.
1619         * reorg.c (relax_delay_slots): Strengthen locals named "after"
1620         from rtx to rtx_insn *; use methods of "pat" for type-safety.
1621
1622 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1623
1624         * combine.c (try_combine): Eliminate checked cast on result of
1625         gen_rtx_INSN.
1626         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
1627         autogenerated one by strengthening the return type and params 2 and 3
1628         from rtx to rtx_insn *, and by naming the params.
1629         * gengenrtl.c (special_rtx): Add INSN to those that are
1630         special-cased.
1631         * rtl.h (gen_rtx_INSN): New prototype.
1632
1633 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1634
1635         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
1636         than NULL_RTX.
1637         (no_equiv): Likewise.
1638         (update_equiv_regs): Likewise.
1639         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
1640         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
1641         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
1642         clarity.
1643         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
1644         from rtx to rtx_insn_list *.
1645         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
1646         rtx_insn_list * and use methods for clarity and typesafety.
1647         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
1648         "list".
1649         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
1650         redundant check on INSN_P (insns): this cannot hold, as "insns" is
1651         an INSN_LIST, not an insn.
1652         (reverse_equiv_p): Strengthen local "insns" from rtx to
1653         rtx_insn_list * and use methods for clarity and typesafety.
1654         (contains_reloaded_insn_p): Likewise for local "list".
1655
1656 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
1657
1658         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
1659         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
1660         (arm_builtin_vectorized_function): Likewise.
1661         * config/arm/arm_neon_builtins.def: New macro for copysignf.
1662         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
1663
1664 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
1665
1666         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
1667         * builtins.h (default_target_builtins): Likewise.
1668         * gcse.h (default_target_gcse): Likewise.
1669         * target-globals.h (target_globals): Add a destructor.  Convert
1670         void-pointer fields back to their real type and change from
1671         GTY((atomic)) to GTY((skip)).
1672         (restore_target_globals): Remove casts accordingly.
1673         * target-globals.c (save_target_globals): Use XCNEW rather than
1674         ggc_internal_cleared_alloc to allocate non-GC structures.
1675         Use ggc_cleared_alloc to allocate the target_globals structure
1676         itself.
1677         (target_globals::~target_globals): Define.
1678
1679 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1680
1681         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
1682         mnemonic instead of fldmfdd.
1683         * config/arm/arm.c (vfp_output_fstmd): Rename to...
1684         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
1685         Output vpush when address register is SP.
1686         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
1687         (vfp_output_vstmd): ... This.
1688         * config/arm/vfp.md (push_multi_vfp): Update call to
1689         vfp_output_vstmd.
1690
1691 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1692
1693         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
1694
1695 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1696
1697         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
1698         (*sqrtdf2_vfp): Likewise.
1699         (*cmpsf_vfp): Likewise.
1700         (*cmpsf_trap_vfp): Likewise.
1701         (*cmpdf_vfp): Likewise.
1702         (*cmpdf_trap_vfp): Likewise.
1703
1704 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1705
1706         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
1707         (*truncdfsf2_vfp): Likewise.
1708         (*truncsisf2_vfp): Likewise.
1709         (*truncsidf2_vfp): Likewise.
1710         (fixuns_truncsfsi2): Likewise.
1711         (fixuns_truncdfsi2): Likewise.
1712         (*floatsisf2_vfp): Likewise.
1713         (*floatsidf2_vfp): Likewise.
1714         (floatunssisf2): Likewise.
1715         (floatunssidf2): Likewise.
1716
1717 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1718
1719         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
1720         (*muldf3_vfp): Likewise.
1721         (*mulsf3negsf_vfp): Likewise.
1722         (*muldf3negdf_vfp): Likewise.
1723         (*mulsf3addsf_vfp): Likewise.
1724         (*muldf3adddf_vfp): Likewise.
1725         (*mulsf3subsf_vfp): Likewise.
1726         (*muldf3subdf_vfp): Likewise.
1727         (*mulsf3negsfaddsf_vfp): Likewise.
1728         (*fmuldf3negdfadddf_vfp): Likewise.
1729         (*mulsf3negsfsubsf_vfp): Likewise.
1730         (*muldf3negdfsubdf_vfp): Likewise.
1731
1732 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1733
1734         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
1735         (*absdf2_vfp): Likewise.
1736         (*negsf2_vfp): Likewise.
1737         (*negdf2_vfp): Likewise.
1738         (*addsf3_vfp): Likewise.
1739         (*adddf3_vfp): Likewise.
1740         (*subsf3_vfp): Likewise.
1741         (*subdf3_vfp): Likewise.
1742         (*divsf3_vfp): Likewise.
1743         (*divdf3_vfp): Likewise.
1744
1745 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1746
1747         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
1748         multiple.
1749         (arm_print_operand): Don't convert real values to decimal
1750         representation in default case.
1751         (fp_immediate_constant): Delete.
1752         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
1753         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
1754         syntax.
1755         (*thumb2_movsi_vfp): Likewise.
1756         (*movdi_vfp): Likewise.
1757         (*movdi_vfp_cortexa8): Likewise.
1758         (*movhf_vfp_neon): Likewise.
1759         (*movhf_vfp): Likewise.
1760         (*movsf_vfp): Likewise.
1761         (*thumb2_movsf_vfp): Likewise.
1762         (*movdf_vfp): Likewise.
1763         (*thumb2_movdf_vfp): Likewise.
1764         (*movsfcc_vfp): Likewise.
1765         (*thumb2_movsfcc_vfp): Likewise.
1766         (*movdfcc_vfp): Likewise.
1767         (*thumb2_movdfcc_vfp): Likewise.
1768
1769 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
1770
1771         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
1772         (-mtune): Likewise.
1773         (-mcpu): Likewise.
1774
1775 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1776
1777         PR target/61749
1778         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
1779         Use qualifier_immediate for last operand.  Rename to...
1780         (aarch64_types_ternop_lane_qualifiers): ... This.
1781         (TYPES_QUADOP): Rename to...
1782         (TYPES_TERNOP_LANE): ... This.
1783         (aarch64_simd_expand_args): Return const0_rtx when encountering user
1784         error.  Change return of 0 to return of NULL_RTX.
1785         (aarch64_crc32_expand_builtin): Likewise.
1786         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
1787         ICE when expanding unknown builtin.
1788         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
1789         TERNOP_LANE qualifiers.
1790         (sqdmlsl_lane): Likewise.
1791         (sqdmlal_laneq): Likewise.
1792         (sqdmlsl_laneq): Likewise.
1793         (sqdmlal2_lane): Likewise.
1794         (sqdmlsl2_lane): Likewise.
1795         (sqdmlal2_laneq): Likewise.
1796         (sqdmlsl2_laneq): Likewise.
1797
1798 2014-09-09  Nick Clifton  <nickc@redhat.com>
1799
1800         * doc/invoke.texi (Optimization Options): Add missing @gol to the
1801         end of a line.
1802         (S/390 and zSeries Options): Remove superfluous word from the
1803         description of the -mhotpatch option.
1804
1805 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
1806
1807         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
1808         * ira.c: #include "shrink-wrap.h"
1809         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
1810         * ifcvt.c: #include "shrink-wrap.h"
1811         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
1812
1813 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
1814
1815         * common/config/picochip/picochip-common.c: Remove.
1816         * config.gcc: Remove support for picochip.
1817         * config/picochip/constraints.md: Remove.
1818         * config/picochip/dfa_space.md: Remove.
1819         * config/picochip/dfa_speed.md: Remove.
1820         * config/picochip/picochip-protos.h: Remove.
1821         * config/picochip/picochip.c: Remove.
1822         * config/picochip/picochip.h: Remove.
1823         * config/picochip/picochip.md: Remove.
1824         * config/picochip/picochip.opt: Remove.
1825         * config/picochip/predicates.md: Remove.
1826         * config/picochip/t-picochip: Remove.
1827         * doc/md.texi: Don't document picochi.
1828
1829 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
1830
1831         * basic-block.h (control_flow_insn_p): Strengthen param from
1832         const_rtx to const rtx_insn *.
1833         * cfgbuild.c (control_flow_insn_p): Likewise.
1834
1835 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
1836
1837         * gcse.c (modify_mem_list): Strengthen this variable from
1838         vec<rtx> * to vec<rtx_insn *> *.
1839         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
1840         vec<rtx_insn *>.
1841         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
1842         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
1843         (record_last_mem_set_info): Strengthen param "insn" from rtx to
1844         rtx_insn *.
1845         (record_last_set_info): Likewise for local "last_set_insn".
1846
1847 2014-09-08  DJ Delorie  <dj@redhat.com>
1848
1849         * doc/invoke.texi (MSP430 Options): Add -minrt.
1850
1851 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1852
1853         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
1854         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
1855         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
1856         handling SH_SPLAT.
1857         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
1858         of extracted lane.
1859         (adjust_splat): New function.
1860         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
1861         (dump_swap_insn_table): Add case for SH_SPLAT.
1862
1863 2014-09-08  Richard Biener  <rguenther@suse.de>
1864
1865         PR ipa/63196
1866         * tree-inline.c (copy_loops): The source loop header should
1867         always be non-NULL.
1868         (tree_function_versioning): If loops need fixup after removing
1869         unreachable blocks fix them.
1870         * omp-low.c (simd_clone_adjust): Do not add incr block to
1871         loop under construction.
1872
1873 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
1874
1875         * config/aarch64/aarch64-builtins.c
1876         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
1877
1878 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
1879
1880         * config/i386/cygming.h (TF_SIZE): Remove.
1881         * config/i386/darwin.h (TF_SIZE): Remove.
1882         * config/i386/dragonfly.h (TF_SIZE): Remove.
1883         * config/i386/freebsd.h (TF_SIZE): Remove.
1884         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
1885         * config/i386/openbsdelf.h (TF_SIZE): Remove.
1886         * config/i386/sol2.h (TF_SIZE): Remove.
1887         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
1888         * config/ia64/linux.h (TF_SIZE): Remove.
1889         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
1890         * doc/tm.texi: Regenerate.
1891         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
1892
1893 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
1894
1895         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
1896         Remove.
1897         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
1898         Remove.
1899         * doc/tm.texi: Regenerate.
1900         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
1901         Poison.
1902         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
1903         * config/cris/cris.h (__make_dp): Remove.
1904
1905 2014-09-08  Richard Biener  <rguenther@suse.de>
1906
1907         PR bootstrap/63204
1908         * cfgloop.c (mark_loop_for_removal): Track former header
1909         unconditionally.
1910         * cfgloop.h (struct loop): Add former_header member unconditionally.
1911         * loop-init.c (fix_loop_structure): Enable bogus loop removal
1912         diagnostic unconditionally.
1913
1914 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
1915
1916         PR target/63190
1917         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
1918         constraint for operand0 and remove write only modifier from operand3.
1919
1920 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
1921
1922         PR rtl-optimization/62208
1923         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
1924         rather than const0_rtx in eq/ne-xor simplifications.
1925
1926 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
1927
1928         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
1929         (arc_output_mi_thunk): Likewise.
1930
1931         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
1932         arguments to silence bogus warning.
1933
1934 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
1935
1936         PR middle-end/63171
1937         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
1938
1939 2014-09-06  Tom de Vries  <tom@codesourcery.com>
1940
1941         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
1942         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
1943         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
1944
1945 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
1946
1947         PR target/63188
1948         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
1949         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
1950
1951 2014-09-05  Easwaran Raman  <eraman@google.com>
1952
1953         PR rtl-optimization/62146
1954         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
1955         hoisted instruction unconditional.
1956
1957 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
1958
1959         PR target/63187
1960         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
1961         Do not allow any_mask_operand for operands[2].
1962         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
1963
1964 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
1965
1966         * config/arc/arc.c (arc_print_operand): Use insn method of
1967         final_sequence for type-safety.
1968         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
1969         "insn" from rtx to rtx_insn *.
1970         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
1971         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
1972         Likewise for locals "branch", "label".
1973         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
1974         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
1975         (same_cmp_following_p): Likewise for locals "i2", "i3".
1976         * config/sh/sh_optimize_sett_clrt.cc
1977         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
1978         param "cbranch_insn".
1979         * function.c (convert_jumps_to_returns): Likewis for local "jump".
1980         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
1981         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
1982         const rtx_insn *.
1983         (condjump_p): Likewise.
1984         (condjump_in_parallel_p): Likewise.
1985         (pc_set): Likewise.
1986         (any_uncondjump_p): Likewise.
1987         (any_condjump_p): Likewise.
1988         (condjump_label): Likewise.
1989         (returnjump_p): Strengthen param "insn" from rtx to
1990         const rtx_insn *.
1991         (onlyjump_p): Strengthen param "insn" from const_rtx to
1992         const rtx_insn *.
1993         (jump_to_label_p): Likewise.
1994         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
1995         (invert_jump): Likewise.
1996         * reorg.c (simplejump_or_return_p): Add checked cast when calling
1997         simplejump_p.
1998         (get_jump_flags): Strengthen param "insn" from rtx to
1999         const rtx_insn *.
2000         (get_branch_condition): Likewise.
2001         (condition_dominates_p): Likewise.
2002         (make_return_insns): Move declaration of local "pat" earlier, to
2003         after we've handled NONJUMP_INSN_P and non-sequences, using its
2004         methods to simplify the code and for type-safety.
2005         * rtl.h (find_constant_src): Strengthen param from const_rtx to
2006         const rtx_insn *.
2007         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
2008         (condjump_p): Strengthen param from const_rtx to
2009         const rtx_insn *.
2010         (any_condjump_p): Likewise.
2011         (any_uncondjump_p): Likewise.
2012         (pc_set): Likewise.
2013         (condjump_label): Likewise.
2014         (simplejump_p): Likewise.
2015         (returnjump_p): Likewise.
2016         (onlyjump_p): Likewise.
2017         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
2018         (invert_jump): Likewise.
2019         (condjump_in_parallel_p): Strengthen param from const_rtx to
2020         const rtx_insn *.
2021         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
2022         to const rtx_insn *.
2023         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
2024         to const rtx_insn *.
2025         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
2026
2027 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2028
2029         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
2030         above the conditional, and convert the check on GET_CODE to a
2031         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
2032         the conditional.  Simplify the conditional by using methods of
2033         "trial_seq".
2034
2035 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2036
2037         * haifa-sched.c (check_clobbered_conditions): Strengthen local
2038         "link" from rtx to rtx_insn_list *, and use its methods for
2039         clarity and type-safety.
2040         (toggle_cancelled_flags): Likewise.
2041         (restore_last_backtrack_point): Likewise.
2042         (queue_to_ready): Use insn method of "link" in one place.
2043         (schedule_block): Strengthen local "link" from rtx to
2044         rtx_insn_list *, and use its methods for clarity and type-safety.
2045
2046 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2047
2048         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
2049         param "insn" from const_rtx to const rtx_insn *.
2050         (sched_get_reverse_condition_uncached): Likewise.
2051         (sched_get_condition_with_rev): Likewise.
2052         (sched_has_condition_p): Likewise.
2053         (sched_insns_conditions_mutex_p): Likewise for both params.
2054         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
2055         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
2056         (setup_insn_reg_uses): Move local "list" to be more tightly
2057         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
2058         its methods for clarity and type-safety.
2059         (sched_analyze_1): Strengthen local "pending" from rtx to
2060         rtx_insn_list *, and local "pending_mem" from rtx to
2061         rtx_expr_list *.  Use methods of each for clarity and type-safety.
2062         (sched_analyze_2): Likewise.
2063         (sched_analyze_insn): Likewise.
2064
2065         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
2066         param from const_rtx to const rtx_insn *.
2067         (sched_insns_conditions_mutex_p): Likewise for both params.
2068         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
2069         param.
2070
2071         * system.h (CONST_CAST_RTX_INSN): New macro.
2072
2073 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2074
2075         * recog.c (peep2_attempt): Strengthen return type from rtx to
2076         rtx_insn *.
2077         (peep2_update_life): Likewise for params "last", "prev", removing
2078         a checked cast made redundant by this.
2079         (peephole2_optimize): Likewise for local "last".
2080
2081 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2082
2083         * basic-block.h (set_block_for_insn): Eliminate this macro in
2084         favor of...
2085         * rtl.h (set_block_for_insn): New inline function, imposing the
2086         requirement that the "insn" param is an rtx_insn *.
2087
2088 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2089
2090         * caller-save.c (setup_save_areas): Strengthen local "insn" from
2091         rtx to rtx_insn *.
2092         * final.c (get_call_reg_set_usage): Likewise for first param,
2093         eliminating a checked cast.
2094         * regs.h (get_call_reg_set_usage): Likewise for first param.
2095         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
2096         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
2097         cast, replacing references to "x" with "call_insn" where
2098         appropriate.
2099         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
2100         rtx_insn *, adding a checked cast.
2101
2102 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2103
2104         * output.h (final_scan_insn): Strengthen first param from rtx to
2105         rtx_insn *.
2106
2107         * final.c (final_scan_insn): Likewise, renaming it back from
2108         "uncast_insn" to "insn", eliminating the checked cast.
2109
2110         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
2111         "vec" with an rtx_sequence * "seq", taking a copy of
2112         "final_sequence", and using methods of "seq" for clarity, and for
2113         type-safety in the calls to final_scan_insn.
2114         * config/mips/mips.c (mips_output_conditional_branch): Use methods
2115         of "final_sequence" for clarity, and for type-safety in the call to
2116         final_scan_insn.
2117         * config/sh/sh.c (print_slot): Strengthen param from rtx to
2118         rtx_sequence * and rename from "insn" to "seq".
2119
2120 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2121
2122         * jump.c (delete_related_insns): Introduce a new local "table" by
2123         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
2124         get_labels method of "table" to simplify access to the labels in
2125         the jump table.
2126
2127 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2128
2129         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
2130         f_minmaxs, f_minmaxd types.
2131
2132 2014-09-05  Richard Biener  <rguenther@suse.de>
2133
2134         * cfgloop.c (mark_loop_for_removal): Record former header
2135         when ENABLE_CHECKING.
2136         * cfgloop.h (strut loop): Add former_header member when
2137         ENABLE_CHECKING.
2138         * loop-init.c (fix_loop_structure): Sanity check loops
2139         marked for removal if they re-appeared.
2140
2141 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2142
2143         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
2144         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
2145
2146         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
2147         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
2148         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
2149         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
2150         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
2151         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
2152         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
2153         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
2154         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
2155         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
2156         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
2157         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
2158         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
2159         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
2160         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
2161         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
2162         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
2163         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
2164         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
2165         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
2166         with int{32,16,8}_t.
2167
2168 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2169
2170         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
2171         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
2172         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
2173         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
2174         Remove temporary __asm__ and reimplement.
2175
2176 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2177
2178         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
2179         handling cmge, cmgt, cmeq, cmtst.
2180
2181         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
2182         cmlt, cmgeu, cmgtu, cmtst): Remove.
2183
2184         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
2185         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
2186         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
2187         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
2188
2189 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2190
2191         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
2192         TYPES_TST): Define.
2193         (aarch64_fold_builtin): Update pattern for cmtst.
2194
2195         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
2196         Declare.
2197
2198         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
2199
2200         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
2201         Switch operands, separate out more cases, refactor.
2202
2203         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
2204
2205         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
2206         argument; rename old version to...
2207         (aarch64_const_vec_all_same_in_range_p): ...this.
2208         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
2209
2210         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
2211
2212 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2213
2214         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
2215         Remove qualifier_const_pointer, update comment.
2216
2217 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2218
2219         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
2220
2221 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2222
2223         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
2224         varargs with pointer parameter.
2225         (aarch64_simd_expand_builtin): pass pointer into previous.
2226
2227 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2228
2229         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
2230         alus_ext.
2231
2232 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2233
2234         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
2235         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
2236         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
2237         Replace temporary asm with call to builtin.
2238         (vrbit_p8, vrbitq_p8): New functions.
2239
2240 2014-09-05  Richard Biener  <rguenther@suse.de>
2241
2242         * cfgloop.c (mark_loop_for_removal): New function.
2243         * cfgloop.h (mark_loop_for_removal): Declare.
2244         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
2245         (merge_blocks): Likewise.
2246         (duplicate_block): Likewise.
2247         * except.c (sjlj_emit_dispatch_table): Likewise.
2248         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
2249         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
2250         (thread_through_loop_header): Likewise.
2251
2252 2014-09-05  Richard Biener  <rguenther@suse.de>
2253
2254         PR middle-end/63148
2255         * fold-const.c (try_move_mult_to_index): Remove.
2256         (fold_binary_loc): Do not call it.
2257         * tree-data-ref.c (dr_analyze_indices): Strip conversions
2258         from the base object again.
2259
2260 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
2261
2262         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
2263         DImode.
2264
2265 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
2266
2267         PR target/55701
2268         * config/arm/arm.md (setmem): New pattern.
2269         * config/arm/arm-protos.h (struct tune_params): New fields.
2270         (arm_gen_setmem): New prototype.
2271         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
2272         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
2273         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
2274         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
2275         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
2276         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
2277         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
2278         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
2279         (arm_const_inline_cost): New function.
2280         (arm_block_set_max_insns): New function.
2281         (arm_block_set_non_vect_profit_p): New function.
2282         (arm_block_set_vect_profit_p): New function.
2283         (arm_block_set_unaligned_vect): New function.
2284         (arm_block_set_aligned_vect): New function.
2285         (arm_block_set_unaligned_non_vect): New function.
2286         (arm_block_set_aligned_non_vect): New function.
2287         (arm_block_set_vect, arm_gen_setmem): New functions.
2288
2289 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
2290
2291         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
2292
2293 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
2294
2295         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
2296
2297 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2298
2299         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
2300         an rtx.
2301         * valtrack.h: Adjust.
2302
2303 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2304
2305         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
2306         an rtx.
2307         (emit_jump_insn_before_noloc): Likewise.
2308         (emit_call_insn_before_noloc): Likewise.
2309         (emit_label_before): Likewise.
2310         (emit_label_after): Likewise.
2311         (emit_insn_before_setloc): Likewise.
2312         (emit_jump_insn_before_setloc): Likewise.
2313         (emit_call_insn_before_setloc): Likewise.
2314         (emit_call_insn_before): Likewise.
2315         * rtl.h: Adjust.
2316
2317 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2318
2319         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
2320         rtx_insn *, eliminating a checked cast.
2321
2322 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2323
2324         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
2325         const_rtx to const rtx_insn *.
2326         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
2327         cast.
2328
2329 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2330
2331         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
2332         fixup_args_size_notes.
2333         * expr.c (fixup_args_size_notes): Strengthen first two params from
2334         rtx to rtx_insn *, eliminating a checked cast.
2335         * rtl.h (fixup_args_size_notes): Strengthen first two params from
2336         rtx to rtx_insn *.
2337
2338 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2339
2340         * haifa-sched.c (get_ready_element): Strengthen return type from
2341         rtx to rtx_insn *.
2342         * sched-int.h (get_ready_element): Likewise.
2343
2344 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
2345
2346         PR target/63165
2347         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
2348         indexed_or_indirect_operand instead of memory_operand.
2349         (floatsi<mode>2_lfiwzx_mem): Ditto.
2350
2351 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2352
2353         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
2354         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
2355         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
2356
2357 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2358
2359         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
2360         rtx.
2361         (get_last_nonnote_insn): Likewise.
2362         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
2363         * resource.c (find_basic_block): Likewise.
2364         * rtl.h: Adjust.
2365         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
2366         const_rtx.
2367
2368 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
2369
2370         * genattr.c (main): Within the prototype of insn_latency written
2371         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
2372         * genautomata.c (output_internal_maximal_insn_latency_func):
2373         Within the implementation of insn_latency written out to
2374         insn-automata.c, strengthen both params from rtx to rtx_insn *,
2375         eliminating a pair of checked casts.
2376
2377 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
2378
2379         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
2380         rtx_insn *.
2381
2382         * rtl.h (eh_returnjump_p): Likewise.
2383
2384 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
2385
2386         * Makefile.in (TAGS): Handle constructs in timevar.def.
2387
2388 2014-09-04  Guozhi Wei  <carrot@google.com>
2389
2390         PR target/62040
2391         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
2392         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
2393         it into two patterns.
2394         (move_lo_quad_internal_be_<mode>): Likewise.
2395
2396 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2397
2398         * doc/options.texi: Document that Var and Init are required if CPP
2399         is given.
2400         * optc-gen.awk: Require Var and Init if CPP is given.
2401         * common.opt (Wpedantic): Use Init.
2402
2403 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2404
2405         * config/rs6000/rs6000.c (special_handling_values): Add
2406         SH_EXTRACT.
2407         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
2408         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
2409         as swappable with special handling SH_EXTRACT.  Remove
2410         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
2411         optimization.
2412         (adjust_extract): New function.
2413         (handle_special_swappables): Add default to case statement; add
2414         case for SH_EXTRACT that calls adjust_extract.
2415         (dump_swap_insn_table): Handle SH_EXTRACT.
2416
2417 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2418
2419         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
2420         selection of 0th memory doubleword, regardless of endianness.
2421
2422 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2423
2424         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
2425
2426 2014-09-04  Alan Modra  <amodra@gmail.com>
2427
2428         PR debug/60655
2429         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
2430         can't be output.
2431
2432 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
2433
2434         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
2435         * targhooks.c (default_dwarf_frame_reg_mode): New function.
2436         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
2437         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
2438         * doc/tm.texi: Regenerate.
2439         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
2440         selection logic to default_dwarf_frame_reg_mode.
2441
2442 2014-09-03  Marek Polacek  <polacek@redhat.com>
2443
2444         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
2445         by -Wall.
2446
2447 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
2448
2449         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
2450         the automodified register.
2451
2452 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
2453
2454         * output.h (get_some_local_dynamic_name): Declare.
2455         * final.c (some_local_dynamic_name): New variable.
2456         (get_some_local_dynamic_name): New function.
2457         (final_end_function): Clear some_local_dynamic_name.
2458         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
2459         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
2460         (print_operand): Report an error if '%&' is used inappropriately.
2461         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
2462         (get_some_local_dynamic_name_1): Delete.
2463         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
2464         (rs6000_get_some_local_dynamic_name): Delete.
2465         (rs6000_get_some_local_dynamic_name_1): Delete.
2466         (print_operand): Report an error if '%&' is used inappropriately.
2467         * config/s390/s390.c (machine_function): Remove some_ld_name.
2468         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
2469         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
2470         * config/sparc/sparc.c: Include rtl-iter.h.
2471         (machine_function): Remove some_ld_name.
2472         (sparc_print_operand): Report an error if '%&' is used inappropriately.
2473         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
2474
2475 2014-09-03  Richard Henderson  <rth@redhat.com>
2476
2477         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
2478         (aarch64_popwb_pair_reg): Remove.
2479         (aarch64_set_frame_expr): Remove.
2480         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
2481         the restore ops performed by the insns generated.
2482         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
2483         insn.  Perform the calls_eh_return addition later; do not attempt to
2484         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
2485         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
2486         special markup at all.  Load cfun->machine->frame.hard_fp_offset
2487         into a local variable.
2488         (aarch64_frame_pointer_required): Don't check calls_alloca.
2489
2490 2014-09-03  Richard Biener  <rguenther@suse.de>
2491
2492         * opts.c (default_options_optimization): Adjust
2493         max-combine-insns to 2 for -Og.
2494
2495 2014-09-03  Martin Jambor  <mjambor@suse.cz>
2496
2497         PR ipa/62015
2498         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
2499         pass-trough jump functions correctly.
2500
2501 2014-09-03  Martin Jambor  <mjambor@suse.cz>
2502
2503         PR ipa/61986
2504         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
2505         created replacements in ascending order of offsets.
2506         (known_aggs_to_agg_replacement_list): Likewise.
2507
2508 2014-09-03  Martin Liska  <mliska@suse.cz>
2509
2510         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
2511         is set to set uninitialized value for vnresult.
2512
2513 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2514
2515         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
2516         for TARGET_MUST_PASS_IN_STACK.
2517
2518 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2519
2520         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
2521         for TARGET_ARG_PARTIAL_BYTES.
2522
2523 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2524
2525         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
2526         instructions for varargs implementation.
2527         (nds32_expand_epilogue): Emit stack adjustment instructions for
2528         varargs implementation.
2529
2530 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2531
2532         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
2533         optimization detection.
2534
2535 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2536
2537         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
2538         arguments.
2539         (nds32_function_arg_advance): Deal with nameless arguments.
2540         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
2541         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
2542         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
2543
2544 2014-09-03  Richard Biener  <rguenther@suse.de>
2545
2546         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
2547         (struct bb_bitmap_sets): Remove deferred member.
2548         (BB_DEFERRED): Remove.
2549         (defer_or_phi_translate_block): Remove.
2550         (compute_antic_aux): Remove deferring of blocks, assert
2551         proper iteration order.
2552         (compute_antic): Do not set BB_DEFERRED.
2553         (eliminate): Allocate el_avail of proper size initially.
2554
2555 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2556
2557         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
2558         according to the value of crtl->args.pretend_args_size.
2559
2560 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2561
2562         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
2563         varargs information.
2564
2565 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2566
2567         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
2568         implementation for TARGET_SETUP_INCOMING_VARARGS.
2569         (nds32_strict_argument_naming): Refine comment.
2570         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
2571         Define for future implementation.
2572
2573 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
2574
2575         * config/i386/adxintrin.h (_subborrow_u32): New.
2576         (_addcarry_u32): Ditto.
2577         (_subborrow_u64): Ditto.
2578         (_addcarry_u64): Ditto.
2579         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
2580         IX86_BUILTIN_SBB64.
2581         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
2582         __builtin_ia32_sbb_u64
2583
2584 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2585
2586         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
2587         GPR-specific stuff.
2588         (nds32_function_arg_advance): Likewise.
2589         (nds32_init_cumulative_args): Likewise.
2590         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
2591         (NDS32_FIRST_GPR_REGNUM): Define.
2592         (NDS32_LAST_GPR_REGNUM): Define.
2593         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
2594         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
2595         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
2596         (machine_function): Use GRP-specific stuff.
2597
2598 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2599
2600         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
2601         (nds32_expand_epilogue): Likewise.
2602         (nds32_expand_prologue_v3push): Likewise.
2603         (nds32_expand_epilogue_v3pop): Likewise.
2604
2605 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2606
2607         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
2608         v3push/v3pop for variadic function.
2609         * config/nds32/nds32.md (prologue, epilogue): Likewise.
2610
2611 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2612
2613         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
2614         Check rtx for varargs implementation.
2615         (nds32_output_stack_pop): Likewise.
2616         * config/nds32/nds32-protos.h: Have a rtx argument for
2617         nds32_output_stack_push and nds32_output_stack_pop.
2618         * config/nds32/nds32.md: Likewise.
2619
2620 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2621
2622         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
2623         to check if FUNC is an interrupt service routine.
2624         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
2625
2626 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2627
2628         * config/nds32/nds32.h (machine_function): Add some fields for variadic
2629         arguments implementation.
2630
2631 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2632
2633         * config/nds32/nds32-predicates.c
2634         (nds32_valid_stack_push_pop): Rename to ...
2635         (nds32_valid_stack_push_pop_p): ... this.
2636         * config/nds32/nds32-protos.h: Likewise.
2637         * config/nds32/predicates.md: Likewise.
2638
2639 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2640
2641         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
2642         (nds32_emit_stack_v3push): ... this.
2643         (nds32_gen_stack_v3pop): Rename to ...
2644         (nds32_emit_stack_v3pop): ... this and consider CFA restore
2645         information.
2646
2647 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2648
2649         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
2650         (nds32_emit_stack_push_multiple): ... this.
2651         (nds32_gen_stack_pop_multiple): Rename to ...
2652         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
2653         information.
2654
2655 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2656
2657         PR target/61078
2658         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
2659         and add a second splitter to handle the remaining cases.
2660
2661 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2662
2663         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
2664
2665 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
2666
2667         * cfgexpand.c (label_rtx_for_bb): Change type to
2668         hash_map<basic_block, rtx_code_label *> *.
2669         (expand_gimple_basic_block): Adjust.
2670         (pass_expand::execute): Likewise.
2671
2672 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
2673
2674         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
2675         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
2676         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
2677         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
2678         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
2679         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
2680         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
2681         of rtx.
2682
2683 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
2684
2685         * alloc-pool.c: Include coretypes.h.
2686         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
2687         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
2688         hash_set instead of htab.
2689         * ggc-page.c (in_gc): New variable.
2690         (ggc_free): Do nothing if a collection is taking place.
2691         (ggc_collect): Set in_gc appropriately.
2692         * ggc.h (gt_ggc_mx(const char *)): New function.
2693         (gt_pch_nx(const char *)): Likewise.
2694         (gt_ggc_mx(int)): Likewise.
2695         (gt_pch_nx(int)): Likewise.
2696         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
2697         (hash_map::hash_entry::pch_nx): Likewise.
2698         (hash_map::hash_entry::pch_nx_helper): Likewise.
2699 (hash_map::hash_map): Adjust.
2700 (hash_map::create_ggc): New function.
2701 (gt_ggc_mx): Likewise.
2702 (gt_pch_nx): Likewise.
2703         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
2704 (default_hashset_traits::pch_nx): Likewise.
2705 (hash_set::hash_entry::ggc_mx): Likewise.
2706 (hash_set::hash_entry::pch_nx): Likewise.
2707 (hash_set::hash_entry::pch_nx_helper): Likewise.
2708 (hash_set::hash_set): Adjust.
2709 (hash_set::create_ggc): New function.
2710 (hash_set::elements): Likewise.
2711 (gt_ggc_mx): Likewise.
2712 (gt_pch_nx): Likewise.
2713         * hash-table.h (hash_table::hash_table): Adjust.
2714 (hash_table::m_ggc): New member.
2715         (hash_table::~hash_table): Adjust.
2716         (hash_table::expand): Likewise.
2717         (hash_table::empty): Likewise.
2718 (gt_ggc_mx): New function.
2719         (hashtab_entry_note_pointers): Likewise.
2720 (gt_pch_nx): Likewise.
2721
2722 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2723
2724         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
2725         built-in definition.
2726         (XVCVUXDDP_SCALE): Likewise.
2727         (XVCVDPSXDS_SCALE): Likewise.
2728         (XVCVDPUXDS_SCALE): Likewise.
2729         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
2730         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
2731         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
2732         VSX_BUILTIN_XVCVDPUXDS_SCALE.
2733         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
2734         prototype.
2735         * config/rs6000/rs6000.c (real.h): New include.
2736         (rs6000_scale_v2df): New function.
2737         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
2738         (UNSPEC_VSX_XVCVUXDDP): Likewise.
2739         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
2740         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
2741         (vsx_xvcvsxddp_scale): New define_expand.
2742         (vsx_xvcvsxddp): New define_insn.
2743         (vsx_xvcvuxddp_scale): New define_expand.
2744         (vsx_xvcvuxddp): New define_insn.
2745         (vsx_xvcvdpsxds_scale): New define_expand.
2746         (vsx_xvcvdpsxds): New define_insn.
2747         (vsx_xvcvdpuxds_scale): New define_expand.
2748         (vsx_xvcvdpuxds): New define_insn.
2749         * doc/extend.texi (vec_ctf): Add new prototypes.
2750         (vec_cts): Likewise.
2751         (vec_ctu): Likewise.
2752         (vec_splat): Likewise.
2753         (vec_div): Likewise.
2754         (vec_mul): Likewise.
2755
2756 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2757
2758         PR target/62275
2759         * config/arm/neon.md
2760         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
2761         <v_cmp_result>): New pattern.
2762         * config/arm/iterators.md (NEON_VCVT): New int iterator.
2763         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
2764         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
2765         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
2766         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
2767         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
2768
2769 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2770
2771         PR target/62275
2772         * config/arm/iterators.md (FIXUORS): New code iterator.
2773         (VCVT): New int iterator.
2774         (su_optab): New code attribute.
2775         (su): Likewise.
2776         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
2777
2778 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2779
2780         * config/aarch64/predicates.md (aarch64_comparison_operation):
2781         New special predicate.
2782         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
2783         aarch64_comparison_operation instead of matching an operator.
2784         Update operand numbers.
2785         (csinc3<mode>_insn): Likewise.
2786         (*csinv3<mode>_insn): Likewise.
2787         (*csneg3<mode>_insn): Likewise.
2788         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
2789         * config/aarch64/aarch64.c (aarch64_get_condition_code):
2790         Return -1 instead of aborting on invalid condition codes.
2791         (aarch64_print_operand): Update aarch64_get_condition_code callsites
2792         to assert that the returned condition code is valid.
2793         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
2794
2795 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
2796
2797         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
2798         tree.def, and gimple.def
2799
2800 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
2801             Balaji V. Iyer  <balaji.v.iyer@intel.com>
2802             Igor Zamyatin  <igor.zamyatin@intel.com>
2803
2804         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
2805         (__cilkrts_cilk_for_64): Likewise.
2806         * cilk-common.c (declare_cilk_for_builtin): New function.
2807         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
2808         __cilkrts_cilk_for_64 bultins.
2809         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
2810         CILK_TI_F_LOOP_64.
2811         (cilk_for_32_fndecl): New define.
2812         (cilk_for_64_fndecl): Likewise.
2813         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
2814         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
2815         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
2816         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
2817         GF_OMP_FOR_COMBINED_INTO.
2818         * gimplify.c (gimplify_scan_omp_clauses): Added
2819         OMP_CLAUSE__CILK_FOR_COUNT_ case.
2820         (gimplify_adjust_omp_clauses): Ditto.
2821         (gimplify_omp_for): Added CILK_FOR case.
2822         (gimplify_expr): Ditto.
2823         * omp-low.c: Include cilk.h.
2824         (extract_omp_for_data): Set appropriate kind for
2825         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
2826         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
2827         (create_omp_child_function_name): Added second argument to handle
2828         cilk_for case.
2829         (cilk_for_check_loop_diff_type): New function.
2830         (expand_cilk_for_call): Likewise.
2831         (expand_cilk_for): Likewise.
2832         (create_omp_child_function): Set cilk_for_count; handle the cases when
2833         it is true; call create_omp_child_function_name with second argument.
2834         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
2835         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
2836         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
2837         * tree-nested.c (convert_nonlocal_omp_clauses): Added
2838         OMP_CLAUSE__CILK_FOR_COUNT_ case.
2839         (convert_local_omp_clauses): Ditto.
2840         * tree-pretty-print.c (dump_omp_clause): Added
2841         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
2842         (dump_generic_node): Added CILK_FOR case.
2843         * tree.c (omp_clause_num_ops): New element
2844         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
2845         (omp_clause_code_name): New element _Cilk_for_count_.
2846         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
2847         * tree.def: Add tree code for CILK_FOR.
2848
2849 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
2850
2851         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
2852         (ppc403-compare): Add "exts with dot" case.
2853         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
2854         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
2855         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
2856         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
2857         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
2858         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
2859         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
2860         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
2861         cell-cmp-microcoded): Similarly.
2862         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
2863         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
2864         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
2865         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
2866         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
2867         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
2868         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
2869         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
2870         (power6-compare): Add "exts with dot" case.
2871         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
2872         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
2873         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
2874
2875         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
2876         if avoiding Cell microcode.
2877         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
2878         (is_cracked_insn): Ditto.
2879         (insn_must_be_first_in_group): Ditto.
2880         * config/rs6000/rs6000.md (dot): Adjust comment.
2881         (cell_micro): Handle exts+dot.
2882         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
2883         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
2884         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
2885         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
2886         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
2887         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
2888         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
2889
2890 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
2891
2892         * config/rs6000/rs6000.md (QHSI): Delete.
2893         (EXTQI, EXTHI, EXTSI): New mode iterators.
2894         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
2895         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
2896         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
2897         9 anonymous instructions, and 8 splitters): Delete.
2898         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
2899         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
2900         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
2901         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
2902         *zero_extendsi<mode>2_dot2): New.
2903
2904 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
2905
2906         * config/rs6000/rs6000.md (any_extend): New code iterator.
2907         (u, su): New code attributes.
2908         (dmode, DMODE): New mode attributes.
2909         (<su>mul<mode>3_highpart): New.
2910         (*<su>mul<mode>3_highpart): New.
2911         (<su>mulsi3_highpart_le): New.
2912         (<su>muldi3_highpart_le): New.
2913         (<su>mulsi3_highpart_64): New.
2914         (<u>mul<mode><dmode>3): New.
2915         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
2916         splitters): Delete.
2917         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
2918         splitters): Delete.
2919
2920 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
2921
2922         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
2923         *mulsi3_internal2, and two splitters): Delete.
2924         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
2925         Delete.
2926         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
2927
2928 2014-09-02  Richard Biener  <rguenther@suse.de>
2929
2930         PR tree-optimization/62695
2931         * tree-ssa-structalias.c (find_func_clobbers): Add missing
2932         vector truncate.
2933
2934 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
2935
2936         PR target/62312
2937         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
2938
2939 2014-09-01  Andi Kleen  <ak@linux.intel.com>
2940
2941         * file-find.c (add_prefix_begin): Add.
2942         (do_add_prefix): Rename from add_prefix with first argument.
2943         (add_prefix): Add new wrapper.
2944         * file-find.h (add_prefix_begin): Add.
2945         * gcc-ar.c (main): Support -B option.
2946
2947 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
2948
2949         * genemit.c: Include dumpfile.h.
2950         (gen_split): Print name of splitter function to dump file.
2951
2952 2014-09-01  Richard Biener  <rguenther@suse.de>
2953
2954         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
2955         Use stack auto_vecs for constraint expressions.
2956         (find_func_aliases_for_call): Likewise.
2957         (find_func_aliases): Likewise.
2958         (find_func_clobbers): Likewise.
2959
2960 2014-09-01  Richard Biener  <rguenther@suse.de>
2961
2962         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
2963         operands vector in most cases.  Remove redundant code.
2964
2965 2014-09-01  Olivier Hainque  <hainque@adacore.com>
2966
2967         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
2968         $WIND_BASE instead of designating a harcoded arbitrary home dir.
2969         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
2970
2971 2014-09-01  Richard Biener  <rguenther@suse.de>
2972
2973         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
2974         copy_reference_ops_from_call, vn_nary_op_compute_hash,
2975         vn_reference_compute_hash, vn_reference_insert): Remove.
2976         (vn_reference_lookup_call): New function.
2977         * tree-ssa-sccvn.c (vn_reference_compute_hash,
2978         copy_reference_ops_from_ref, copy_reference_ops_from_call,
2979         vn_reference_insert, vn_nary_op_compute_hash): Make static.
2980         (create_reference_ops_from_call): Remove.
2981         (vn_reference_lookup_3): Properly update shared_lookup_references.
2982         (vn_reference_lookup_pieces): Assert that we updated
2983         shared_lookup_references properly.
2984         (vn_reference_lookup): Likewise.
2985         (vn_reference_lookup_call): New function.
2986         (visit_reference_op_call): Use it.  Avoid re-building the
2987         reference ops.
2988         (visit_reference_op_load): Remove redundant lookup.
2989         (visit_reference_op_store): Perform special tail-merging work
2990         only when possibly doing tail-merging.
2991         (visit_use): Likewise.
2992         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
2993
2994 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
2995
2996         PR target/62025
2997         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
2998         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
2999         (find_inc): Revert 2014-08-13 change.
3000
3001 2014-09-01  Marek Polacek  <polacek@redhat.com>
3002
3003         PR middle-end/61903
3004         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
3005         Change the type of V to unsigned HOST_WIDE_INT.
3006
3007 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3008
3009         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
3010         the size of byte markers.
3011         (do_shift_rotate): Fix confusion between host, target and marker byte
3012         size.
3013         (verify_symbolic_number_p): Likewise.
3014         (find_bswap_or_nop_1): Likewise.
3015         (find_bswap_or_nop): Likewise.
3016
3017 2014-09-01  Olivier Hainque  <hainque@adacore.com>
3018
3019         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
3020         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
3021
3022 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
3023
3024         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
3025         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
3026         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
3027
3028 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
3029
3030         PR sanitizer/61897
3031         PR sanitizer/62140
3032         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
3033         (build_check_stmt): Likewise.
3034         (instrument_strlen_call): Likewise.
3035         (asan_expand_check_ifn): Likewise and fix types.
3036         (maybe_cast_to_ptrmode): New function.
3037
3038 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3039
3040         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
3041
3042 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
3043
3044         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
3045
3046 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
3047
3048         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
3049         prefix to function labels when generating fast indirect calls.
3050
3051 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
3052
3053         PR bootstrap/62304
3054
3055         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
3056         param back from rtx_insn * to rtx.  Rename param from "label" to
3057         "label_or_return", reintroducing "label" as an rtx_insn * after
3058         we've ensured it's not a RETURN.
3059         (first_active_target_insn): Likewise for return type and param;
3060         add a checked cast to rtx_insn * once we've ensured "insn" is not
3061         a RETURN.
3062         (steal_delay_list_from_target): Convert param "pnew_thread" back
3063         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
3064         with JUMP_LABEL.
3065         (own_thread_p): Convert param "thread" back from an rtx_insn * to
3066         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
3067         cast once we've established we're not dealing with a RETURN,
3068         renaming subsequent uses of "thread" to "thread_insn".
3069         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
3070         to JUMP_LABEL.
3071         (follow_jumps): Convert return type and param "label" from
3072         rtx_insn * back to rtx.  Move initialization of "value" to after
3073         the handling for ANY_RETURN_P, adding a checked cast there to
3074         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
3075         rename to "this_label_or_return", reintroducing "this_label" as
3076         an rtx_insn * once we've handled the case where it could be an
3077         ANY_RETURN_P.
3078         (fill_slots_from_thread): Rename param "thread" to
3079         "thread_or_return", converting from an rtx_insn * back to an rtx.
3080         Reintroduce name "thread" as an rtx_insn * local with a checked
3081         cast once we've handled the case of it being an ANY_RETURN_P.
3082         Convert local "new_thread" from an rtx_insn * back to an rtx.
3083         Add a checked cast when assigning to "trial" from "new_thread".
3084         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
3085         checked cast to rtx_insn * from "new_thread" when invoking
3086         get_label_before.
3087         (fill_eager_delay_slots): Convert locals "target_label",
3088         "insn_at_target" from rtx_insn * back to rtx.
3089         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
3090         (relax_delay_slots): Convert locals "trial", "target_label" from
3091         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
3092         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
3093         invoking update_block.
3094         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
3095         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
3096
3097         * resource.h (mark_target_live_regs): Undo erroneous conversion
3098         of second param of r214693, converting it back from rtx_insn * to
3099         rtx, since it could be a RETURN.
3100
3101         * resource.c (find_dead_or_set_registers): Similarly, convert
3102         param "jump_target" back from an rtx_insn ** to an rtx *, as we
3103         could be writing back a RETURN.  Rename local rtx_insn * "next" to
3104         "next_insn", and introduce "lab_or_return" as a local rtx,
3105         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
3106         (mark_target_live_regs): Undo erroneous conversion
3107         of second param of r214693, converting it back from rtx_insn * to
3108         rtx, since it could be a RETURN.  Rename it from "target" to
3109         "target_maybe_return", reintroducing the name "target" as a local
3110         rtx_insn * with a checked cast, after we've handled the case of
3111         ANY_RETURN_P.
3112
3113 2014-08-29  DJ Delorie  <dj@redhat.com>
3114
3115         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
3116         pointer size up to a power of two.
3117         * defaults.h (DWARF2_ADDR_SIZE): Round up.
3118         (POINTER_SIZE_UNITS): New, rounded up value.
3119         * dwarf2asm.c (size_of_encoded_value): Use it.
3120         (dw2_output_indirect_constant_1): Likewise.
3121         * expmed.c (init_expmed_one_conv): We now know the sizes of
3122         partial int modes.
3123         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
3124         * optabs.c (expand_float): Use precision, not size.
3125         (expand_fix): Likewise.
3126         * simplify-rtx (simplify_unary_operation_1): Likewise.
3127         * tree-dfa.c (get_ref_base_and_extent): Likewise.
3128         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
3129         (default_assemble_integer) Likewise.
3130         (dump_tm_clone_pairs): Likewise.
3131         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
3132         * var-tracking.c (adjust_mems): Allow partial-int modes also.
3133         (prepare_call_arguments): Likewise.
3134         * stor-layout.c (finalize_type_size): Preserve precision.
3135         (layout_type): Use precision, not size.
3136
3137         * expr.c (convert_move): If the target has an explicit converter,
3138         use it.
3139
3140 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
3141
3142         * gdbinit.in: Skip various inline functions in rtl.h when
3143         stepping.
3144
3145 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
3146
3147         PR bootstrap/62301
3148         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
3149
3150 2014-08-29  Richard Biener  <rguenther@suse.de>
3151
3152         PR tree-optimization/62291
3153         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
3154         exactly the vector size needed and use quick_push.
3155         (phi_translate_1): Adjust comment.
3156         (valid_in_sets): Remove block argument and remove pointless
3157         checking of NAMEs.
3158         (dependent_clean): Adjust for removal of block argument.
3159         (clean): Likewise.
3160         (compute_antic_aux): Likewise.
3161         (compute_partial_antic_aux): Likewise.
3162
3163 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3164             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3165             Anna Tikhonova  <anna.tikhonova@intel.com>
3166             Ilya Tocar  <ilya.tocar@intel.com>
3167             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3168             Ilya Verbin  <ilya.verbin@intel.com>
3169             Kirill Yukhin  <kirill.yukhin@intel.com>
3170             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3171
3172         * config/i386/sse.md
3173         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
3174         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
3175         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
3176         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
3177
3178 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3179             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3180             Anna Tikhonova  <anna.tikhonova@intel.com>
3181             Ilya Tocar  <ilya.tocar@intel.com>
3182             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3183             Ilya Verbin  <ilya.verbin@intel.com>
3184             Kirill Yukhin  <kirill.yukhin@intel.com>
3185             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3186
3187         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
3188         * config/i386/sse.md
3189         (define_mode_iterator VI4_128_8_256): New.
3190         (define_mode_iterator VI2_128_4_256): Ditto.
3191         (define_mode_iterator PMOV_DST_MODE): Rename into
3192         (define_mode_iterator PMOV_DST_MODE_1): this.
3193         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
3194         Use PMOV_DST_MODE_1 mode iterator.
3195         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
3196         Ditto.
3197         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
3198         Ditto.
3199         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
3200         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
3201         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
3202         (define_mode_iterator PMOV_DST_MODE_2): New.
3203         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
3204         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
3205         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
3206         Ditto.
3207         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
3208         (define_mode_attr pmov_dst_3): Ditto.
3209         (define_mode_attr pmov_dst_zeroed_3): Ditto.
3210         (define_mode_attr pmov_suff_3): Ditto.
3211         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
3212         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
3213         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
3214         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
3215         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
3216         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
3217         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
3218         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
3219         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
3220         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
3221         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
3222         (define_mode_attr pmov_dst_4): Ditto.
3223         (define_mode_attr pmov_dst_zeroed_4): Ditto.
3224         (define_mode_attr pmov_suff_4): Ditto.
3225         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
3226         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
3227         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
3228         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
3229         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
3230         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
3231         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
3232         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
3233         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
3234         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
3235         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
3236
3237 2014-08-29  Richard Biener  <rguenther@suse.de>
3238
3239         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
3240         NON_LVALUE_EXPR in gimple.
3241
3242 2014-08-29  Richard Biener  <rguenther@suse.de>
3243
3244         PR middle-end/62292
3245         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
3246         from previous refactoring.
3247         (gimple_fold_builtin_strncpy): Likewise.
3248
3249 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
3250
3251         PR bootstrap/62300
3252         * function.c (assign_parm_setup_reg): Remove erroneous checked
3253         cast to rtx_insn * on result of gen_extend_insn in favor of
3254         introducing a new local rtx "pat".
3255
3256 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3257
3258         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
3259         to silence warning.
3260         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
3261
3262 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3263
3264         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
3265         (next_insn): Likewise.
3266         * emit-rtl.c (next_insn): Likewise.
3267         (previous_insn): Likewise.
3268         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
3269         "insn" and "next" from rtx to rtx_insn *.
3270         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
3271         "insn", "insn1", "vliw_start",  "prologue_end_note",
3272         "last_insn_in_packet".
3273
3274 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3275
3276         * shrink-wrap.h (active_insn_between): Strengthen both params from
3277         rtx to rtx_insn *.
3278         * function.c (active_insn_between): Likewise.
3279
3280 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3281
3282         * genattr.c (main): When writing out insn-attr.h, strengthen param
3283         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
3284         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
3285         writing out the definition of dfa_clear_single_insn_cache to the
3286         generated insn-automata.c
3287
3288 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3289
3290         * resource.h (clear_hashed_info_for_insn): Strengthen param from
3291         rtx to rtx_insn *.
3292         (incr_ticks_for_insn): Likewise.
3293         (init_resource_info): Likewise.
3294
3295         * resource.c (init_resource_info): Likewise.
3296         (clear_hashed_info_for_insn): Likewise.
3297         (incr_ticks_for_insn): Likewise.
3298
3299         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
3300         rtx to rtx_insn *.
3301         (steal_delay_list_from_target): Use methods of "seq".
3302         (try_merge_delay_insns): Use methods of "merged_insns".
3303         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
3304         (reorg_redirect_jump): Likewise for param "jump".
3305
3306 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3307
3308         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
3309         rtx to rtx_insn *.
3310         * config/s390/s390.c (s390_split_branches): Eliminate top-level
3311         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
3312         "set_insn".
3313         (s390_mainpool_finish): In three places, split out a local rtx
3314         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
3315         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
3316          and split another local rtx "insn" out into rtx "pat" and
3317         rtx_insn * "insn".
3318         * config/sh/sh.c (output_branchy_insn): Rather than working
3319         directly on operands[9], introduce local rtx_code_label *
3320         variables named "lab" in two places, working on them, and then
3321         assigning them to operands[9], so that the intervening operations
3322         are known by the type system to be on insns.
3323
3324 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3325
3326         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
3327         const rtx_insn *.
3328
3329         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
3330         in invocation of INSN_HAS_LOCATION.
3331
3332 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3333
3334         * config/rs6000/altivec.h (vec_xl): New #define.
3335         (vec_xst): Likewise.
3336         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
3337         (XXSPLTD_V2DI): Likewise.
3338         (DIV_V2DI): Likewise.
3339         (UDIV_V2DI): Likewise.
3340         (MUL_V2DI): Likewise.
3341         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3342         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
3343         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
3344         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
3345         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
3346         (UNSPEC_VSX_DIVSD): Likewise.
3347         (UNSPEC_VSX_DIVUD): Likewise.
3348         (UNSPEC_VSX_MULSD): Likewise.
3349         (vsx_mul_v2di): New insn-and-split.
3350         (vsx_div_v2di): Likewise.
3351         (vsx_udiv_v2di): Likewise.
3352         (vsx_xxspltd_<mode>): New insn.
3353
3354 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3355
3356         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
3357         NEXT_INSN.
3358         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
3359         (NEXT_INSN): Likewise.
3360         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
3361         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
3362         const rtx_insn *.
3363         (no_labels_between_p): Likewise for both params.
3364
3365         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
3366         cast when using NEXT_INSN on operands[2].
3367         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
3368         "insn" from rtx to rtx_insn *, adding a checked cast.
3369         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
3370         rtx_insn *.
3371         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
3372         for third param.
3373         (arc_text_label): Likewise for param "insn".
3374         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
3375         "insn".
3376         (arc_ccfsm_record_condition): Likewise for param "jump".
3377         (arc_text_label): Likewise for local "label".
3378         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
3379         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
3380         a method for typesafety.  Add a checked cast.
3381         * config/arc/constraints.md (Clb): Add a checked cast when getting
3382         the CODE_LABEL from a LABEL_REF.
3383         * config/arm/arm.c (require_pic_register): Strengthen locals
3384         "seq", "insn" from rtx to rtx_insn *.
3385         (create_fix_barrier): Likewise for locals "selected", "next".
3386         (thumb1_reorg): Likewise for locals "prev", "insn".
3387         (arm_expand_prologue): Likewise for local "last".
3388         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
3389         operands[0].
3390         (thumb2_output_casesi): Likewise for operands[2].
3391         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
3392         strengthen local "insn" from rtx to rtx_insn *.
3393         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
3394         type and param "insn".
3395         (find_prev_insn_start): Likewise.
3396         (hwloop_optimize): Likewise for locals "insn", "last_insn",
3397         "prev".
3398         (gen_one_bundle): Likewise for loal "t".
3399         (find_load): Likewise for param "insn".
3400         (workaround_speculation): Likewise for locals "insn", "next",
3401         "target", "next_tgt".
3402         * config/c6x/c6x.c (assign_reservations): Likewise for both params
3403         and for locals "insn", "within", "last".
3404         (count_unit_reqs): Likewise for params "head", "tail" and local
3405         "insn".
3406         (try_rename_operands): Likewise for params "head", "tail".
3407         (reshuffle_units): Likewise for locals "head", "tail", "insn".
3408         (struct c6x_sched_context): Likewise for fields
3409         "last_scheduled_insn", "last_scheduled_iter0".
3410         (init_sched_state): Replace NULL_RTX with NULL.
3411         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
3412         to rtx_insn *.
3413         (undo_split_delayed_nonbranch): Likewise for param and for local
3414         "prev".
3415         (conditionalize_after_sched): Likewise for local "insn".
3416         (bb_earliest_end_cycle): Likewise.
3417         (filter_insns_above): Likewise for locals "insn", "next".
3418         (hwloop_optimize): Remove redundant checked cast.
3419         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
3420         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
3421         NULL_RTX with NULL.
3422         (cris_simple_epilogue): Likewise.
3423         (cris_expand_prologue): Likewise.
3424         (cris_expand_epilogue): Likewise.
3425         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
3426         local "insn" from rtx to rtx_insn *.
3427         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
3428         (struct frv_packet_group): Likewise for the elements within array
3429         fields "insns", "sorted", and for field "nop".
3430         (frv_packet): Likewise for the elements within array field
3431         "insns".
3432         (frv_add_insn_to_packet): Likewise for param "insn".
3433         (frv_insert_nop_in_packet): Likewise for param "insn" and local
3434         "last".
3435         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
3436         (frv_sort_insn_group_1): Likewise for local "insn".
3437         (frv_optimize_membar_local): Likewise.
3438         (frv_align_label): Likewise for locals "x", "last", "barrier",
3439         "label".
3440         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
3441         local.
3442         (ia64_sched_init): Likewise for local "insn".
3443         (scheduled_good_insn): Likewise for param "last".
3444         (struct _ia64_sched_context): Likewise for field
3445         "last_scheduled_insn".
3446         (ia64_init_sched_context): Replace NULL_RTX with NULL.
3447         (struct bundle_state): Likewise for field "insn".
3448         (issue_nops_and_insn): Likewise for param "insn".
3449         (get_next_important_insn): Likewise for return type and both
3450         params.
3451         (ia64_add_bundle_selector_before): Likewise for param "insn".
3452         (bundling): Likewise for params "prev_head_insn", "tail" and
3453         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
3454         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
3455         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
3456         Strengthen final param from rtx to rtx_insn *.
3457         (iq2000_move_1word): Likewise for second param.
3458         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
3459         param "cur_insn" and local "next_insn".
3460         (iq2000_move_1word): Likewise for param "insn".
3461         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
3462         casts when using NEXT_INSN on operands[1].
3463         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
3464         "insn" from rtx to rtx_insn *.
3465         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
3466         "x", introducing local rtx_insn * "insn" for when working with the
3467         CODE_LABEL of the LABEL_REF.
3468         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
3469         rtx_insn *.
3470         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
3471         param.
3472         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
3473         type.
3474         (conditionalize_block): Likewise for return type and param.
3475         (mcore_is_dead): Likewise for param "first" and local "insn".
3476         (emit_new_cond_insn): Likewise for return type.
3477         (conditionalize_block): Likewise for return type, param, and
3478         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
3479         "newinsn".
3480         (conditionalize_optimization): Likewise for local "insn".
3481         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
3482         using NEXT_INSN.
3483         * config/microblaze/microblaze.md: Add checked casts when using
3484         NEXT_INSN.
3485         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
3486         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
3487         and rtx_insn * "insn".
3488         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
3489         checked cast when using NEXT_INSN on operands[2].
3490         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
3491         local "insn" from rtx to rtx_insn *.
3492         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
3493         Likewise.
3494         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
3495         Add a checked cast when using NEXT_INSN on operands[1].
3496         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
3497         rtx to rtx_insn *.
3498         (pa_output_cbranch): Likewise for final param.
3499         (pa_output_lbranch): Likewise for second param.
3500         (pa_output_bb): Likewise for third param.
3501         (pa_output_bvb): Likewise.
3502         (pa_output_dbra): Likewise for second param.
3503         (pa_output_movb): Likewise.
3504         (pa_output_parallel_movb): Likewise.
3505         (pa_output_parallel_addb): Likewise.
3506         (pa_output_millicode_call): Likewise for first param.
3507         (pa_output_mul_insn): Likewise for second param.
3508         (pa_output_div_insn): Likewise for third param.
3509         (pa_output_mod_insn): Likewise for second param.
3510         (pa_jump_in_call_delay): Likewise for param.
3511         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
3512         (pa_output_div_insn): Likewise.
3513         (pa_output_mod_insn): Likewise.
3514         (pa_output_cbranch): Likewise.
3515         (pa_output_lbranch): Likewise.
3516         (pa_output_bb): Likewise.
3517         (pa_output_bvb): Likewise.
3518         (pa_output_dbra): Likewise.
3519         (pa_output_movb): Likewise.
3520         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
3521         to simplify and for typesafety.
3522         (pa_output_call): Use method of rtx_sequence *.
3523         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
3524         (pa_jump_in_call_delay): Likewise.
3525         (pa_output_parallel_movb): Likewise.
3526         (pa_output_parallel_addb): Likewise.
3527         (pa_following_call): Likewise.
3528         (pa_combine_instructions): Likewise for locals "anchor",
3529         "floater".
3530         (pa_can_combine_p): Likewise for params "anchor", "floater" and
3531         locals "start", "end".
3532         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
3533         param "insn" and local "local_insn".
3534         (picochip_final_prescan_insn): Likewise for local "local_insn".
3535         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
3536         local "insn".
3537         (uses_TOC): Likewise.
3538         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
3539         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
3540         splitting out to more tightly-scoped locals, 3 as rtx and one as
3541         rtx_insn *.
3542         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
3543         to rtx_insn *.
3544         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
3545         where needed.
3546         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
3547         to rtx_insn *.
3548         (fixup_addr_diff_vecs): Likewise.
3549         (reg_unused_after): Likewise for param 2.
3550         (sh_can_redirect_branch): Likewise for both params.
3551         (check_use_sfunc_addr): Likewise for param 1.
3552         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
3553         (find_barrier): Likewise for local "last_got".
3554         (gen_block_redirect): Likewise for return type, param "jump" and
3555         locals "prev", "scan", "next", "insn".
3556         (struct far_branch): Likewise for fields "near_label",
3557         "insert_place", "far_label".
3558         (gen_far_branch): Likewise for local "jump".
3559         (fixup_addr_diff_vecs): Likewise for param "first" and locals
3560         "insn", "prev".
3561         (barrier_align): Likewise for param and for locals "prev", "x".
3562         Introduce local rtx_sequence * "prev_seq" and use insn method for
3563         typesafety and clarity.
3564         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
3565         (get_dest_uid): Likewise for local "dest".
3566         (split_branches): Likewise for locals "next", "beyond", "label",
3567         "block", "far_label".  Add checked casts when assigning to
3568         bp->far_label and "far_label".
3569         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
3570         (sequence_insn_p): Likewise.
3571         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
3572         more loop-scoped rtx "insn" when walking LABEL_REFS.
3573         (sh_can_redirect_branch): Strengthen both params from rtx to
3574         rtx_insn *.
3575         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
3576         new local rtx_sequence * "seq" via a dyn_cast, and use a method
3577         for clarity and typesafety.
3578         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
3579         "insn" from rtx to rtx_insn *.
3580         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
3581         when using NEXT_INSN on the CODE_LABEL in operands[2].
3582         (define_insn "casesi_worker_2"): Likewise.
3583         (define_insn "casesi_shift_media"): Likewise.
3584         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
3585         operands[3].
3586         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
3587         Strengthen field "insn" from rtx to rtx_insn *.
3588         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
3589         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
3590         param "start_insn" and local "start_insn".
3591         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
3592         field "insn".
3593         (find_set_of_reg_bb): Likewise for param "insn".
3594         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
3595         (trace_reg_uses): Likewise for param "start_insn".
3596         (sh_treg_combine::cbranch_trace): Likewise for field
3597         "cbranch_insn".
3598         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
3599         param "insn".
3600         (sh_treg_combine::record_set_of_reg): Likewise for param
3601         "start_insn" and local "i".
3602         (sh_treg_combine::can_remove_cstore): Likewise for local
3603         "prev_insn".
3604         (sh_treg_combine::try_optimize_cbranch): Likewise for param
3605         "insn".
3606         (sh_treg_combine::execute): Likewise for local "i".
3607         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
3608         param.
3609         (sparc_check_64): Likewise for second param.
3610         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
3611         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
3612         dyn_cast, using its insn method for typesafety and clarity.
3613         (empty_delay_slot): Strengthen param "insn" from rtx to
3614         rtx_insn *.
3615         (set_extends): Likewise.
3616         (sparc_check_64): Likewise.
3617         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
3618         for locals "seq", "last_insn".
3619         (combine_bnp): Likewise for param "insn".
3620         (xstormy16_reorg): Likewise for local "insn".
3621         * config/v850/v850.c (substitute_ep_register): Likewise for params
3622         "first_insn", "last_insn" and local "insn".
3623         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
3624         elements of "regs" array, and local "insn".
3625         * except.c (emit_note_eh_region_end): Likewise for param "insn".
3626         * final.c (final_sequence): Strengthen this global from rtx to
3627         rtx_sequence *.
3628         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
3629         rtx_insn *.
3630         (final_scan_insn): Update assignment to "final_sequence" to be
3631         from "seq", the cast version of "body", for type-safety.
3632         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
3633         "insns" from rtx to rtx_insn *.
3634         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
3635         * genattr.c (main): When writing out generated insn-attr.h,
3636         strengthen params 1 and 3 of eligible_for_delay,
3637         eligible_for_annul_true, eligible_for_annul_false from rtx to
3638         rtx_insn *.
3639         * genattrtab.c (write_eligible_delay): Likewise when writing out
3640         generated insn-attrtab.c; also local "insn" the generated
3641         functions.
3642         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
3643         to rtx_insn *.
3644         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
3645         "start_label" from rtx to rtx_insn *.
3646         * ira.c (decrease_live_ranges_number): Likewise for local "p".
3647         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
3648         "insns" and local "insn".
3649         (validate_equiv_mem): Likewise for param "start" and local "insn".
3650         (memref_used_between_p): Likewise for params "start", "end" and
3651         local "insn".
3652         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
3653         final param.
3654         * loop-doloop.c (doloop_optimize): Within region guarded by
3655         INSN_P (doloop_pat), introduce a new local rtx_insn *
3656         "doloop_insn" via a checked cast, and use it for typesafety,
3657         eventually writing the value back into doloop_pat.
3658         * output.h (final_sequence): Strengthen this global from rtx to
3659         rtx_sequence *.
3660         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
3661         reintroducing "insn" as an rtx_insn * via a checked cast.
3662         Strengthen param "attempt" and local "new_insn"from rtx to
3663         rtx_insn *.
3664         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
3665         to rtx_insn *.
3666         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
3667         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
3668         "p" in favor of more tightly-scoped replacements, sometimes rtx
3669         and sometimes rtx_insn *, as appropriate.
3670         (delete_output_reload): Eliminate top-level rtx "i1", splitting
3671         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
3672         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
3673         local "trial" from rtx to rtx_insn *.
3674         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
3675         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
3676         rtx_sequence * and use methods for clarity and typesafety.
3677         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
3678         rtx to rtx_insn *.  Strenghten local "li" from rtx to
3679         rtx_insn_list * and use its methods for clarity and typesafety.
3680         (steal_delay_list_from_target): Strengthen param "insn" from rtx
3681         to rtx_insn *.
3682         (steal_delay_list_from_fallthrough): Likewise.
3683         (try_merge_delay_insns): Likewise for param "thread" and locals
3684         "trial", "next_trial", "delay_insn".
3685         (redundant_insn): Likewise for param "target" and local "trial".
3686         (own_thread_p): Likewise for param "thread" and locals
3687         "active_insn", "insn".
3688         (get_label_before): Likewise for param "insn".
3689         (fill_simple_delay_slots): Likewise for local "new_label"; use
3690         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
3691         (label_before_next_insn): Strengthen return type and local "insn"
3692         from rtx to rtx_insn *.
3693         (relax_delay_slots): Likewise for locals "other", "tmp".
3694         (make_return_insns): Likewise for param "first" and locals "insn",
3695         "jump_insn", "prev".  Move declaration of "pat" to its assignment
3696         and strengthen from rtx to rtx_sequence *.  Use its methods for
3697         clarity and typesafety.
3698         * rtlanal.c (no_labels_between_p): Strengthen params from
3699         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
3700         rtx_insn *.
3701         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
3702         from const_rtx to const rtx_insn *.
3703         (reg_set_between_p): Rename param "from_insn" to
3704         "uncast_from_insn", and reintroduce "from_insn" as a
3705         const rtx_insn * via a checked cast.
3706         (modified_between_p): Likewise for param "start" as "uncast_start".
3707         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
3708         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
3709         "tmp", head" from rtx to rtx_insn *.
3710         (recompute_rev_top_order): Likewise for local "insn".
3711         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
3712         * store-motion.c (build_store_vectors): Likewise for local "insn".
3713         Strengthen local "st" from rtx to rtx_insn_list * and use methods
3714         for clarity and typesafety.
3715         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
3716         rtx to rtx_insn *.
3717         (computation_cost): Likewise for local "seq".
3718         (get_address_cost): Likewise.
3719
3720 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3721
3722         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
3723         const rtx_insn *.
3724         (label_is_jump_target_p): Likewise for second param.
3725
3726         * rtlanal.c (tablejump_p): Likewise for param "insn".
3727         (label_is_jump_target_p): Likewise for param "jump_insn".
3728
3729 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3730
3731         * rtl.h (find_first_parameter_load): Strengthen return type and
3732         both params from rtx to rtx_insn *.
3733         * rtlanal.c (find_first_parameter_load): Strengthen return type,
3734         both params and locals "before", "first_set" from rtx to
3735         rtx_insn *.  Remove now-redundant cast.
3736         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
3737
3738 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3739
3740         * rtl.h (find_last_value): Delete.
3741         * rtlanal.c (find_last_value): Delete.
3742
3743 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3744
3745         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
3746         from rtx to rtx_insn *.
3747         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
3748         rtx "note" with new local rtx_insn * "new_head" when calculating
3749         head insn of new basic block.
3750         * combine.c (combine_split_insns): Strengthen return type and local
3751         "ret" from rtx to rtx_insn *.
3752         (likely_spilled_retval_p): Likewise for locals "use" and "p".
3753         (try_combine): Eliminate local "m_split", splitting into new
3754         locals "m_split_insn" and "m_split_pat".
3755         (find_split_point): Strengthen local "seq" from rtx into
3756         rtx_insn *.
3757         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
3758         locals "label", "branch".
3759         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
3760         for local "insn".
3761         (define_expand "umulsi3_highpart"): Likewise for local "insn".
3762         * dse.c (note_add_store_info): Likewise for fields "first",
3763         "current".
3764         (note_add_store): Likewise for local "insn".
3765         (emit_inc_dec_insn_before): Likewise for locals "insn",
3766         "new_insn", "cur".
3767         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
3768         (replace_read): Likewise for locals "insns", "this_insn".
3769         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
3770         (notice_eh_throw): Likewise for param "insn".
3771         (before_next_cfi_note): Likewise for return type, param, and local
3772         "prev".
3773         (connect_traces): Likewise for local "note".
3774         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
3775         (verify_rtl_sharing): Likewise.
3776         (unshare_all_rtl_in_chain): Likewise for param "insn".
3777         (get_first_nonnote_insn): Likewise for local "insn".
3778         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
3779         "seq" and use its methods to clarify things.
3780         (next_insn): Strengthen return type from rtx to rtx_insn *.
3781         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
3782         local rtx_insn * using a checked cast, dropping a checked cast
3783         made redundant by this change.  Use a cast to and method of
3784         rtx_sequence to clarify the code.
3785         (previous_insn): Rename param "insn" to "uncast_insn" and
3786         reintroduce "insn" as a local rtx_insn * using a checked cast,
3787         dropping a checked cast made redundant by this change.  Use a cast
3788         to and method of rtx_sequence to clarify the code.
3789         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
3790         reintroduce "insn" as a local rtx_insn * using a checked cast,
3791         dropping a checked cast made redundant by this change.
3792         (next_nonnote_insn_bb): Likewise.
3793         (prev_nonnote_insn): Likewise.
3794         (prev_nonnote_insn_bb): Likewise.
3795         (next_nondebug_insn): Likewise.
3796         (prev_nondebug_insn): Likewise.
3797         (next_nonnote_nondebug_insn): Likewise.
3798         (prev_nonnote_nondebug_insn): Likewise.
3799         (next_real_insn): Likewise.
3800         (prev_real_insn): Likewise.
3801         (next_active_insn): Likewise.
3802         (prev_active_insn): Likewise.
3803         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
3804         clarity.
3805         (prev_cc0_setter): Likewise.
3806         (try_split): Rename param "trial" to "uncast_trial" and
3807         reintroduce "insn" as a local rtx_insn * using a checked cast,
3808         dropping checked casts made redundant by this change.
3809         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
3810         rtx to rtx_insn *.
3811         (remove_insn): Rename param "insn" to "uncast_insn" and
3812         reintroduce "insn" as a local rtx_insn * using a checked cast.
3813         (emit_pattern_after_setloc): Likewise for param "after", as
3814         "uncast_after".
3815         (emit_pattern_after): Likewise.  Strengthen local "prev" from
3816         rtx to rtx_insn *.
3817         (emit_pattern_before_setloc): Rename param "before" to
3818         "uncast_before" and reintroduce "before" as a local rtx_insn *
3819         using a checked cast.  Strengthen locals "first", "last" from
3820         rtx to rtx_insn *.
3821         (emit_pattern_before): Likewise rename/cast param "before" to
3822         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
3823         * except.c (copy_reg_eh_region_note_forward): Strengthen param
3824         "first" and local "insn" from rtx to rtx_insn *.
3825         (copy_reg_eh_region_note_backward): Likewise for param "last"
3826         and local "insn".
3827         * expr.c (fixup_args_size_notes): Rename param "last" to
3828         "uncast_last" and reintroduce "last" as a local rtx_insn *
3829         using a checked cast.  Strengthen local "insn" from rtx to
3830         rtx_insn *.
3831         * function.c (set_insn_locations): Strengthen param "insn" from
3832         rtx to rtx_insn *.
3833         (record_insns): Likewise for param "insns" and local "tmp".
3834         (active_insn_between): Rename param "tail" to
3835         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
3836         using a checked cast.
3837         (thread_prologue_and_epilogue_insns): Split out top-level local
3838         rtx "seq" into three different rtx_insn * locals.  Strengthen
3839         local "prologue_seq" from rtx to rtx_insn *.
3840         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
3841         from rtx to rtx_insn *.
3842         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
3843         (priority): Likewise for locals "prev_first", "twin".
3844         (setup_insn_max_reg_pressure): Likewise for param "after".
3845         (sched_setup_bb_reg_pressure_info): Likewise.
3846         (no_real_insns_p): Strengthen params from const_rtx to
3847         const rtx_insn *.
3848         (schedule_block): Strengthen local "next_tail" from rtx to
3849         rtx_insn *.
3850         * ifcvt.c (find_active_insn_before): Strengthen return type and
3851         param "insn" from rtx to rtx_insn *.
3852         (find_active_insn_after): Likewise.
3853         (cond_exec_process_insns): Likewise for param "start" and local "insn".
3854         (cond_exec_process_if_block): Likewise for locals "then_start",
3855         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
3856         (noce_process_if_block): Likewise for local "jump".
3857         (merge_if_block): Likewise for two locals named "end".
3858         (cond_exec_find_if_block): Likewise for local "last_insn".
3859         * jump.c (delete_related_insns): Rename param "insn" to
3860         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
3861         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
3862         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
3863         NULL.
3864         (split_reg): Likewise.
3865         * lra.c (lra_process_new_insns): Likewise.
3866         * modulo-sched.c (permute_partial_schedule): Strengthen param
3867         "last" from rtx to rtx_insn *.
3868         * optabs.c (add_equal_note): Likewise for param "insns" and local
3869         "last_insn".
3870         (expand_binop_directly): Add checked casts to rtx_insn * within
3871         NEXT_INSN (pat) uses.
3872         (expand_unop_direct): Likewise.
3873         (maybe_emit_unop_insn): Likewise.
3874         * recog.c (peep2_attempt): Strengthen locals "last",
3875         "before_try", "x" from rtx to rtx_insn *.
3876         * reorg.c (optimize_skip): Strengthen return type and local
3877         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
3878         and locals "trial", "next_trial" from rtx to rtx_insn *.
3879         * resource.c (next_insn_no_annul): Strengthen return type and
3880         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
3881         rtx_sequence to clarify the code.
3882         (mark_referenced_resources): Add a checked cast to rtx_insn *
3883         within PREV_INSN (x).
3884         (find_dead_or_set_registers): Strengthen return type, param
3885         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
3886         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
3887         to rtx_insn **.
3888         (mark_target_live_regs): Strengthen params "insns" and "target",
3889         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
3890         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
3891         the code.
3892         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
3893         from rtx to rtx_insn *.
3894         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
3895         from rtx to rtx_insn *.
3896         (copy_reg_eh_region_note_backward): Likewise.
3897         (unshare_all_rtl_in_chain): Likewise for sole param.
3898         (dump_rtl_slim): Strengthen second and third params from const_rtx
3899         to const rtx_insn *.
3900         * sched-deps.c (sched_free_deps): Strengthen params "head" and
3901         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
3902         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
3903         "next_tail" from rtx to rtx_insn *.
3904         (begin_move_insn): Likewise for local "next".
3905         * sched-int.h (sched_free_deps): Likewise for first and second
3906         params.
3907         (no_real_insns_p): Strengthen both params from const_rtx to
3908         const rtx_insn *.
3909         (sched_setup_bb_reg_pressure_info): Strengthen second params from
3910         rtx to rtx_insn *.
3911         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
3912         "next_tail".
3913         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
3914         and locals "insn", "tail" from const_rtx to const rtx_insn *.
3915         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
3916         rtx_insn *.
3917         (debug_rtl_slim): Strengthen params "first" and "last" from
3918         const_rtx to const rtx_insn *.
3919         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
3920         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
3921         (convert_to_simple_return): Likewise for param "returnjump".
3922         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
3923         "prologue_seq".
3924         (convert_to_simple_return): Likewise for param "returnjump".
3925         * valtrack.c (propagate_for_debug): Likewise for params
3926         "insn", "last".
3927         * valtrack.h (propagate_for_debug): Likewise for second param.
3928
3929 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3930
3931         * output.h (insn_current_reference_address): Strengthen param
3932         from rtx to rtx_insn *.
3933         * final.c (insn_current_reference_address): Likewise.
3934
3935 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3936
3937         * basic-block.h (inside_basic_block_p): Strengthen param from
3938         const_rtx to const rtx_insn *.
3939         * cfgbuild.c (inside_basic_block_p): Likewise.
3940
3941 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3942
3943         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
3944         rtx_insn *.
3945         (get_trace_info): Likewise for param "insn".
3946         (save_point_p): Likewise.
3947         (maybe_record_trace_start): Likewise for both params.
3948         (maybe_record_trace_start_abnormal): Likewise.
3949         (create_trace_edges): Likewise for sole param and for three of the
3950         locals named "lab".
3951         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
3952         to rtx_insn *, and update a call to pat->element to pat->insn.
3953
3954 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3955
3956         * function.h (struct expr_status): Convert field "x_forced_labels"
3957         from rtx_expr_list * to rtx_insn_list *.
3958
3959         * cfgbuild.c (make_edges): Convert local "x" from an
3960         rtx_expr_list * to an rtx_insn_list *, replacing use of
3961         "element" method with "insn" method.
3962         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
3963         * except.c (sjlj_emit_dispatch_table): Replace use of
3964         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
3965         forced_labels.
3966         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
3967         rtx_expr_list * to an rtx_insn_list *, replacing use of
3968         "element" method with "insn" method.
3969         * reload1.c (set_initial_label_offsets): Likewise for local "x".
3970         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
3971         rtx_insn *, adding a checked cast.  Replace use of
3972         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
3973         forced_labels.
3974         (expand_label): Likewise for local "label_r".
3975
3976 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3977
3978         * function.h (struct rtl_data): Convert field
3979         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
3980         rtx_insn_list *.
3981         * rtl.h (remove_node_from_insn_list): New prototype.
3982
3983         * builtins.c (expand_builtin): When prepending to
3984         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
3985         gen_rtx_EXPR_LIST.
3986         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
3987         to rtx_insn_list *, and use its "insn" method rather than
3988         "element" method.
3989         * cfgrtl.c (delete_insn): Use new function
3990         remove_node_from_insn_list rather than
3991         remove_node_from_expr_list.
3992         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
3993         to rtx_insn_list *, and use its "insn" method rather than
3994         "element" method.
3995         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
3996         * reload1.c (set_initial_label_offsets): Likewise for local "x".
3997         * rtlanal.c (remove_node_from_insn_list): New function, adapted
3998         from remove_node_from_expr_list.
3999         * stmt.c (expand_label): When prepending to
4000         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
4001         gen_rtx_EXPR_LIST.
4002
4003 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4004
4005         * function.h (struct rtl_data): Strengthen fields "x_return_label"
4006         and "x_naked_return_label" from rtx to rtx_code_label *.
4007
4008 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4009
4010         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
4011         (SET_NEXT_INSN): Likewise.
4012         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
4013
4014         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
4015         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
4016         to split out the SEQUENCE from local "bundle", strengthening the
4017         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
4018         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
4019         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
4020         and the type of the elements of the "slot" array from rtx to
4021         rtx_insn *.
4022         (reorg_split_calls): Likewise for locals "insn" and "next", and
4023         the type of the elements of the "slot" array.
4024
4025         * config/frv/frv.c (frv_nops): Likewise for the elements of this
4026         array.
4027         (frv_function_prologue): Likewise for locals "insn", "next",
4028         "last_call".
4029         (frv_register_nop): Introduce a local "nop_insn" to be the
4030         rtx_insn * containing rtx "nop".
4031
4032         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
4033         used as an insn and sometimes as a pattern, so rename it to
4034         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
4035         using it where dealing with the core insn.
4036
4037         * config/picochip/picochip.c (reorder_var_tracking_notes):
4038         Strengthen locals "insn", "next", "last_insn", "queue",
4039         "next_queue", "prev" from rtx to rtx_insn *.
4040
4041         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
4042         the second param is an rtx_insn ** rather than an rtx **.
4043         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
4044         from rtx to rtx_sequence *, and introduce local named "sequence",
4045         using methods of rtx_sequence to clarify the code.
4046         (remove_insn): Introduce local rtx_sequence * named "sequence" and
4047         use its methods.
4048         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
4049         Rename param "after" to "uncast_after", reintroducing "after" as a
4050         local rtx_insn * with a checked cast.
4051         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
4052         reintroducing "after" as a local rtx_insn * with a checked cast.
4053         Strengthen local "last" from rtx to rtx_insn * and remove the
4054         now-redundant checked casts.
4055         (copy_delay_slot_insn): Strengthen return type and param from rtx
4056         to rtx_insn *.
4057
4058         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
4059         "last" from rtx to rtx_insn *.
4060
4061 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4062
4063         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
4064         param from rtx to rtx_insn *.
4065
4066         * emit-rtl.c (copy_delay_slot_insn): Likewise.
4067
4068         * reorg.c (skip_consecutive_labels): Strengthen return type, param
4069         and local "insn" from rtx to rtx_insn *.
4070         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
4071         (unfilled_slots_next): Likewise.
4072         (function_return_label): Strengthen from rtx to rtx_code_label *.
4073         (function_simple_return_label): Likewise.
4074         (first_active_target_insn): Strengthen return type and param from
4075         rtx to rtx_insn *.
4076         (find_end_label): Strengthen return type from rtx to
4077         rtx_code_label *; strengthen locals as appropriate.
4078         (emit_delay_sequence): Strengthen return type, param "insn" and
4079         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
4080         and local "li" from rtx to rtx_insn_list *, using methods of
4081         rtx_insn_list for clarity and typesafety.
4082         (add_to_delay_list): Strengthen return type and param "insn" from
4083         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
4084         rtx_insn_list * and use methods of rtx_insn_list.
4085         (delete_from_delay_slot): Strengthen return type, param "insn",
4086         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
4087         Strengthen local "seq" from rtx to rtx_sequence *, and local
4088         "delay_list" from rtx to rtx_insn_list *, using methods of
4089         rtx_sequence for clarity and type-safety.
4090         (delete_scheduled_jump): Add checked cast when invoking
4091         delete_from_delay_slot.  Strengthen local "trial" from rtx to
4092         rtx_insn *.
4093         (optimize_skip): Strengthen return type and local "delay_list"
4094         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
4095         rtx_insn *.
4096         (steal_delay_list_from_target): Strengthen return type, param
4097         "delay_list" and local "new_delay_list" from rtx to
4098         rtx_insn_list *.  Strengthen param "seq" from rtx to
4099         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
4100         rtx_insn **.
4101         Split out local "temp" into multiple more-tightly scoped locals:
4102         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
4103         of rtx_insn_list and rtx_sequence for clarity and typesafety.
4104         Strengthen locals named "trial" from rtx to rtx_insn *.
4105         (steal_delay_list_from_fallthrough): Strengthen return type and
4106         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
4107         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
4108         Strengthen local "trial" from rtx to rtx_insn *.
4109         (try_merge_delay_insns): Strength local "merged_insns" from rtx
4110         to rtx_insn_list * and use its methods.  Strengthen local "pat"
4111         from rtx to rtx_sequence * and use its methods.  Strengthen locals
4112         "dtrial" and "new_rtx" from rtx to rtx_insn *.
4113         (get_label_before): Strengthen return type and local "label" from
4114         rtx to rtx_insn *.
4115         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
4116         "next_trial", "next", prev".  Strengthen local "delay_list" from
4117         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
4118         rtx_insn **.
4119         (follow_jumps): Strengthen return type, param "label" and locals
4120         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
4121         (fill_slots_from_thread): Strengthen return type, param
4122         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
4123         "insn", "thread", "opposite_thread" and locals "new_thread",
4124         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
4125         "sequence" from a checked cast to rtx_sequence so that we can call
4126         steal_delay_list_from_target and steal_delay_list_from_fallthrough
4127         with an rtx_sequence *.
4128         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
4129         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
4130         Strengthen local "delay_list" from rtx to rtx_insn_list *.
4131         (relax_delay_slots): Strengthen param "first" and locals "insn",
4132         "next", "trial", "delay_insn", "target_label" from rtx to
4133         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
4134         Introduce a local "trial_seq" for PATTERN (trial) of type
4135         rtx_sequence *, in both cases using methods of rtx_sequence.
4136         (dbr_schedule): Strengthen param "first" and locals "insn",
4137         "next", "epilogue_insn" from rtx to rtx_insn *.
4138
4139 2014-08-28  Richard Biener  <rguenther@suse.de>
4140
4141         PR tree-optimization/62283
4142         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4143         Do not peel loops for alignment where the vector loop likely
4144         doesn't run at least VF times.
4145
4146 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
4147
4148         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
4149         important_candidates.  Consider all important candidates if
4150         IVS doesn't give any result.  Remove check on ivs->upto.
4151         (try_add_cand_for): Call iv_ca_add_use only once.
4152
4153 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4154             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4155             Anna Tikhonova  <anna.tikhonova@intel.com>
4156             Ilya Tocar  <ilya.tocar@intel.com>
4157             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4158             Ilya Verbin  <ilya.verbin@intel.com>
4159             Kirill Yukhin  <kirill.yukhin@intel.com>
4160             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4161
4162         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
4163         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
4164         masking.
4165         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
4166         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
4167         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
4168         (define_insn "*mul<mode>3"): Add EVEX version.
4169
4170 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4171             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4172             Anna Tikhonova  <anna.tikhonova@intel.com>
4173             Ilya Tocar  <ilya.tocar@intel.com>
4174             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4175             Ilya Verbin  <ilya.verbin@intel.com>
4176             Kirill Yukhin  <kirill.yukhin@intel.com>
4177             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4178
4179         * config/i386/sse.md
4180         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
4181         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
4182         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
4183         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
4184         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
4185         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
4186         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
4187         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
4188         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
4189         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
4190         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
4191         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
4192         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
4193         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
4194         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
4195         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
4196
4197 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4198             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4199             Anna Tikhonova  <anna.tikhonova@intel.com>
4200             Ilya Tocar  <ilya.tocar@intel.com>
4201             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4202             Ilya Verbin  <ilya.verbin@intel.com>
4203             Kirill Yukhin  <kirill.yukhin@intel.com>
4204             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4205
4206         * config/i386/sse.md
4207         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
4208         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
4209         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
4210
4211 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4212             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4213             Anna Tikhonova  <anna.tikhonova@intel.com>
4214             Ilya Tocar  <ilya.tocar@intel.com>
4215             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4216             Ilya Verbin  <ilya.verbin@intel.com>
4217             Kirill Yukhin  <kirill.yukhin@intel.com>
4218             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4219
4220         * config/i386/sse.md
4221         (define_mode_iterator VI128_256): New.
4222         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
4223
4224 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4225             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4226             Anna Tikhonova  <anna.tikhonova@intel.com>
4227             Ilya Tocar  <ilya.tocar@intel.com>
4228             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4229             Ilya Verbin  <ilya.verbin@intel.com>
4230             Kirill Yukhin  <kirill.yukhin@intel.com>
4231             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4232
4233         * config/i386/sse.md
4234         (define_mode_iterator VI8_256_512): New.
4235         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
4236         Ditto.
4237         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
4238         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
4239         Ditto.
4240         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
4241
4242 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4243
4244         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
4245         pointer to the cumulative reloc value and return the value for
4246         this reloc instead.
4247         (compute_reloc_for_rtx): Take a const_rtx.  Call
4248         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
4249         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
4250         for_each_rtx for the CONST case.
4251
4252 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4253
4254         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
4255         (mark_constants_in_pattern): ...this new function to iterate over
4256         all the subrtxes.
4257         (mark_constants): Update accordingly.
4258
4259 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4260
4261         * varasm.c: Include rtl-iter.h.
4262         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
4263         Remove the pointer to the cumulative hashval_t and just return
4264         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
4265         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4266         Accumulate the hashval_ts here instead of const_rtx_hash_1.
4267
4268 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4269
4270         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
4271         Give real type of data parameter.  Remove return value.
4272         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
4273         to iterate over subrtxes.
4274
4275 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4276
4277         * var-tracking.c (use_narrower_mode_test): Turn from being a
4278         for_each_rtx callback to being a function that examines each
4279         subrtx itself.
4280         (adjust_mems): Update accordingly.
4281
4282 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4283
4284         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
4285         callback to being a function that examines each subrtx itself.
4286         Remove handling of null rtxes.
4287         (add_uses): Update accordingly.
4288
4289 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4290
4291         * var-tracking.c: Include rtl-iter.h.
4292         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
4293         to being a function that examines each subrtx itself.
4294         (use_type): Update accordingly.
4295
4296 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4297
4298         * store-motion.c: Include rtl-iter.h.
4299         (extract_mentioned_regs_1): Delete.
4300         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
4301         for_each_rtx to iterate over subrtxes.
4302
4303 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4304
4305         * sel-sched.c: Include rtl-iter.h
4306         (count_occurrences_1): Delete.
4307         (count_occurrences_equiv): Turn rtxes into const_rtxes.
4308         Use FOR_EACH_SUBRTX rather than for_each_rtx.
4309
4310 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4311
4312         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
4313         * rtlanal.c (tls_referenced_p_1): Delete.
4314         (tls_referenced_p): Take a const_rtx rather than an rtx.
4315         Use FOR_EACH_SUBRTX rather than for_each_rtx.
4316
4317 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4318
4319         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
4320         (for_each_inc_dec): Take an rtx rather than an rtx *.
4321         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
4322         (cselib_record_sets): Likewise.
4323         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
4324         (check_for_inc_dec): Likewise.
4325         * rtlanal.c (for_each_inc_dec_ops): Delete.
4326         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
4327         rather than a pointer to the memory address.  Replace
4328         for_each_inc_dec_ops argument with separate function and data
4329         arguments.  Abort on non-autoinc addresses.
4330         (for_each_inc_dec_find_mem): Delete.
4331         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
4332         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
4333
4334 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4335
4336         * rtl.h (find_all_hard_regs): Declare.
4337         * rtlanal.c (find_all_hard_regs): New function.
4338         (record_hard_reg_uses_1): Delete.
4339         (record_hard_reg_uses): Use find_all_hard_regs.
4340
4341 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4342
4343         * rtl.h (replace_label_data): Delete.
4344         (replace_label): Take the old label, new label and update-nuses flag
4345         as direct arguments.  Return void.
4346         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
4347         * rtlanal.c (replace_label): Update interface as above.  Handle
4348         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
4349         iterator.  Use FOR_EACH_SUBRTX_PTR.
4350
4351 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4352
4353         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
4354         with const_rtx parameters.
4355         * varasm.c (get_pool_constant): Likewise.
4356         * rtlanal.c (rtx_referenced_p_1): Delete.
4357         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4358         Assert that the rtx we're looking for is nonnull.  Allow searches
4359         for constant pool SYMBOL_REFs.
4360
4361 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4362
4363         * reload1.c: Include rtl-iter.h.
4364         (note_reg_elim_costly): Turn from being a for_each_rtx callback
4365         to being a function that examines each subrtx itself.
4366         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
4367
4368 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4369
4370         * regcprop.c (cprop_find_used_regs_1): Delete.
4371         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4372
4373 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4374
4375         * regcprop.c: Include rtl-iter.h.
4376         (kill_value): Take a const_rtx.
4377         (kill_autoinc_value): Turn from being a for_each_rtx callback
4378         to being a function that examines each subrtx itself.
4379         (copyprop_hardreg_forward_1): Update accordingly.
4380
4381 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4382
4383         * reg-stack.c: Include rtl-iter.h.
4384         (subst_stack_regs_in_debug_insn): Delete.
4385         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
4386         instead of for_each_rtx.
4387
4388 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4389
4390         * lower-subreg.c (find_decomposable_subregs): Turn from being
4391         a for_each_rtx callback to being a function that examines each
4392         subrtx itself.  Remove handling of null rtxes.
4393         (decompose_multiword_subregs): Update accordingly.
4394
4395 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4396
4397         * lower-subreg.c (adjust_decomposed_uses): Delete.
4398         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
4399         Remove handling of null rtxes.
4400
4401 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4402
4403         * lower-subreg.c: Include rtl-iter.h.
4404         (resolve_subreg_use): Turn from being a for_each_rtx callback
4405         to being a function that examines each subrtx itself.  Remove
4406         handling of null rtxes.
4407         (resolve_reg_notes, resolve_simple_move): Update accordingly.
4408         (decompose_multiword_subregs): Likewise.
4409
4410 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4411
4412         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
4413         to being a function that examines each subrtx itself.
4414         (simplify_using_condition, simplify_using_initial_values): Update
4415         accordingly.
4416
4417 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4418
4419         * loop-iv.c: Include rtl-iter.h.
4420         (find_single_def_src): New function.
4421         (replace_single_def_regs): Turn from being a for_each_rtx callback
4422         to being a function that examines each subrtx itself.
4423         (replace_in_expr, simplify_using_initial_values): Update accordingly.
4424
4425 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4426
4427         * jump.c (eh_returnjump_p_1): Delete.
4428         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
4429         Remove handling of null rtxes.
4430
4431 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4432
4433         * jump.c: Include rtl-iter.h.
4434         (returnjump_p_1): Delete.
4435         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
4436         Remove handling of null rtxes.
4437
4438 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4439
4440         * ira.c: Include rtl-iter.h.
4441         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
4442         to being a function that examines each subrtx itself.  Remove
4443         handling of null rtxes.
4444         (update_equiv_regs): Update call accordingly.
4445
4446 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4447
4448         * fwprop.c: Include rtl-iter.h.
4449         (varying_mem_p): Turn from being a for_each_rtx callback to being
4450         a function that examines each subrtx itself.
4451         (propagate_rtx): Update accordingly.
4452
4453 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4454
4455         * function.c: Include rtl-iter.h
4456         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
4457         callback to being a function that examines each subrtx itself.
4458         Return the changed flag.
4459         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
4460         (instantiate_virtual_regs): Update calls accordingly.
4461
4462 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4463
4464         * final.c: Include rtl-iter.h.
4465         (mark_symbol_ref_as_used): Delete.
4466         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
4467         for_each_rtx.
4468
4469 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4470
4471         * emit-rtl.c: Include rtl-iter.h.
4472         (find_auto_inc): Turn from being a for_each_rtx callback to being
4473         a function that examines each subrtx itself.  Assume the first operand
4474         to an RTX_AUTOINC is the automodified register.
4475         (try_split): Update call accordingly.
4476
4477 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4478
4479         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
4480         Return a bool, inverting the result so that 0/false means "not ok".
4481         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
4482         subrtxes of a CONST.
4483         (mem_loc_descriptor, add_const_value_attribute)
4484         (resolve_addr_in_expr): Update calls accordingly.
4485
4486 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4487
4488         * dwarf2out.c: Include rtl-iter.h.
4489         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
4490         Remove unused data parameter.  Return a bool, inverting the result
4491         so that 0/false means "not ok".
4492         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
4493         instead of for_each_rtx.
4494
4495 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4496
4497         * dse.c: Include rtl-iter.h.
4498         (check_mem_read_rtx): Change void * parameter to real type.
4499         Remove return value.
4500         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
4501         for_each_rtx.  Don't handle null rtxes.
4502
4503 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4504
4505         * df-problems.c: Include rtl-iter.h.
4506         (find_memory): Turn from being a for_each_rtx callback to being
4507         a function that examines each subrtx itself.  Continue to look for
4508         volatile references even after a nonvolatile one has been found.
4509         (can_move_insns_across): Update calls accordingly.
4510
4511 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4512
4513         * ddg.c (walk_mems_2, walk_mems_1): Delete.
4514         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
4515         to iterate over subrtxes.  Return a bool rather than an int.
4516
4517 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4518
4519         * ddg.c: Include rtl-iter.h.
4520         (mark_mem_use_1): Rename to...
4521         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
4522         instead of for_each_rtx.
4523         (mem_read_insn_p): Update accordingly.
4524
4525 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4526
4527         * cse.c (change_cc_mode_args): Delete.
4528         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
4529         a function that examines each subrtx itself.  Take the fields of
4530         change_cc_mode_args as argument and return void.
4531         (cse_change_cc_mode_insn): Update calls accordingly.
4532
4533 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4534
4535         * cse.c (is_dead_reg): Change argument to const_rtx.
4536         (dead_debug_insn_data): Delete.
4537         (is_dead_debug_insn): Expand commentary.  Turn from being a
4538         for_each_rtx callback to being a function that examines
4539         each subrtx itself.  Take the fields of dead_debug_insn_data
4540         as argument.
4541         (delete_trivially_dead_insns): Update call accordingly.
4542
4543 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4544
4545         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
4546         being a for_each_rtx callback to being a function that examines
4547         each subrtx itself.
4548         (cse_extended_basic_block): Update call accordingly.
4549
4550 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4551
4552         * cse.c (check_dependence_data): Delete.
4553         (check_dependence): Change from being a for_each_rtx callback to being
4554         a function that examines all subrtxes itself.  Don't handle null rtxes.
4555         (invalidate): Update call accordingly.
4556
4557 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4558
4559         * cse.c: Include rtl-iter.h.
4560         (approx_reg_cost_1): Delete.
4561         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4562         Don't handle null rtxes.
4563
4564 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4565
4566         * cfgcleanup.c: Include rtl-iter.h.
4567         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
4568         to being a function that examines each subrtx itself.
4569         (thread_jump): Update accordingly.
4570
4571 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4572
4573         * combine-stack-adj.c: Include rtl-iter.h.
4574         (record_stack_refs_data): Delete.
4575         (record_stack_refs): Turn from being a for_each_rtx callback
4576         to being a function that examines each subrtx itself.
4577         Take a pointer to the reflist.  Invert sense of return value
4578         so that true means success and false means failure.  Don't
4579         handle null rtxes.
4580         (combine_stack_adjustments_for_block): Update accordingly.
4581
4582 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4583
4584         * combine.c (record_truncated_value): Turn from being a for_each_rtx
4585         callback to a function that takes an rtx and returns a bool
4586         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
4587         for_each_rtx.
4588
4589 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4590
4591         * combine.c: Include rtl-iter.h.
4592         (unmentioned_reg_p_1): Delete.
4593         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
4594         Don't handle null rtxes.
4595
4596 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4597
4598         * calls.c: Include rtl-iter.h.
4599         (internal_arg_pointer_based_exp_1): Delete.
4600         (internal_arg_pointer_based_exp): Take a const_rtx.
4601         Use FOR_EACH_SUBRTX to iterate over subrtxes.
4602
4603 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4604
4605         * caller-save.c: Include rtl-iter.h.
4606         (add_used_regs_1): Delete.
4607         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
4608         to iterate over subrtxes.  Assert that any remaining pseudos
4609         have been spilled.
4610
4611 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4612
4613         * bt-load.c: Include rtl-iter.h.
4614         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
4615         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
4616         to iterate over subrtxes.
4617         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
4618         find_btr_use rather than btr_referenced_p.
4619
4620 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4621
4622         * alias.c: Include rtl-iter.h.
4623         (refs_newer_value_cb): Delete.
4624         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4625
4626 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4627
4628         * rtl-iter.h: New file.
4629         * rtlanal.c: Include it.
4630         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
4631         (generic_subrtx_iterator <T>::add_single_to_queue)
4632         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
4633         (generic_subrtx_iterator <T>::free_array): New functions.
4634         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
4635         (generic_subrtx_iterator <const_rtx_accessor>)
4636         (generic_subrtx_iterator <rtx_var_accessor>
4637         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
4638         (setup_reg_subrtx_bounds): New function.
4639         (init_rtlanal): Call it.
4640
4641 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
4642
4643         PR target/62261
4644         * config/sh/sh.md (ashlsi3): Handle negative shift count for
4645         TARGET_SHMEDIA.
4646         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
4647
4648 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
4649
4650         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
4651
4652 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4653
4654         * rtl.h (JUMP_LABEL_AS_INSN): New.
4655
4656 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4657
4658         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
4659         rtx_expr_list **.
4660         (alloc_EXPR_LIST): Strengthen return type from rtx to
4661         rtx_expr_list *.
4662         (remove_free_EXPR_LIST_node): Likewise for param.
4663         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
4664         from rtx to rtx_expr_list *.
4665         * sched-int.h (struct deps_desc): Strengthen fields
4666         "pending_read_mems" and "pending_write_mems" from rtx to
4667         rtx_expr_list *.
4668
4669         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
4670         rtx to rtx_expr_list *.
4671         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
4672         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
4673         rtx_expr_list **.
4674         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
4675         from rtx to rtx_expr_list *.
4676         * loop-iv.c (simplify_using_initial_values): Strengthen local
4677         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
4678         "pnote_next" from rtx * to rtx_expr_list **.
4679         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
4680         param "exprp" from rtx * to rtx_expr_list **.
4681         (add_insn_mem_dependence): Strengthen local "mem_list" from
4682         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
4683         to rtx_expr_list *.
4684         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
4685         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
4686         param "old_mems_p" from rtx * to rtx_expr_list **.
4687         * var-tracking.c (struct adjust_mem_data): Strengthen field
4688         "side_effects" from rtx to rtx_expr_list *.
4689         (adjust_insn): Replace NULL_RTX with NULL when assigning to
4690         rtx_expr_list *.
4691         (prepare_call_arguments): Likewise.
4692
4693 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4694
4695         * function.h (struct rtl_data): Strengthen field
4696         "x_stack_slot_list" from rtx to rtx_expr_list *.
4697
4698         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
4699         when assigning to stack_slot_list.
4700
4701 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4702
4703         * function.h (struct rtl_data): Strengthen field
4704         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
4705         * rtl.h (remove_node_from_expr_list): Strengthen second param from
4706         rtx * to rtx_expr_list **.
4707
4708         * cfgbuild.c (make_edges): In loop over
4709         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
4710         rtx_expr_list *, and use methods of the latter class to clarify
4711         the code.
4712         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
4713         rtx_expr_list *, and use methods of the latter class to clarify
4714         the code.
4715         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
4716         * reload1.c (set_initial_label_offsets): Likewise for local "x".
4717         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
4718         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
4719         to rtx_expr_list *.  Use methods of the latter class to clarify
4720         the code.
4721
4722 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4723
4724         * function.h (struct expr_status): Strengthen field
4725         "x_forced_labels" from rtx to rtx_expr_list *.
4726
4727         * cfgbuild.c (make_edges): Split local "x" into two locals,
4728         strengthening one from rtx to rtx_expr_list *, and using methods
4729         of said class.
4730         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
4731         loop over forced_labels, introduce strengthen it from rtx to
4732         rtx_expr_list *, using methods to clarify the code.
4733         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
4734         to rtx_expr_list *, using methods of said class to clarify the
4735         code.
4736         * reload1.c (set_initial_label_offsets): Split local "x" into two
4737         per-loop variables, strengthening the first from rtx to
4738         rtx_expr_list * and using methods.
4739
4740 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4741
4742         * coretypes.h (class rtx_expr_list): Add forward declaration.
4743         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
4744         * gengenrtl.c (special_rtx): Add EXPR_LIST.
4745         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
4746         invariant: GET_CODE (X) == EXPR_LIST.
4747         (is_a_helper <rtx_expr_list *>::test): New.
4748         (rtx_expr_list::next): New.
4749         (rtx_expr_list::element): New.
4750         (gen_rtx_EXPR_LIST): New.
4751
4752 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4753
4754         * varasm.c (mark_constants): Convert a GET_CODE check into a
4755         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
4756         Use methods of rtx_sequence to clarify the code.
4757
4758 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4759
4760         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
4761         local "seq" via a checked cast, and use methods of rtx_sequence
4762         to simplify the code.
4763
4764 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4765
4766         * resource.c (mark_referenced_resources): Strengthen local
4767         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
4768         using methods of rtx_sequence to clarify the code.
4769         (find_dead_or_set_registers): Within the switch statement, convert
4770         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
4771         the JUMP_P handling, introduce another local "seq", adding a
4772         checked cast to rtx_sequence *.  In both cases, use methods of
4773         rtx_sequence to clarify the code.
4774         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
4775         via a checked cast, and use methods of rtx_sequence to simplify
4776         the code.
4777
4778 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4779
4780         * reorg.c (redundant_insn): In two places in the function, replace
4781         a check of GET_CODE with a dyn_cast, introducing local "seq", and
4782         usings methods of rtx_sequence to clarify the code.
4783
4784 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4785
4786         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
4787         local "seq" with a checked cast, and use methods of rtx_sequence
4788         to clarify the code.
4789
4790 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4791
4792         * function.c (contains): Introduce local "seq" for PATTERN (insn),
4793         with a checked cast, in the region for where we know it's a
4794         SEQUENCE.  Use methods of rtx_sequence.
4795
4796 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4797
4798         * final.c (get_attr_length_1): Replace GET_CODE check with a
4799         dyn_cast, introducing local "seq" and the use of methods of
4800         rtx_sequence.
4801         (shorten_branches): Likewise, introducing local "body_seq".
4802         Strengthen local "inner_insn" from rtx to rtx_insn *.
4803         (reemit_insn_block_notes): Replace GET_CODE check with a
4804         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
4805         Use methods of rtx_sequence.
4806         (final_scan_insn): Likewise, introducing local "seq" for when
4807         "body" is known to be a SEQUENCE, using its methods.
4808
4809 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4810
4811         * except.c (can_throw_external): Strengthen local "seq" from rtx
4812         to rtx_sequence *.  Use methods of rtx_sequence.
4813         (insn_nothrow_p): Likewise.
4814
4815 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4816
4817         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
4818         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
4819         Use methods of rtx_sequence.
4820         (scan_trace): Likewise for local "pat".
4821
4822 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4823
4824         * coretypes.h (class rtx_sequence): Add forward declaration.
4825         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
4826         invariant: GET_CODE (X) == SEQUENCE.
4827         (is_a_helper <rtx_sequence *>::test): New.
4828         (is_a_helper <const rtx_sequence *>::test): New.
4829         (rtx_sequence::len): New.
4830         (rtx_sequence::element): New.
4831         (rtx_sequence::insn): New.
4832
4833 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4834
4835         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
4836         rtx_insn_list **.
4837         (alloc_INSN_LIST): Strengthen return type from rtx to
4838         rtx_insn_list *.
4839         (copy_INSN_LIST): Likewise for return type and param.
4840         (concat_INSN_LIST): Likewise for both params and return type.
4841         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
4842         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
4843         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
4844         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
4845
4846         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
4847         "implicit_sets", "control_uses", "clobbers" from rtx to
4848         rtx_insn_list *.
4849         (struct deps_desc): Likewise for fields "pending_read_insns",
4850         "pending_write_insns", "pending_jump_insns",
4851         "last_pending_memory_flush", "last_function_call",
4852         "last_function_call_may_noreturn", "sched_before_next_call",
4853         "sched_before_next_jump".
4854         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
4855         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
4856
4857         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
4858         from rtx to rtx_insn_list *.
4859         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
4860         rtx_insn_list *.
4861
4862         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
4863         to rtx_insn_list **.
4864         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
4865         rtx_insn_list *.
4866         (queue_insn): Likewise for local "link".
4867         (struct haifa_saved_data): Strengthen field "insn_queue" from
4868         rtx * to rtx_insn_list **.
4869         (save_backtrack_point): Update allocation of save->insn_queue to
4870         reflect the strengthening of elements from rtx to rtx_insn_list *.
4871         (queue_to_ready): Strengthen local "link" from rtx to
4872         rtx_insn_list *; use methods "next" and "insn" when traversing the
4873         list.
4874         (early_queue_to_ready): Likewise for locals "link", "next_link",
4875         "prev_link".
4876         (schedule_block): Update allocation of insn_queue to reflect the
4877         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
4878         local "link" from rtx to rtx_insn_list *, and use methods when
4879         working it.
4880         (add_to_speculative_block): Strengthen locals "twins" and
4881         "next_node" from rtx to rtx_insn_list *, and use methods when
4882         working with them.  Strengthen local "twin" from rtx to
4883         rtx_insn *, eliminating a checked cast.
4884         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
4885         from rtx to rtx_insn_list *, and use methods when working with
4886         them.
4887
4888         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
4889         from rtx to rtx_insn_list *, adding a checked cast.
4890         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
4891         rtx_insn_list **.
4892         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
4893         "newlink" from rtx to rtx_insn_list *.  Strengthen local
4894         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
4895         from rtx to rtx_insn *.
4896         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
4897         from rtx to rtx_insn_list *.  Use methods of the latter class.
4898         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
4899         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
4900         (remove_free_INSN_LIST_node): Strengthen return type and local
4901         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
4902         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
4903         rtx_insn_list *, using "insn" method.
4904
4905         * sched-deps.c (add_dependence_list):  Strengthen param "list"
4906         from rtx to rtx_insn_list *, and use methods when working with it.
4907         (add_dependence_list_and_free):  Strengthen param "listp" from
4908         rtx * to rtx_insn_list **.
4909         (remove_from_dependence_list): Strenghten param "listp" from rtx *
4910         to rtx_insn_list **, and use methods when working with *listp.
4911         (remove_from_both_dependence_lists): Strengthen param "listp" from
4912         rtx * to rtx_insn_list **
4913         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
4914         to rtx_insn_list **.  Eliminate local "link", in favor of two new
4915         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
4916         respectively.
4917         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
4918         by introducing local "cond_deps".
4919         (remove_from_deps): Strengthen param "insn" from rtx to
4920         rtx_insn *.
4921
4922         * sched-rgn.c (concat_insn_mem_list): Strengthen param
4923         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
4924         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
4925         Use methods of rtx_insn_list.
4926
4927         * store-motion.c (struct st_expr): Strengthen fields
4928         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
4929         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
4930         rtx_insn_list *.
4931         (find_moveable_store): Split out "tmp" into multiple more-tightly
4932         scoped locals.  Use methods of rtx_insn_list *.
4933         (compute_store_table): Strengthen local "tmp" from rtx to
4934         rtx_insn *.  Use methods of rtx_insn_list *.
4935
4936 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4937
4938         * coretypes.h (class rtx_insn_list): Add forward declaration.
4939         * rtl.h (class rtx_insn_list): New subclass of rtx_def
4940         (is_a_helper <rtx_insn_list *>::test): New.
4941         (rtx_insn_list::next): New.
4942         (rtx_insn_list::insn): New.
4943         (gen_rtx_INSN_LIST): Add prototype.
4944         * emit-rtl.c (gen_rtx_INSN_LIST): New.
4945         * gengenrtl.c (special_rtx): Add INSN_LIST.
4946
4947 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4948
4949         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
4950         "prev" from rtx to rtx_insn *.
4951
4952 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4953
4954         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
4955         functions.  Require merely an rtx for now, not an rtx_insn *.
4956         (BLOCK_FOR_INSN): Likewise.
4957         (INSN_LOCATION): Likewise.
4958         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
4959
4960 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4961
4962         * rtl.h (PATTERN): Convert this macro into a pair of inline
4963         functions, for now, requiring const_rtx and rtx.
4964
4965 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4966
4967         * target.def (unwind_emit): Strengthen param "insn" from rtx to
4968         rtx_insn *.
4969         (final_postscan_insn): Likewise.
4970         (adjust_cost): Likewise.
4971         (adjust_priority): Likewise.
4972         (variable_issue): Likewise.
4973         (macro_fusion_pair_p): Likewise.
4974         (dfa_post_cycle_insn): Likewise.
4975         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
4976         (first_cycle_multipass_issue): Likewise.
4977         (dfa_new_cycle): Likewise.
4978         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
4979         (speculate_insn): Likewise for param "insn".
4980         (gen_spec_check): Likewise for params "insn" and "label".
4981         (get_insn_spec_ds): Likewise for param "insn".
4982         (get_insn_checked_ds): Likewise.
4983         (dispatch_do): Likewise.
4984         (dispatch): Likewise.
4985         (cannot_copy_insn_p): Likewise.
4986         (invalid_within_doloop): Likewise.
4987         (legitimate_combined_insn): Likewise.
4988         (needed): Likewise.
4989         (after): Likewise.
4990
4991         * doc/tm.texi: Automatically updated to reflect changes to
4992         target.def.
4993
4994         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
4995         working with insn.
4996         (schedule_block): Likewise.
4997         (sched_init): Likewise.
4998         (sched_speculate_insn): Strengthen param "insn" from rtx to
4999         rtx_insn *.
5000         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
5001         working with insn.
5002         * hooks.c (hook_bool_rtx_true): Rename to...
5003         hook_bool_rtx_insn_true): ...this, and strengthen first param from
5004         rtx to rtx_insn *.
5005         (hook_constcharptr_const_rtx_null): Rename to...
5006         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
5007         first param from const_rtx to const rtx_insn *.
5008         (hook_bool_rtx_int_false): Rename to...
5009         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
5010         param from rtx to rtx_insn *.
5011         (hook_void_rtx_int): Rename to...
5012         (hook_void_rtx_insn_int): ...this, and strengthen first param from
5013         rtx to rtx_insn *.
5014
5015         * hooks.h (hook_bool_rtx_true): Rename to...
5016         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
5017         rtx to rtx_insn *.
5018         (hook_bool_rtx_int_false): Rename to...
5019         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
5020         param from rtx to rtx_insn *.
5021         (hook_void_rtx_int): Rename to...
5022         (hook_void_rtx_insn_int): ...this, and strengthen first param from
5023         rtx to rtx_insn *.
5024         (hook_constcharptr_const_rtx_null): Rename to...
5025         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
5026         first param from const_rtx to const rtx_insn *.
5027
5028         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
5029         and local "prev" from rtx to rtx_insn *.
5030
5031         * sched-int.h (sched_speculate_insn): Strengthen first param from
5032         rtx to rtx_insn *.
5033
5034         * sel-sched.c (create_speculation_check): Likewise for local "label".
5035         * targhooks.c (default_invalid_within_doloop): Strengthen param
5036         "insn" from const_rtx to const rtx_insn *.
5037         * targhooks.h (default_invalid_within_doloop): Strengthen param
5038         from const_rtx to const rtx_insn *.
5039
5040         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
5041         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
5042
5043         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
5044         "insn".
5045         (arc_invalid_within_doloop): Likewise, with const.
5046
5047         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
5048         (arm_cannot_copy_insn_p): Likewise for param "insn".
5049         (arm_unwind_emit): Likewise.
5050
5051         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
5052         "dep_insn".
5053
5054         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
5055         (c6x_variable_issue): Likewise.  Removed now-redundant checked
5056         cast.
5057         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
5058
5059         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
5060         Likewise for param "insn".
5061         (epiphany_mode_after): Likewise.
5062         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
5063         params "insn", "dep_insn".
5064         (epiphany_mode_needed): Likewise for param "insn".
5065         (epiphany_mode_after): Likewise.
5066
5067         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
5068         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
5069         (ix86_avx_u128_mode_needed): Likewise.
5070         (ix86_i387_mode_needed): Likewise.
5071         (ix86_mode_needed): Likewise.
5072         (ix86_avx_u128_mode_after): Likewise.
5073         (ix86_mode_after): Likewise.
5074         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
5075         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
5076         (ix86_adjust_priority): Likewise for param "insn".
5077         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
5078         (do_dispatch): Likewise.
5079         (has_dispatch): Likewise.
5080         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
5081
5082         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
5083         reflect renaming of default hook implementation from
5084         hook_constcharptr_const_rtx_null to
5085         hook_constcharptr_const_rtx_insn_null.
5086         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
5087         rtx to rtx_insn *.
5088         (ia64_variable_issue): Likewise for param "insn".
5089         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
5090         (ia64_dfa_new_cycle): Likewise.
5091         (ia64_get_insn_spec_ds): Likewise.
5092         (ia64_get_insn_checked_ds): Likewise.
5093         (ia64_speculate_insn): Likewise.
5094         (ia64_gen_spec_check): Likewise for params "insn", "label".
5095         (ia64_asm_unwind_emit): Likewise for param "insn".
5096
5097         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
5098
5099         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
5100         "insn", "def_insn".
5101         (m68k_sched_variable_issue): Likewise for param "insn".
5102
5103         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
5104         "def_insn".
5105
5106         * config/microblaze/microblaze.c (microblaze_adjust_cost):
5107         Likewise for params "insn", "dep".
5108
5109         * config/mips/mips.c (mips_adjust_cost): Likewise.
5110         (mips_variable_issue): Likewise for param "insn".
5111         (mips_final_postscan_insn): Likewise.
5112
5113         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
5114         for params "insn", "dep".
5115
5116         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
5117         "dep_insn".
5118         (pa_adjust_priority): Likewise for param "insn".
5119
5120         * config/picochip/picochip.c (picochip_sched_adjust_cost):
5121         Likewise for params "insn", "dep_insn".
5122
5123         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
5124         param "insn".
5125         (rs6000_variable_issue): Likewise.
5126         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
5127         (rs6000_debug_adjust_cost): Likewise.
5128         (rs6000_adjust_priority): Likewise for param "insn".
5129         (rs6000_use_sched_lookahead_guard): Likewise.
5130         (get_next_active_insn): Likewise for return type and both params.
5131         (redefine_groups): Likewise for params "prev_head_insn", "tail"
5132         and locals "insn", "next_insn".
5133         (pad_groups): Likewise.
5134
5135         * config/s390/s390.c (s390_adjust_priority): Likewise for param
5136         "insn".
5137         (s390_cannot_copy_insn_p): Likewise.
5138         (s390_sched_variable_issue): Likewise for third param, eliminating
5139         checked cast.
5140         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
5141         default hook implementation from hook_constcharptr_const_rtx_null
5142         to hook_constcharptr_const_rtx_insn_null.
5143
5144         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
5145         from rtx to rtx_insn *.
5146         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
5147         (sh_variable_issue): Likewise for param "insn".
5148         (sh_dfa_new_cycle): Likewise.
5149         (sh_mode_needed): Likewise.
5150         (sh_mode_after): Likewise.
5151
5152         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
5153         params "insn", "dep_insn".
5154         (hypersparc_adjust_cost): Likewise.
5155         (sparc_adjust_cost): Likewise.
5156
5157         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
5158         param, eliminated checked cast.
5159         (spu_sched_adjust_cost): Likewise for first and third params.
5160
5161         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
5162         params "insn" and "dep_insn" from rtx to rtx_insn *.
5163
5164         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
5165
5166 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5167
5168         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
5169         (set_is_load_p): ...this, updating to work on a SET pattern rather
5170         than an insn.
5171         (is_store_insn): Rename to...
5172         (set_is_store_p): ...this, updating to work on a SET pattern
5173         rather than an insn.
5174         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
5175         top of function to where it is needed.  Rewrite the bogus
5176         condition that checks for "insn" and "dep" being PARALLEL to
5177         instead use single_set, introducing locals "insn_set" and
5178         "dep_set".  Given that we only ever returned "cost" for a non-pair
5179         of SETs, bail out early if we don't have a pair of SET.
5180         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
5181         use the new locals "insn_set" and "dep_set", and update calls to
5182         is_load_insn and is_store_insn to be calls to set_is_load_p and
5183         set_is_store_p.
5184
5185 2014-08-27  Guozhi Wei  <carrot@google.com>
5186
5187         PR target/62262
5188         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
5189         amount before using it.
5190
5191 2014-08-27  Richard Biener  <rguenther@suse.de>
5192
5193         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
5194         get_maxval_strlen inside a more useful API.
5195         (gimple_fold_builtin_with_strlen): Remove and fold into ...
5196         (gimple_fold_builtin): ... caller.
5197         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
5198         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
5199         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
5200         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
5201         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
5202         gimple_fold_builtin_sprintf): Adjust to compute maxval
5203         themselves.
5204
5205 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
5206
5207         PR other/62248
5208         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
5209
5210 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5211             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5212             Anna Tikhonova  <anna.tikhonova@intel.com>
5213             Ilya Tocar  <ilya.tocar@intel.com>
5214             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5215             Ilya Verbin  <ilya.verbin@intel.com>
5216             Kirill Yukhin  <kirill.yukhin@intel.com>
5217             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5218
5219         * config/i386/sse.md
5220         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
5221         Use `concat_tg_mode' attribute to determine asm register size.
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_AVX512VL): New.
5234         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
5235         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
5236         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
5237         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5238         with VI1): Change mode iterator.
5239         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5240         with VI_ULOADSTORE_BW_AVX512VL): New.
5241         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5242         with VI_ULOADSTORE_F_AVX512VL): Ditto.
5243         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5244         with VI1): Change mode iterator.
5245         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5246         with VI_ULOADSTORE_BW_AVX512VL): New.
5247         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5248         with VI_ULOADSTORE_F_AVX512VL): Ditto.
5249         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
5250         with VI1): Change mode iterator.
5251         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
5252         with VI_ULOADSTORE_BW_AVX512VL): New.
5253         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
5254         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
5255         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
5256         (define_insn "<avx512>_storedqu<mode>_mask" with
5257         VI48_AVX512VL): New.
5258         (define_insn "<avx512>_storedqu<mode>_mask" with
5259         VI12_AVX512VL): Ditto.
5260
5261 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5262             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5263             Anna Tikhonova  <anna.tikhonova@intel.com>
5264             Ilya Tocar  <ilya.tocar@intel.com>
5265             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5266             Ilya Verbin  <ilya.verbin@intel.com>
5267             Kirill Yukhin  <kirill.yukhin@intel.com>
5268             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5269
5270         * config/i386/sse.md
5271         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
5272         (define_mode_iterator VI48_AVX512BW): New.
5273         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
5274         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
5275         with VI48_AVX2_48_AVX512F): New.
5276         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
5277         with VI2_AVX512VL): Ditto.
5278
5279 2014-08-27  Richard Biener  <rguenther@suse.de>
5280
5281         PR middle-end/62239
5282         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
5283         (fold_builtin_3): Do not fold strcat_chk here.
5284         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
5285         from builtins.c.
5286         (gimple_fold_builtin): Fold strcat_chk here.
5287
5288 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
5289
5290         * dwarf2out.h (dwarf2out_decl): Remove prototype.
5291         * dwarf2out.c (dwarf2out_decl): Make static.
5292
5293 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
5294
5295         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
5296
5297 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5298
5299         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
5300         from rtx to rtx_insn *.
5301         (cselib_lookup_from_insn): Likewise for final param.
5302         (cselib_subst_to_values_from_insn): Likewise.
5303         (cselib_add_permanent_equiv): Likewise.
5304
5305         * cselib.c (cselib_current_insn): Likewise for this variable.
5306         (cselib_subst_to_values_from_insn): Likewise for param "insn".
5307         (cselib_lookup_from_insn): Likewise.
5308         (cselib_add_permanent_equiv): Likewise for param "insn" and local
5309         "save_cselib_current_insn".
5310         (cselib_process_insn): Replace use of NULL_RTX with NULL.
5311
5312         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
5313         from rtx to rtx_insn *.
5314
5315 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5316
5317         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
5318         rtx_insn *.
5319
5320 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5321
5322         * df.h (df_dump_insn_problem_function): Strengthen first param of
5323         this callback from const_rtx to const rtx_insn *.
5324         (struct df_insn_info): Strengthen field "insn" from rtx to
5325         rtx_insn *.
5326         (DF_REF_INSN): Eliminate this function, reinstating the older
5327         macro definition.
5328         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
5329         (df_reg_defined): Likewise.
5330         (df_find_use): Likewise.
5331         (df_reg_used): Likewise.
5332         (df_dump_insn_top): Strengthen param 1 from const_rtx to
5333         const rtx_insn *.
5334         (df_dump_insn_bottom): Likewise.
5335         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
5336         (df_insn_debug_regno): Likewise.
5337         (debug_df_insn): Likewise.
5338         (df_rd_simulate_one_insn): Likewise for param 2.
5339         (df_word_lr_simulate_defs): Likewise for param 1.
5340         (df_word_lr_simulate_uses): Likewise.
5341         (df_md_simulate_one_insn): Likewise for param 2.
5342         (df_simulate_find_noclobber_defs): Likewise for param 1.
5343         (df_simulate_find_defs): Likewise.
5344         (df_simulate_defs): Likewise.
5345         (df_simulate_uses): Likewise.
5346         (df_simulate_one_insn_backwards): Likewise for param 2.
5347         (df_simulate_one_insn_forwards): Likewise.
5348         (df_uses_create): Likewise for param 2.
5349         (df_insn_create_insn_record): Likewise for param 1.
5350         (df_insn_delete): Likewise.
5351         (df_insn_rescan): Likewise.
5352         (df_insn_rescan_debug_internal): Likewise.
5353         (df_insn_change_bb): Likewise.
5354         (df_notes_rescan): Likewise.
5355         * rtl.h (remove_death): Likewise for param 2.
5356         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
5357         const rtx_insn *.
5358         * sched-int.h (reemit_notes): Strengthen param from rtx to
5359         rtx_insn *.
5360         * valtrack.h (propagate_for_debug): Likewise for param 1.
5361
5362         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
5363         local "tmp_rtx" from const_rtx to const rtx_insn *.
5364         * combine.c (remove_death): Strengthen param "insn" from rtx to
5365         rtx_insn *.
5366         (move_deaths): Likewise for local "where_dead".
5367         * cse.c (delete_trivially_dead_insns): Introduce local
5368         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
5369         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
5370         rtx_insn *.
5371         (df_reg_defined): Likewise.
5372         (df_find_use): Likewise.
5373         (df_reg_used): Likewise.
5374         (df_dump_insn_problem_data): Strengthen param "insn" from
5375         const_rtx to const rtx_insn *.
5376         (df_dump_insn_top): Likewise.
5377         (df_dump_insn_bottom): Likewise.
5378         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
5379         (df_insn_debug_regno): Likewise.
5380         (debug_df_insn): Likewise.
5381         (DF_REF_INSN): Delete.
5382         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
5383         from rtx to rtx_insn *.
5384         (df_chain_insn_top_dump): Strengthen param "insn" from
5385         const_rtx to const rtx_insn *.
5386         (df_chain_insn_bottom_dump): Likewise.
5387         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
5388         rtx_insn *.
5389         (df_word_lr_simulate_uses): Likewise.
5390         (df_print_note): Likewise.
5391         (df_remove_dead_and_unused_notes): Likewise.
5392         (df_set_unused_notes_for_mw): Likewise.
5393         (df_set_dead_notes_for_mw): Likewise.
5394         (df_create_unused_note): Likewise.
5395         (df_simulate_find_defs): Likewise.
5396         (df_simulate_find_uses): Likewise.
5397         (df_simulate_find_noclobber_defs): Likewise.
5398         (df_simulate_defs): Likewise.
5399         (df_simulate_uses): Likewise.
5400         (df_simulate_one_insn_backwards): Likewise.
5401         (df_simulate_one_insn_forwards): Likewise.
5402         (df_md_simulate_one_insn): Likewise.
5403         * df-scan.c (df_uses_create): Likewise.
5404         (df_insn_create_insn_record): Likewise.
5405         (df_insn_delete): Likewise.
5406         (df_insn_rescan): Likewise.
5407         (df_insn_rescan_debug_internal): Likewise.
5408         (df_insn_change_bb): Likewise.
5409         (df_notes_rescan): Likewise.
5410         (df_refs_add_to_chains): Likewise.
5411         (df_insn_refs_verify): Likewise.
5412         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
5413         when invoking df_insn_delete.
5414         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
5415         (set_unique_reg_note): Add checked cast.
5416         * final.c (cleanup_subreg_operands): Likewise.
5417         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
5418         "insn" from rtx to rtx_insn *.
5419         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
5420         "last" from rtx to rtx_insn *.
5421         * ira-emit.c (change_regs_in_insn): New function.
5422         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
5423         Invoke change_regs_in_insn rather than change_regs.
5424         * ira.c (update_equiv_regs): Strengthen locals "insn",
5425         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
5426         for_each_rtx_in_insn rather than for_each_rtx.
5427         * recog.c (confirm_change_group): Add checked casts.
5428         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
5429         Add checked cast.
5430         (peep2_fill_buffer): Add checked cast.
5431         * rtlanal.c (remove_note): Likewise.
5432         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
5433         locals "next" "end" from rtx to rtx_insn *.
5434
5435 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5436
5437         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
5438         to rtx_insn *.
5439         (struct reg_use_data): Likewise for field "insn".
5440         (insn_cost): Likewise for param.
5441         (real_insn_for_shadow): Likewise for return type and param.
5442         (increase_insn_priority): Likewise for param 1.
5443         (debug_dependencies): Likewise for both params.
5444
5445         * haifa-sched.c (insn_delay): Likewise for param "insn".
5446         (real_insn_for_shadow): Likewise for return type and param "insn".
5447         (update_insn_after_change): Likewise for param "insn".
5448         (recompute_todo_spec): Likewise for param "next" and locals "pro",
5449         "other".
5450         (insn_cost): Likewise for param "insn".
5451         (increase_insn_priority): Likewise.
5452         (calculate_reg_deaths): Likewise.
5453         (setup_insn_reg_pressure_info): Likewise.
5454         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
5455         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
5456         (model_recompute): Likewise.
5457         (must_restore_pattern_p): Likewise for param "next".
5458         (model_excess_cost): Likewise for param "insn".
5459         (queue_remove): Likewise.
5460         (adjust_priority): Likewise for param "prev".
5461         (update_register_pressure): Likewise for param "insn".
5462         (setup_insn_max_reg_pressure): Likewise for local "insn".
5463         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
5464         (model_add_to_schedule): Likewise.
5465         (model_reset_queue_indices): Likewise for local "insn".
5466         (unschedule_insns_until): Strengthen local "recompute_vec" from
5467         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
5468         "con" from rtx to rtx_insn *.
5469         (restore_last_backtrack_point): Likewise for both locals "x". Add
5470         checked casts.
5471         (estimate_insn_tick): Likewise for param "insn".
5472         (commit_schedule): Likewise for params "prev_head", "tail" and
5473         local "x".
5474         (verify_shadows): Likewise for locals "i1", "i2".
5475         (dump_insn_stream): Likewise for params "head", "tail" and locals
5476         "next_tail", "insn".
5477         (schedule_block): Likewise for locals "insn", "x".  Add a checked
5478         cast.
5479         (fix_inter_tick): Likewise for params "head", "tail".
5480         (create_check_block_twin): Likewise for local "jump".
5481         (haifa_change_pattern): Likewise for param "insn".
5482         (haifa_speculate_insn): Likewise.
5483         (dump_new_block_header): Likewise for params "head", "tail".
5484         (fix_jump_move): Likewise for param "jump".
5485         (move_block_after_check): Likewise.
5486         (sched_init_insn_luid): Likewise for param "insn".
5487         (sched_init_luids): Likewise for local "insn".
5488         (insn_luid): Likewise for param "insn".
5489         (init_h_i_d): Likewise.
5490         (haifa_init_h_i_d): Likewise for local "insn".
5491         (haifa_init_insn): Likewise for param "insn".
5492         * sched-deps.c (add_dependence): Likewise for local "real_pro",
5493         "other".
5494         (create_insn_reg_use): Likewise for param "insn".
5495         (setup_insn_reg_uses): Likewise.  Add a checked cast.
5496         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
5497         "tail" from rtx to rtx_insn *.
5498         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
5499         "insn", "next_tail".
5500
5501 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5502
5503         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
5504         from rtx to rtx_insn *.
5505         (model_add_to_schedule): Likewise for locals "start", "end",
5506         "iter".
5507
5508 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5509
5510         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
5511         rtx_insn *.
5512         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
5513         "to" and locals "insn", "next", "copy".  Remove now-redundant
5514         checked cast.
5515
5516 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5517
5518         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
5519         rtx_insn * and param 4 from rtx * to rtx_insn **.
5520         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
5521         param 2 from rtx * to rtx_insn **.
5522
5523         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
5524         rtx_insn * and final param from rtx * to rtx_insn **.
5525
5526         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
5527         from rtx to rtx_insn *.
5528         (try_head_merge_bb): Likewise for both locals named "move_upto".
5529         * df-problems.c (can_move_insns_across): Likewise for params
5530         "from", "to", "across_from", "across_to" and locals "insn",
5531         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
5532         rtx_insn **.
5533         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
5534         from rtx to rtx_insn *.
5535         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
5536         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
5537         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
5538         rtx_insn *.
5539         (noce_try_abs): Likewise.
5540         (noce_get_condition): Likewise for param "jump".  Strengthen param
5541         "earliest" from rtx * to rtx_insn **.
5542         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
5543         rtx_insn *.
5544         (find_cond_trap): Likewise.
5545         (dead_or_predicable): Likewise for local "earliest".
5546         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
5547         checked cast.
5548         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
5549         and local "prev".  Strengthen param "earliest" from rtx * to
5550         rtx_insn **.
5551         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
5552         Strengthen param "earliest" from rtx * to rtx_insn **.
5553
5554 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5555
5556         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
5557         "to" and local "insn" from rtx to rtx_insn *.
5558
5559 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5560
5561         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
5562         from rtx to rtx_insn *.
5563         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
5564         (code_motion_path_driver): Likewise for local "last_insn".
5565         (simplify_changed_insns): Likewise for local "insn".
5566
5567 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5568
5569         * rtl.h (push_to_sequence): Strengthen param from rtx to
5570         rtx_insn *.
5571         (push_to_sequence2): Likewise for both params.
5572         (delete_insns_since): Likewise for param.
5573         (reorder_insns_nobb): Likewise for all three params.
5574         (set_new_first_and_last_insn): Likewise for both params.
5575
5576         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
5577         rtx_insn *.  Remove now-redundant cast.
5578         (set_last_insn): Likewise.
5579
5580         * builtins.c (expand_builtin_return): Strengthen local
5581         "call_fusage" from rtx to rtx_insn *.
5582         * cfgrtl.c (create_basic_block_structure): Likewise for local
5583         "after".
5584         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
5585         "first", "last" and local "insn".
5586         (delete_insns_since): Likewise for param "from".
5587         (reorder_insns_nobb): Likewise for params "from", "to", "after"
5588         and local "x".
5589         (push_to_sequence): Likewise for param "first" and local "last".
5590         (push_to_sequence2): Likewise for params "first" and "last".
5591         * lra.c (emit_add3_insn): Likewise for local "last".
5592         (lra_emit_add): Likewise.
5593         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
5594         "last_insn".
5595         (process_address_1): Likewise for locals "insn", last".
5596         * modulo-sched.c (ps_first_note): Likewise for return type.
5597         * optabs.c (expand_binop_directly): Likewise for param "last".
5598
5599 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5600
5601         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
5602         to rtx_insn*.
5603         * emit-rtl.c (get_last_insn_anywhere): Likewise.
5604
5605 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5606
5607         * function.h (struct sequence_stack): Strengthen fields "first"
5608         and "last" from rtx to rtx_insn *.
5609         (struct emit_status): Likewise for fields "x_first_insn" and
5610         "x_last_insn".
5611
5612         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
5613         (set_first_insn): Add checked cast.
5614         (get_last_insn): Remove now-redundant checked cast.
5615         (set_last_insn): Add checked cast.
5616
5617         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
5618         "saved_first" and "saved_last" from rtx to rtx_insn *.
5619
5620 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5621
5622         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
5623         (unlink_insn_chain): Strengthen both params from rtx to
5624         rtx_insn *.
5625
5626         * cfgrtl.c (cfg_layout_function_header): Likewise for this
5627         variable.
5628         (unlink_insn_chain): Likewise for params "first" and "last".
5629         Remove now-redundant checked cast.
5630         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
5631         (fixup_reorder_chain): Strengthen local "insn" from rtx to
5632         rtx_insn *.
5633         * emit-rtl.c (link_insn_into_chain): Likewise for all three
5634         params.
5635         (add_insn): Likewise for param "insn" and local "prev".
5636         (add_insn_after_nobb): Likewise for both params and local "next".
5637         (add_insn_before_nobb): Likewise for both params and local "prev".
5638         (add_insn_after): Rename param "after" to "uncast_after",
5639         introducing local "after" with another checked cast.
5640         (add_insn_before): Rename params "insn" and "before", giving them
5641         "uncast_" prefixes, adding the old names back using checked casts.
5642         (emit_note_after): Likewise for param "after".
5643         (emit_note_before): Likewise for param "before".
5644         (emit_label): Add a checked cast.
5645
5646 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5647
5648         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
5649         "insn" from rtx to rtx_insn *.
5650
5651         * cselib.c (cselib_record_sets_hook): Likewise.
5652
5653         * var-tracking.c (add_with_sets): Likewise, renaming back from
5654         "uncast_insn" to "insn" and eliminating the checked cast from rtx
5655         to rtx_insn *.
5656
5657 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5658
5659         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
5660         and "header_" from rtx to rtx_insn *.
5661         (struct basic_block_d): Likewise for field "head_" within "x"
5662         field of union basic_block_il_dependent.
5663         (BB_HEAD): Drop function...
5664         (SET_BB_HEAD): ...and this function in favor of...
5665         (BB_HEAD): ...reinstate macro.
5666         (BB_END): Drop function...
5667         (SET_BB_END): ...and this function in favor of...
5668         (BB_END): ...reinstate macro.
5669         (BB_HEADER): Drop function...
5670         (SET_BB_HEADER): ...and this function in favor of...
5671         (BB_HEADER): ...reinstate macro.
5672
5673         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
5674         (fix_crossing_unconditional_branches): Likewise.
5675         * caller-save.c (save_call_clobbered_regs): Likewise.
5676         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
5677         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
5678         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
5679         (merge_blocks_move_successor_nojumps): Likewise.
5680         (outgoing_edges_match): Update use of for_each_rtx to
5681         for_each_rtx_in_insn.
5682         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
5683         (expand_gimple_cond): Likewise.
5684         (expand_gimple_tailcall): Likewise.
5685         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
5686         SET_BB_END.
5687         (construct_exit_block): Drop use of SET_BB_END.
5688         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
5689         rtx_insn *.
5690         (delete_insn): Rename param "insn" to "uncast_insn", introducing
5691         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
5692         SET_BB_HEAD and SET_BB_END.
5693         (create_basic_block_structure): Drop use of SET_BB_HEAD and
5694         SET_BB_END.
5695         (rtl_delete_block): Drop use of SET_BB_HEAD.
5696         (rtl_split_block): Drop use of SET_BB_END.
5697         (emit_nop_for_unique_locus_between): Likewise.
5698         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
5699         (block_label): Drop use of SET_BB_HEAD.
5700         (fixup_abnormal_edges): Drop use of SET_BB_END.
5701         (record_effective_endpoints): Drop use of SET_BB_HEADER.
5702         (relink_block_chain): Likewise.
5703         (fixup_reorder_chain): Drop use of SET_BB_END.
5704         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
5705         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
5706         rtx_insn **.  Drop use of SET_BB_HEADER.
5707         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
5708         SET_BB_HEAD.
5709         (BB_HEAD): Delete this function.
5710         (SET_BB_HEAD): Likewise.
5711         (BB_END): Likewise.
5712         (SET_BB_END): Likewise.
5713         (BB_HEADER): Likewise.
5714         (SET_BB_HEADER): Likewise.
5715         * emit-rtl.c (add_insn_after):  Rename param "insn" to
5716         "uncast_insn", adding a new local "insn" and a checked cast to
5717         rtx_insn *.  Drop use of SET_BB_END.
5718         (remove_insn): Strengthen locals "next" and "prev" from rtx to
5719         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
5720         (reorder_insns): Drop use of SET_BB_END.
5721         (emit_insn_after_1): Strengthen param "first" and locals "last",
5722         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
5723         (emit_pattern_after_noloc): Add checked cast.
5724         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
5725         (restore_other_notes): Likewise.
5726         (move_insn): Likewise.
5727         (sched_extend_bb): Likewise.
5728         (fix_jump_move): Likewise.
5729         * ifcvt.c (noce_process_if_block): Likewise.
5730         (dead_or_predicable): Likewise.
5731         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
5732         * reg-stack.c (change_stack): Drop use of SET_BB_END.
5733         * sel-sched-ir.c (sel_move_insn): Likewise.
5734         * sel-sched.c (move_nop_to_previous_block): Likewise.
5735
5736         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
5737         SET_BB_END.
5738         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
5739
5740 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5741
5742         * basic-block.h (create_basic_block_structure): Strengthen params
5743         1 "head" and 2 "end" from rtx to rtx_insn *.
5744         * cfgrtl.c (create_basic_block_structure): Likewise.
5745         (rtl_create_basic_block): Update casts from void * to rtx to
5746         rtx_insn *, so that we can pass them as rtx_insn * to
5747         create_basic_block_structure.
5748         * sel-sched-ir.c (sel_create_basic_block): Likewise.
5749
5750 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5751
5752         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
5753         rtx_insn **.
5754         (check_for_inc_dec): Strengthen param "insn" from rtx to
5755         rtx_insn *.
5756
5757         * cselib.h (cselib_process_insn): Likewise.
5758
5759         * cselib.c (cselib_record_sets): Likewise.
5760         (cselib_process_insn): Likewise.
5761
5762         * dse.c (struct insn_info): Likewise for field "insn".
5763         (check_for_inc_dec_1): Likewise for local "insn".
5764         (check_for_inc_dec): Likewise for param "insn".
5765         (scan_insn): Likewise.
5766         (dse_step1): Likewise for local "insn".
5767
5768         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
5769         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
5770
5771 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5772
5773         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
5774         from rtx to rtx_insn *.
5775         (DEP_PRO): Delete this function and...
5776         (SET_DEP_PRO): ...this function in favor of...
5777         (DEP_PRO): ...reinstate this macro.
5778         (DEP_CON): Delete this function and...
5779         (SET_DEP_CON): ...this function in favor of...
5780         (DEP_CON): ...reinstate this old macro.
5781         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
5782         (init_dep): Likewise.
5783         (set_priorities): Likewise for both params.
5784         (sd_copy_back_deps): Likewise for params 1 and 2.
5785
5786         * haifa-sched.c (priority): Likewise for param "insn" and local
5787         "next".
5788         (set_priorities): Likewise for params "head" and "tail" and local
5789         "insn".
5790         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
5791         local "consumer".
5792         (add_to_speculative_block): Add a checked cast.
5793         (create_check_block_twin): Drop use of SET_DEP_CON.
5794         (add_jump_dependencies): Strengthen params "insn" and "jump" from
5795         rtx to rtx_insn *.
5796
5797         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
5798         Drop use of SET_DEP_PRO
5799         (init_dep): Strengthen params "pro" and "con" from rtx to
5800         rtx_insn *.
5801         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
5802         use of SET_DEP_CON.
5803         (DEP_PRO): Delete.
5804         (DEP_CON): Delete.
5805         (SET_DEP_PRO): Delete.
5806         (SET_DEP_CON): Delete.
5807
5808 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5809
5810         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
5811         from rtx to rtx_insn *.
5812         (VINSN_INSN_RTX): Eliminate rvalue function and...
5813         (SET_VINSN_INSN): ...lvalue function in favor of...
5814         (VINSN_INSN_RTX): reinstate this old macro.
5815
5816         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
5817         in favor of VINSN_INSN_RTX.
5818         (VINSN_INSN_RTX): Delete this function.
5819         (SET_VINSN_INSN_RTX): Likewise.
5820
5821 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5822
5823         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
5824         (BND_TO): Delete this function and...
5825         (SET_BND_TO): ...this functions in favor of...
5826         (BND_TO): ...reinstating this macro.
5827         (struct _fence): Strengthen field "executing_insns" from
5828         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
5829         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
5830         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
5831         and param "insn" from rtx to insn_t.
5832         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
5833         rtx_insn *.
5834
5835         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
5836         vec<rtx_insn *> .
5837         (rtx_vec_t): Likewise.
5838         (struct sched_deps_info_def): Strengthen param of "start_insn"
5839         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
5840         "note_mem_dep" callback and first param of "note_dep" callback.
5841
5842         * haifa-sched.c (add_to_speculative_block): Strengthen param
5843         "insn" from rtx to rtx_insn *.
5844         (clear_priorities): Likewise.
5845         (calc_priorities): Likewise for local "insn".
5846
5847         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
5848         Remove redundant checked cast.
5849         (haifa_note_mem_dep): Likewise for param "pending_insn".
5850         (haifa_note_dep): Likewise for param "elem".
5851         (note_mem_dep): Likewise for param "e".
5852         (sched_analyze_1): Add checked casts.
5853         (sched_analyze_2): Likewise.
5854
5855         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
5856         from rtx to rtx_insn *.
5857         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
5858         from vec<rtx> * to vec<rtx_insn *> *.
5859
5860         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
5861         scaffolding.
5862         (flist_add): Strengthen param "executing_insns" from
5863         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
5864         (advance_deps_context): Remove now-redundant checked cast.
5865         (init_fences): Replace uses of NULL_RTX with NULL.
5866         (merge_fences): Strengthen params "last_scheduled_insn" and
5867         "sched_next" from rtx to rtx_insn * and "executing_insns" from
5868         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
5869         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
5870         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
5871         an instruction, rather than doing double-duty as a pattern.
5872         (return_nop_to_pool): Update for change of insn_t.
5873         (deps_init_id): Remove now-redundant checked cast.
5874         (struct sched_scan_info_def): Strengthen param of "init_insn"
5875         callback from rtx to insn_t.
5876         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
5877         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
5878         NULL.
5879         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
5880         "end" from rtx to rtx_insn *.
5881         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
5882         (rtx insn_rtx, bool force_unique_p)
5883         (BND_TO): Delete function.
5884         (SET_BND_TO): Delete function.
5885
5886         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
5887         rtx to rtx_insn *.
5888         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
5889         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
5890         rtx to rtx_insn *.
5891         (undo_transformations): Likewise for param "insn".
5892         (update_liveness_on_insn): Likewise.
5893         (compute_live_below_insn): Likewise for param "insn" and local
5894         "succ".
5895         (update_data_sets): Likewise for param "insn".
5896         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
5897         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
5898         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
5899         rtx_insn *.
5900         (move_cond_jump): Likewise for param "insn".
5901         (move_cond_jump): Drop use of SET_BND_TO.
5902         (compute_av_set_on_boundaries): Likewise.
5903         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
5904         (update_and_record_unavailable_insns): Strengthen local "bb_end"
5905         from rtx to rtx_insn *.
5906         (maybe_emit_renaming_copy): Likewise for param "insn".
5907         (maybe_emit_speculative_check): Likewise.
5908         (handle_emitting_transformations): Likewise.
5909         (remove_insn_from_stream): Likewise.
5910         (code_motion_process_successors): Strengthen local "succ" from rtx
5911         to insn_t.
5912
5913 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5914
5915         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
5916         ilist_t, not _xlist_t;
5917         (ILIST_INSN): Define in terms of new union field "insn".
5918         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
5919         _XLIST_NEXT.
5920         (struct _list_node): Add new field "insn" to the union, of type
5921         insn_t.
5922         (ilist_add): Replace macro with an inline function, requiring an
5923         insn_t.
5924         (ilist_remove): Define this macro directly in terms of
5925         _list_remove, rather than indirectly via _xlist_remove.
5926         (ilist_clear): Likewise, in terms of _list_clear rather than
5927         _xlist_clear.
5928         (ilist_is_in_p): Replace macro with an inline function, requiring
5929         an insn_t.
5930         (_list_iter_cond_insn): New function.
5931         (ilist_iter_remove): Define this macro directly in terms of
5932         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
5933         (ilist_iterator): Define directly in terms of _list_iterator
5934         rather than indirectly through _xlist_iterator.
5935         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
5936         than in terms of _FOR_EACH_X.
5937         (FOR_EACH_INSN_1): Likewise.
5938
5939 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
5940
5941         PR target/60606
5942         PR target/61330
5943         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
5944         DECL_HARD_REGISTER and return for invalid register specifications.
5945         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
5946         DECL_HARD_REGISTER, call expand_one_error_var.
5947         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
5948         CC_REGNUM with non-MODE_CC modes.
5949         (arm_regno_class): Return NO_REGS for PC_REGNUM.
5950
5951 2014-08-26  Marek Polacek  <polacek@redhat.com>
5952
5953         PR c/61271
5954         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
5955
5956 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
5957
5958         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
5959         qi cost; add di cost.
5960         (cortexa57_addrcost_table): Likewise.
5961
5962 2014-08-26  Marek Polacek  <polacek@redhat.com>
5963
5964         PR c/61271
5965         * expr.c (is_aligning_offset): Remove logical not.
5966
5967 2014-08-26  Marek Polacek  <polacek@redhat.com>
5968
5969         PR c/61271
5970         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
5971         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
5972
5973 2014-08-26  Richard Biener  <rguenther@suse.de>
5974
5975         PR tree-optimization/62175
5976         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
5977         expand possibly trapping operations.
5978
5979 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5980
5981         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
5982         "insn" from rtx to rtx_insn *.
5983         (permute_load): Likewise for param "insn".
5984         (permute_store): Likewise.
5985         (handle_special_swappables): Likewise for local "insn".
5986         (replace_swap_with_copy): Likewise for locals "insn" and
5987         "new_insn".
5988         (rs6000_analyze_swaps): Likewise for local "insn".
5989
5990 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
5991
5992         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
5993         to rtx_insn *.
5994
5995 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
5996
5997         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
5998         "note_list" from rtx to rtx_insn *.
5999         (BB_NOTE_LIST): Replace this function and...
6000         (SET_BB_NOTE_LIST): ...this function with...
6001         (BB_NOTE_LIST): ...the former macro implementation.
6002
6003         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
6004         local "from_start" from rtx to rtx_insn *.  Strengthen param
6005         "to_endp" from rtx * to rtx_insn **.
6006
6007         * haifa-sched.c (concat_note_lists): Likewise.
6008         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
6009         BB_NOTE_LIST.
6010         (sel_restore_notes): Likewise.
6011         (move_bb_info): Likewise.
6012         (BB_NOTE_LIST): Delete this function.
6013         (SET_BB_NOTE_LIST): Delete this function.
6014         * sel-sched.c (create_block_for_bookkeeping): Eliminate
6015         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
6016
6017 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6018
6019         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
6020         from rtx * to rtx_insn **.
6021         (reorder2): Likewise.
6022         (dependencies_evaluation_hook): Strengthen params "head", "tail"
6023         from rtx to rtx_insn *.
6024
6025         * doc/tm.texi: Update mechanically for above change to target.def.
6026
6027         * sched-int.h (note_list): Strengthen this variable from rtx to
6028         rtx_insn *.
6029         (remove_notes): Likewise for both params.
6030         (restore_other_notes): Likewise for return type and first param.
6031         (struct ready_list): Strengthen field "vec" from rtx * to
6032         rtx_insn **.
6033         (struct dep_replacement): Strenghten field "insn" from rtx to
6034         rtx_insn *.
6035         (struct deps_desc): Likewise for fields "last_debug_insn",
6036         "last_args_size".
6037         (struct haifa_sched_info): Likewise for callback field
6038         "can_schedule_ready_p"'s param, for first param of "new_ready"
6039         callback field, for both params of "rank" callback field, for
6040         first field of "print_insn" callback field (with a const), for
6041         both params of "contributes_to_priority" callback, for param
6042         of "insn_finishes_block_p" callback, for fields "prev_head",
6043         "next_tail", "head", "tail", for first param of "add_remove_insn"
6044         callback, for first param of "begin_schedule_ready" callback, for
6045         both params of "begin_move_insn" callback, and for second param
6046         of "advance_target_bb" callback.
6047         (add_dependence): Likewise for params 1 and 2.
6048         (sched_analyze): Likewise for params 2 and 3.
6049         (deps_analyze_insn): Likewise for param 2.
6050         (ready_element): Likewise for return type.
6051         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
6052         (try_ready): Strenghten param from rtx to rtx_insn *.
6053         (sched_emit_insn): Likewise for return type.
6054         (record_delay_slot_pair): Likewise for params 1 and 2.
6055         (add_delay_dependencies): Likewise for param.
6056         (contributes_to_priority): Likewise for both params.
6057         (find_modifiable_mems): Likewise.
6058
6059         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
6060         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
6061         "first_older_only_insn" from rtx to rtx_insn *.
6062         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
6063         rtx_insn **.
6064
6065         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
6066         "last_scheduled_iter0" from rtx to rtx_insn *.
6067         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
6068         (c6x_sched_reorder_1): Strengthen param "ready" and locals
6069         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
6070         "insn" from rtx to rtx_insn *.
6071         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
6072         rtx_insn **.
6073         (c6x_sched_reorder2): Strengthen param "ready" and locals
6074         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
6075         "insn" from rtx to rtx_insn *.
6076         (c6x_variable_issue):  Add a checked cast when assigning from insn
6077         to ss.last_scheduled_iter0.
6078         (split_delayed_branch): Strengthen param "insn" and local "i1"
6079         from rtx to rtx_insn *.
6080         (split_delayed_nonbranch): Likewise.
6081         (undo_split_delayed_nonbranch): Likewise for local "insn".
6082         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
6083         "entry_after", "end_packet", "head_insn", "tail_insn",
6084         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
6085         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
6086         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
6087         but add a checked cast on loop->start_label.  Consolidate calls to
6088         avoid assigning result of gen_spkernel to "insn", now an
6089         rtx_insn *.
6090
6091         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
6092         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
6093         rtx to rtx_insn *.
6094         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
6095         rtx_insn **.  Strengthen locals "top", "next" from rtx to
6096         rtx_insn *.
6097         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
6098         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
6099         (add_parameter_dependencies): Strengthen params "call", "head" and
6100         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
6101         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
6102         (add_dependee_for_func_arg): Likewise for param "arg" and local
6103         "insn".
6104         (ix86_dependencies_evaluation_hook): Likewise for params "head",
6105         "tail" and locals "insn", "first_arg".
6106
6107         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
6108         for params "head", "tail" and locals "insn", "next", "next_tail".
6109         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
6110         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
6111         "insn", "lowest", "highest" from rtx to rtx_insn *.
6112         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
6113         rtx_insn **.
6114         (ia64_sched_reorder2): Likewise.
6115
6116         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
6117         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
6118         from rtx * to rtx_insn **.
6119         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
6120         rtx_insn **.
6121         (mep_print_sched_insn): Strengthen param "insn" from rtx to
6122         rtx_insn *.
6123         (mep_sched_reorder): Strengthen param "ready" from rtx * to
6124         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
6125         to rtx_insn *.
6126
6127         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
6128         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
6129         to rtx_insn *.
6130         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
6131         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
6132         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
6133         rtx_insn **.
6134         (vr4130_reorder): Likewise.
6135         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
6136         rtx to rtx_insn *.
6137         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
6138         rtx_insn **.
6139         (mips_sched_reorder): Likewise.
6140         (mips_sched_reorder2): Likewise.
6141
6142         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
6143
6144         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
6145         Strengthen local "tmp" from rtx to rtx_insn *.
6146         (rs6000_sched_reorder2): Likewise.
6147
6148         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
6149         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
6150         (s390_sched_reorder): Strengthen param "ready" from rtx * to
6151         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
6152
6153         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
6154         "tmp2" from rtx to rtx_insn *.
6155         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
6156         Strengthen local "insn" from rtx to rtx_insn *.
6157         (ready_reorder): Strengthen param "ready" from rtx * to
6158         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
6159         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
6160         (sh_reorder2): Likewise.
6161
6162         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
6163         local "insn" from rtx to rtx_insn *.
6164
6165         * haifa-sched.c (note_list): Strengthen this variable from rtx to
6166         rtx_insn *.
6167         (scheduled_insns): Strengthen this variable from vec<rtx> to
6168         vec<rtx_insn *>.
6169         (set_modulo_params): Likewise for locals "i1", "i2".
6170         (record_delay_slot_pair): Likewise for params "i1", "i2".
6171         (add_delay_dependencies): Likewise for param "insn".
6172         (cond_clobbered_p): Likewise.
6173         (recompute_todo_spec): Likewise for local "prev".
6174         (last_scheduled_insn): Likewise for this variable.
6175         (nonscheduled_insns_begin): Likewise.
6176         (model_set_excess_costs): Strengthen param "insns" from rtx * to
6177         rtx_insn **.
6178         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
6179         rtx_insn *.
6180         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
6181         Strengthen local "insn" from rtx to rtx_insn *.
6182         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
6183         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
6184         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
6185         (ready_remove_first): Likewise for return type and local "t".
6186         (ready_element): Likewise for return type.
6187         (ready_remove): Likewise for return type and local "t".
6188         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
6189         (check_clobbered_conditions): Strengthen local "x" from rtx to
6190         rtx_insn *, adding a checked cast.
6191         (schedule_insn): Likewise for param "insn".
6192         (remove_notes): Likewise for params "head", "tail" and locals
6193         "next_tail", "insn", "next".
6194         (struct haifa_saved_data): Likewise for fields
6195         "last_scheduled_insn", "nonscheduled_insns_begin".
6196         (save_backtrack_point): Update for change to field "vec" of
6197         struct ready_list.
6198         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
6199         rtx_insn **.
6200         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
6201         from rtx to rtx_insn *
6202         (resolve_dependencies): Strengthen param "insn" from rtx to
6203         rtx_insn *
6204         (restore_other_notes): Likewise for return type, for param "head"
6205         and local "note_head".
6206         (undo_all_replacements): Likewise for local "insn".
6207         (first_nonscheduled_insn): Likewise for return type and local "insn".
6208         (queue_to_ready): Likewise for local "insn", adding checked casts.
6209         (early_queue_to_ready): Likewise for local "insn".
6210         (debug_ready_list_1): Strengthen local "p" from rtx * to
6211         rtx_insn **.
6212         (move_insn): Strengthen param "insn" and local "note" from rtx to
6213         rtx_insn *
6214         (insn_finishes_cycle_p): Likewise for param "insn".
6215         (max_issue): Likewise for local "insn".
6216         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
6217         to rtx_insn **.
6218         (commit_schedule): Strengthen param "prev_head" and local "insn"
6219         from rtx to rtx_insn *
6220         (prune_ready_list): Likewise for local "insn".
6221         (schedule_block): Likewise for locals "prev_head", "head", "tail",
6222         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
6223         (set_priorities): Likewise for local "prev_head".
6224         (try_ready): Likewise for param "next".
6225         (fix_tick_ready): Likewise.
6226         (change_queue_index): Likewise.
6227         (sched_extend_ready_list): Update for change to field "vec" of
6228         struct ready_list.
6229         (generate_recovery_code): Strengthen param "insn" from rtx to
6230         rtx_insn *.
6231         (begin_speculative_block): Likewise.
6232         (create_check_block_twin): Likewise for param "insn" and locals
6233         "label", "check", "twin".  Introduce local "check_pat" to avoid
6234         "check" being used as a plain rtx before being used as an insn.
6235         (fix_recovery_deps): Add a checked cast to rtx_insn * when
6236         extracting elements from ready_list.
6237         (sched_remove_insn): Strengthen param "insn" from rtx to
6238         rtx_insn *.
6239         (sched_emit_insn): Likewise for return type.
6240         (ready_remove_first_dispatch): Likewise for return type and local
6241         "insn".
6242
6243         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
6244
6245         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
6246         const rtx_insn *.
6247
6248         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
6249         from rtx to rtx_insn *.
6250         (add_dependence_list): Likewise for param "insn".  Add a checked
6251         cast.
6252         (add_dependence_list_and_free): Strengthen param "insn" from rtx
6253         to rtx_insn *.  Strengthen param "list_p" from rtx * to
6254         rtx_insn **.
6255         (chain_to_prev_insn): Strengthen param "insn" and locals
6256         "prec_nonnote", "i" from rtx to rtx_insn *.
6257         (flush_pending_lists): Likewise for param "insn".
6258         (cur_insn): Likewise for this variable.
6259         (haifa_start_insn): Add a checked cast.
6260         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
6261         (sched_analyze_reg): Likewise for param "insn".
6262         (sched_analyze_1): Likewise.
6263         (sched_analyze_2): Likewise.  Add checked casts.
6264         (sched_analyze_insn): Likewise.  Also for local "prev".
6265         (deps_analyze_insn): Likewise for param "insn".
6266         (sched_analyze): Likewise for params "head", "tail" and local "insn".
6267         (add_dependence_1): Likewise for params "insn", "elem".
6268         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
6269         (parse_add_or_inc): Likewise for param "insn".
6270         (find_inc): Likewise for local "inc_cand".
6271         (find_modifiable_mems): Likewise for params "head", "tail" and
6272         locals "insn", "next_tail".
6273
6274         * sched-ebb.c (init_ready_list): Likewise for local "insn".
6275         (begin_schedule_ready): Likewise for param "insn".
6276         (begin_move_insn): Likewise for params "insn" and "last".
6277         (ebb_print_insn): Strengthen param "insn" from const_rtx to
6278         const rtx_insn *.
6279         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
6280         (ebb_contributes_to_priority): Likewise for params "next", "insn".
6281         (ebb_add_remove_insn): Likewise for param "insn".
6282         (advance_target_bb): Likewise.
6283
6284         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
6285         "insn".
6286         (check_live): Likewise for param "insn".
6287         (init_ready_list): Likewise for local "insn".
6288         (can_schedule_ready_p): Likewise for param "insn".
6289         (begin_schedule_ready): Likewise.
6290         (new_ready): Likewise for param "next".
6291         (rgn_print_insn): Likewise for param "insn".
6292         (rgn_rank): Likewise for params "insn1", "insn2".
6293         (contributes_to_priority): Likewise for params "next", "insn".
6294         (rgn_insn_finishes_block_p): Likewise for param "insn".
6295         (add_branch_dependences): Likewise for params "head", "tail" and
6296         locals "insn", "last".
6297         (rgn_add_remove_insn): Likewise for param "insn".
6298         (advance_target_bb): Likewise.
6299
6300         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
6301         const_rtx to const rtx_insn *.
6302
6303         * sel-sched-dump.h (sel_print_insn): Likewise.
6304
6305         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
6306         (deps_init_id): Likewise.
6307
6308         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
6309         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
6310         rtx_insn **.
6311
6312 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6313
6314         * output.h (final_start_function): Strengthen param 1 from rtx to
6315         rtx_insn *.
6316
6317         * final.c (final_start_function): Likewise, renaming back from
6318         "uncast_first" to "first", and dropping the checked cast from rtx
6319         to rtx_insn *.
6320
6321 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6322
6323         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
6324         * final.c (final): Likewise.  Rename param back from
6325         "uncast_first" to "first" and eliminate the checked cast from rtx
6326         to rtx_insn *.
6327
6328 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6329
6330         * output.h (shorten_branches): Strengthen param from rtx to
6331         rtx_insn *.
6332
6333         * final.c (shorten_branches): Likewise, renaming param back from
6334         "uncast_first" to "first", and dropping the checked cast from rtx
6335         to rtx_insn *.
6336
6337         * genattr.c (gen_attr): Likewise when writing out the prototype of
6338         shorten_branches.
6339
6340 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6341
6342         * sched-int.h (struct haifa_sched_info): Strengthen fields
6343         "prev_head" and "next_tail" from rtx to rtx_insn *.
6344
6345 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6346
6347         * rtl.h (rtx_jump_table_data::get_labels): New method.
6348         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
6349         with use of the new rtx_jump_table_data::get_labels method.
6350         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
6351         to rtx_jump_table_data *.  Simplify by using get_labels method.
6352         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
6353         a dyn_cast, introducing local "table", using it to replace
6354         label-lookup logic with a get_labels method call.
6355         (patch_jump_insn): Simplify using get_labels method.
6356         * dwarf2cfi.c (create_trace_edges): Likewise.
6357         * rtlanal.c (label_is_jump_target_p): Likewise.
6358
6359 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6360
6361         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
6362         to rtx_insn *.
6363
6364         * emit-rtl.c (unshare_all_rtl_1): Likewise.
6365         (unshare_all_rtl_again): Likewise, also for local "p".
6366
6367 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6368
6369         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
6370         to rtx_insn *.
6371         * cfgrtl.c (delete_insn_and_edges): Likewise.
6372
6373 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6374
6375         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
6376         from rtx to rtx_insn *.
6377
6378         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
6379
6380 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6381
6382         * function.c (thread_prologue_and_epilogue_insns): Likewise for
6383         locals "returnjump", "epilogue_end", "insn", "next".
6384
6385         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
6386         "returnjump" from rtx * to rtx_insn **.
6387         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
6388
6389 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6390
6391         * basic-block.h (struct edge_def). Strengthen "r" within
6392         union edge_def_insns from rtx to rtx_insn *.
6393
6394         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
6395         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
6396         rtx_insn *.
6397         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
6398         from rtx to rtx_insn *.
6399         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
6400         rtx_insn *.
6401         * postreload-gcse.c (reg_killed_on_edge): Likewise.
6402         (reg_used_on_edge): Likewise.
6403         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
6404         (gt_pch_nx): New overload for rtx_insn *&.
6405         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
6406         from rtx to rtx_insn *.
6407
6408 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6409
6410         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
6411         from rtx to rtx_insn *.
6412         (BB_FOOTER): Replace function with access macro.
6413         (SET_BB_FOOTER): Delete.
6414
6415         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
6416         with BB_FOOTER.
6417         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
6418         (emit_barrier_after_bb): Likewise.
6419         (record_effective_endpoints): Likewise.
6420         (relink_block_chain): Likewise.
6421         (fixup_fallthru_exit_predecessor): Likewise.
6422         (cfg_layout_duplicate_bb): Likewise.
6423         (cfg_layout_split_block): Likewise.
6424         (cfg_layout_delete_block): Likewise.
6425         (cfg_layout_merge_blocks): Likewise.
6426         (BB_FOOTER): Delete function.
6427         (SET_BB_FOOTER): Delete function.
6428         * combine.c (update_cfg_for_uncondjump): Replace uses of
6429         SET_BB_FOOTER with BB_FOOTER.
6430
6431 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6432
6433         * except.h (struct eh_landing_pad_d): Strengthen field
6434         "landing_pad" from rtx to rtx_code_label *.
6435
6436         * except.c (sjlj_emit_dispatch_table): Likewise for param
6437         "dispatch_label"
6438         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
6439
6440 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6441
6442         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
6443         first param from rtx to rtx_insn *.
6444         * config/xtensa/xtensa.c (struct machine_function): Likewise for
6445         field "set_frame_ptr_insn".
6446         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
6447         "csend" from rtx to rtx_code_label *.
6448         (xtensa_expand_atomic): Likewise for local "csloop".
6449         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
6450         rtx_insn *.
6451         (xtensa_call_tls_desc): Likewise for return type and locals
6452         "call_insn", "insns".
6453         (xtensa_legitimize_tls_address): Likewise for local "insns".
6454         (xtensa_expand_prologue): Likewise for locals "insn", "first".
6455
6456 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6457
6458         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
6459         first param from rtx to rtx_insn *.
6460         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
6461         "insn".
6462
6463 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6464
6465         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
6466         Strengthen param 1 from rtx to rtx_insn *.
6467         (tilepro_output_cbranch): Likewise.
6468         (tilepro_adjust_insn_length): Likewise.
6469         (tilepro_final_prescan_insn): Likewise for sole param.
6470
6471         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
6472         Likewise for local "last".
6473         (cbranch_predicted_p): Likewise for param "insn".
6474         (tilepro_output_simple_cbranch_with_opcode): Likewise.
6475         (tilepro_output_cbranch_with_opcode): Likewise.
6476         (tilepro_output_cbranch): Likewise.
6477         (frame_emit_load): Likewise for return type and locals "seq",
6478         "insn".
6479         (emit_sp_adjust): Likewise for return type and local "insn".
6480         (tilepro_expand_epilogue): Likewise for locals "last_insn",
6481         "insn".
6482         (tilepro_adjust_insn_length): Likewise for param "insn".
6483         (next_insn_to_bundle): Likewise for return type and params
6484         "r", "end".
6485         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
6486         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
6487         local "new_insns".
6488         (match_addli_pcrel): Likewise for param "insn".
6489         (replace_addli_pcrel): Likewise.
6490         (match_auli_pcrel): Likewise.
6491         (replace_auli_pcrel): Likewise.
6492         (tilepro_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         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
6497         (tilepro_final_prescan_insn): Likewise for param "insn".
6498
6499 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6500
6501         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
6502         Strengthen param 1 from rtx to rtx_insn *.
6503         (tilegx_output_cbranch): Likewise.
6504         (tilegx_adjust_insn_length): Likewise.
6505         (tilegx_final_prescan_insn): Likewise for sole param.
6506
6507         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
6508         or local "last".
6509         (cbranch_predicted_p): Likewise for param "insn".
6510         (tilegx_output_simple_cbranch_with_opcode): Likewise.
6511         (tilegx_output_cbranch_with_opcode): Likewise.
6512         (tilegx_output_cbranch): Likewise.
6513         (frame_emit_load): Likewise for return type.
6514         (set_frame_related_p): Likewise for locals "seq", "insn".
6515         (emit_sp_adjust): Likewise for return type, and for local "insn".
6516         Introduce local "pat" for use in place of "insn" where the latter
6517         isn't an instruction.
6518         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
6519         from rtx to rtx_insn *.
6520         (tilegx_adjust_insn_length): Likewise for param "insn".
6521         (next_insn_to_bundle): Likewise for return type and params "r" and
6522         "end".
6523         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
6524         "end".
6525         (replace_insns): Likewise for params "old_insn", "new_insns".
6526         (replace_mov_pcrel_step1): Likewise for param "insn" and local
6527         "new_insns".
6528         (replace_mov_pcrel_step2): Likewise.
6529         (replace_mov_pcrel_step3): Likewise.
6530         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
6531         "next_insn".
6532         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
6533         "queue", "next_queue", "prev".
6534         (tilegx_output_mi_thunk): Likewise for local "insn".
6535         (tilegx_final_prescan_insn): Likewise for param "insn".
6536
6537 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6538
6539         * config/spu/spu.c (frame_emit_store): Strengthen return type from
6540         rtx to rtx_insn *.
6541         (frame_emit_load): Likewise.
6542         (frame_emit_add_imm): Likewise, also for local "insn".
6543         (spu_expand_prologue): Likewise for local "insn".
6544         (struct spu_bb_info): Likewise for field "prop_jump".
6545         (emit_nop_for_insn): Likewise for param "insn" and local
6546         "new_insn".
6547         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
6548         "hbr_insn".
6549         (spu_emit_branch_hint): Likewise for params "before", "branch" and
6550         locals "hint", "insn".
6551         (get_branch_target): Likewise for param "branch".
6552         (insn_clobbers_hbr): Likewise for param "insn".
6553         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
6554         locals "insn", "before_4", "before_16".
6555         (insert_hbrp): Likewise for local "insn".
6556         (spu_machine_dependent_reorg): Likewise for locals "branch",
6557         "insn", "next", "bbend".
6558         (uses_ls_unit): Likewise for param "insn".
6559         (get_pipe): Likewise.
6560         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
6561         introducing a checked cast.
6562         (spu_sched_adjust_cost): Likewise for params "insn" and
6563         "dep_insn".
6564         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
6565         (spu_sms_res_mii): Likewise.
6566
6567 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6568
6569         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
6570         from rtx to rtx_insn *.
6571         (output_cbranch): Likewise for param 6.
6572         (output_return): Likewise for param 1.
6573         (output_sibcall): Likewise.
6574         (output_v8plus_shift): Likewise.
6575         (output_v8plus_mult): Likewise.
6576         (output_v9branch): Likewise for param 7.
6577         (output_cbcond):  Likewise for param 3.
6578
6579         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
6580         for local "insn".
6581         (sparc_legitimize_pic_address): Likewise.
6582         (sparc_emit_call_insn): Likewise.
6583         (emit_save_or_restore_regs): Likewise.
6584         (emit_window_save): Likewise for return type and local "insn".
6585         (sparc_expand_prologue): Likewise for local "insn".
6586         (sparc_flat_expand_prologue): Likewise.
6587         (output_return): Likewise for param "insn".
6588         (output_sibcall): Likewise for param "insn" and local "delay".
6589         (output_ubranch): Likewise for param "insn".
6590         (output_cbranch): Likewise.
6591         (output_cbcond): Likewise.
6592         (output_v9branch): Likewise.
6593         (output_v8plus_shift): Likewise.
6594         (sparc_output_mi_thunk): Likewise for local "insn".
6595         (get_some_local_dynamic_name): Likewise.
6596         (output_v8plus_mult): Likewise for param "insn".
6597
6598 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6599
6600         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
6601         from rtx to rtx_insn *.
6602         (output_branchy_insn): Likewise for param 3.
6603         (output_far_jump): Likewise for param 1.
6604         (final_prescan_insn): Likewise.
6605         (sh_insn_length_adjustment): Likewise for sole param.
6606
6607         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
6608         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
6609         rtx_code_label *.
6610         (sh_emit_compare_and_set): Likewise for local "lab".
6611         (output_far_jump): Strengthen param "insn" and local "prev" from
6612         rtx to rtx_insn *.
6613         (output_branchy_insn): Likewise for param "insn" and local
6614         "next_insn".
6615         (output_ieee_ccmpeq): Likewise for param "insn".
6616         (struct label_ref_list_d): Strengthen field "label" from rtx to
6617         rtx_code_label *.
6618         (pool_node): Likewise.
6619         (pool_window_label): Likewise for this global.
6620         (add_constant): Likewise for return type and locals "lab", "new_rtx".
6621         (dump_table): Strengthen params "start", "barrier" and local
6622         "scan" from rtx to rtx_insn *.
6623         (broken_move): Likewise for param "insn".
6624         (untangle_mova): Likewise for params "first_mova" and "new_mova".
6625         Strengthen param "first_mova" from rtx * to rtx_insn **.
6626         (mova_p): Likewise for param "insn".
6627         (fixup_mova): Likewise for param "mova".
6628         (find_barrier): Likewise for return type, params "mova" and
6629         "from", and locals "barrier_before_mova", "found_barrier",
6630         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
6631         "label" from rtx to rtx_code_label *.
6632         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
6633         rtx to rtx_insn *.
6634         (sh_reorg): Likewise for locals "link", "scan", "barrier".
6635         (split_branches): Likewise for param "first" and local "insn".
6636         (final_prescan_insn): Likewise for param "insn".
6637         (sequence_insn_p): Likewise for locals "prev", "next".
6638         (sh_insn_length_adjustment): Likewise for param "insn".
6639         (sh_can_redirect_branch): Likewise for local "insn".
6640         (find_r0_life_regions): Likewise for locals "end", "insn".
6641         (sh_output_mi_thunk): Likewise for local "insns".
6642
6643 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6644
6645         * config/score/score.c (score_output_mi_thunk): Strengthen local
6646         "insn" from rtx to rtx_insn *.
6647         (score_prologue): Likewise.
6648
6649 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6650
6651         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
6652         1 from rtx to rtx_insn *.
6653         (s390_emit_jump): Likewise for return type.
6654         (s390_emit_call): Likewise.
6655         (s390_load_got): Likewise.
6656
6657         * config/s390/s390.c (last_scheduled_insn): Likewise for this
6658         variable.
6659         (s390_match_ccmode): Likewise for param "insn".
6660         (s390_emit_jump): Likewise for return type.
6661         (s390_split_branches): Likewise for local "label".
6662         (struct constant): Strengthen field "label" from rtx to
6663         rtx_code_label *.
6664         (struct constant_pool): Likewise for field "label".  Strengthen
6665         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
6666         rtx_insn *.
6667         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
6668         insns.
6669         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
6670         (s390_end_pool): Likewise.
6671         (s390_dump_pool): Likewise for local "insn".
6672         (s390_mainpool_start): Likewise.
6673         (s390_chunkify_start): Likewise.
6674         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
6675         with insns.  Strengthen locals "label", "jump", "barrier", "next",
6676         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
6677         (s390_chunkify_finish): Strengthen local "insn" from rtx to
6678         rtx_insn *.
6679         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
6680         "jump", "label", "next_insn".
6681         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
6682         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
6683         "tbegin_insn".
6684         (s390_load_got): Likewise for return type and local "insns".
6685         (s390_save_gprs_to_fprs): Likewise for local "insn".
6686         (s390_restore_gprs_from_fprs): Likewise.
6687         (pass_s390_early_mach::execute): Likewise.
6688         (s390_emit_prologue): Likewise for local "insns".
6689         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
6690         rtx_code_label *.
6691         (s390_emit_call): Strengthen return type and local "insn" from
6692         rtx to rtx_insn *.
6693         (s390_emit_tpf_eh_return): Likewise for local "insn".
6694         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
6695         "next_insn", introducing locals "s_pat", "rpat" to allow this.
6696         (s390_fix_long_loop_prediction): Likewise for param "insn" and
6697         local "cur_insn".
6698         (s390_non_addr_reg_read_p): Likewise for param "insn".
6699         (find_cond_jump): Likewise for return type and param "insn".
6700         (s390_swap_cmp): Likewise for param "insn".
6701         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
6702         "prev_insn", "next_insn".
6703         (s390_reorg): Likewise for locals "insn", "target".
6704         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
6705         (s390_sched_variable_issue): For now, rename param "insn" to
6706         "uncast_insn", introducing a checked cast.
6707         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
6708         insn.
6709         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
6710         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
6711
6712 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6713
6714         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
6715         param from rtx to rtx_insn *.
6716         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
6717
6718 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6719
6720         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
6721         4 from rtx to rtx_insn *.
6722         (rs6000_final_prescan_insn): Likewise for first param.
6723         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
6724         local "insn".
6725         (rs6000_get_some_local_dynamic_name): Likewise.
6726         (output_cbranch): Likewise for param "insn".
6727         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
6728         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
6729         (rs6000_emit_allocate_stack): Likewise for local "insn".
6730         (load_cr_save): Likewise.
6731         (restore_saved_cr): Likewise.
6732         (restore_saved_lr): Likewise.
6733         (emit_cfa_restores): Likewise.
6734         (rs6000_output_function_epilogue): Likewise for locals "insn" and
6735         "deleted_debug_label".
6736         (rs6000_output_mi_thunk): Likewise for local "insn".
6737         (rs6000_final_prescan_insn): Likewise for param "insn".
6738
6739 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6740
6741         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
6742         Strengthen param "insn" from rtx to rtx_insn *.
6743         * config/picochip/picochip.c (picochip_current_prescan_insn):
6744         Likewise for this variable.
6745         (picochip_final_prescan_insn): Likewise for param "insn".
6746
6747 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6748
6749         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
6750         from rtx to rtx_insn *.
6751         (pa_output_indirect_call): Likewise.
6752         (pa_adjust_insn_length): Likewise.
6753         (pa_attr_length_millicode_call): Likewise.
6754         (pa_attr_length_call): Likewise.
6755         (pa_attr_length_indirect_call): Likewise.
6756
6757         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
6758         "insn".
6759         (pa_attr_length_millicode_call): Likewise.
6760         (pa_attr_length_call): Likewise.
6761         (pa_output_call): Likewise.
6762         (pa_attr_length_indirect_call): Likewise.
6763         (pa_output_indirect_call): Likewise.
6764
6765 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6766
6767         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
6768         Strengthen first param from rtx to rtx_insn *.
6769         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
6770         param "insn".
6771
6772 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6773
6774         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
6775         type from rtx to rtx_insn *.
6776         (mips_expand_call): Likewise.
6777         (mips_adjust_insn_length): Likewise for first param.
6778         (mips_output_conditional_branch): Likewise.
6779         (mips_output_order_conditional_branch): Likewise.
6780         (mips_final_prescan_insn): Likewise.
6781
6782         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
6783         rtx_insn * for the SEQUENCE case.
6784         (SEQ_END): Likewise.
6785         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
6786         (mips_emit_call_insn): Likewise, also for local "insn".
6787         (mips16_gp_pseudo_reg): Likewise for local "scan".
6788         (mips16_build_call_stub): Likewise for return type and for local
6789         "insn".  Introduce a new local "pattern" so that "insn" can indeed
6790         be an insn.
6791         (mips_expand_call): Strengthen return type and local "insn" from
6792         rtx to rtx_insn *.
6793         (mips_block_move_loop): Strengthen local "label" from rtx to
6794         rtx_code_label *.
6795         (mips_expand_synci_loop): Likewise for locals "label",
6796         "end_label".
6797         (mips_set_frame_expr): Strengthen local "insn" from rtx to
6798         rtx_insn *.
6799         (mips16e_collect_argument_saves): Likewise for locals "insn",
6800         "next".
6801         (mips_find_gp_ref): Likewise for param of callback for "pred"
6802         param, and for local "insn".
6803         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
6804         (mips_insn_has_flexible_gp_ref_p): Likewise.
6805         (mips_epilogue_emit_cfa_restores): Likewise for return type and
6806         local "insn".
6807         (mips_epilogue_set_cfa): Likewise for local "insn".
6808         (mips_expand_epilogue): Likewise.
6809         (mips_adjust_insn_length): Likewise for param "insn".
6810         (mips_output_conditional_branch): Likewise.
6811         (mips_output_order_conditional_branch): Likewise.
6812         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
6813         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
6814         "falu2_turn_enabled_insn".
6815         (mips_builtin_branch_and_move): Strengthen locals "true_label",
6816         "done_label" from rtx to rtx_code_label *.
6817         (struct mips16_constant): Likewise for field "label".
6818         (mips16_add_constant): Likewise for return type.
6819         (mips16_emit_constants_1): Strengthen return type and param "insn"
6820         from rtx to rtx_insn *.
6821         (mips16_emit_constants): Likewise for param "insn".
6822         (mips16_insn_length): Likewise.
6823         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
6824         to rtx_code_label *.
6825         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
6826         from rtx to rtx_insn *.
6827         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
6828         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
6829         (r10k_simplify_address): Strengthen param "insn" and local
6830         "def_insn" from rtx to rtx_insn *.
6831         (r10k_safe_address_p): Strengthen param "insn" from rtx to
6832         rtx_insn *.
6833         (r10k_needs_protection_p_1): Update target type of cast of data
6834         from to rtx to rtx_insn *.
6835         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
6836         rtx * to rtx_insn **.
6837         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
6838         rtx_insn *.
6839         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
6840         (mips_call_expr_from_insn): Likewise for param "insn".
6841         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
6842         (mips_find_pic_call_symbol): Likewise for param "insn".
6843         (mips_annotate_pic_calls): Likewise for local "insn".
6844         (mips_sim_insn): Likewise for this variable.
6845         (struct mips_sim): Likewise for field "insn" within elements of
6846         last_set array.
6847         (mips_sim_wait_reg): Likewise for param "insn".
6848         (mips_sim_wait_regs): Likewise.
6849         (mips_sim_wait_units): Likewise.
6850         (mips_sim_wait_insn): Likewise.
6851         (mips_sim_issue_insn): Likewise.
6852         (mips_sim_finish_insn): Likewise.
6853         (mips_seq_time): Likewise for param "seq" and local "insn".
6854         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
6855         locals "first", "second".
6856         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
6857         "last", "last2", "next".
6858         (mips_avoid_hazard): Likewise for params "after", "insn".
6859         (mips_reorg_process_insns): Likewise for locals "insn",
6860         "last_insn", "subinsn", "next_insn".
6861         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
6862         (mips16_split_long_branches): Likewise for locals "insn" "jump",
6863         "jump_sequence".
6864         (mips_output_mi_thunk): Likewise for local "insn".
6865         (mips_final_prescan_insn): Likewise for param "insn".
6866
6867 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6868
6869         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
6870         Strengthen return type and local "insns" from rtx to rtx_insn *.
6871         (microblaze_legitimize_tls_address): Likewise for local "insns".
6872         (microblaze_block_move_loop): Strengthen local "label" from rtx
6873         to rtx_code_label *.
6874         (microblaze_expand_prologue): Strengthen two locals named "insn"
6875         from rtx to rtx_insn *.
6876         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
6877         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
6878         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
6879         to rtx_code_label *.
6880
6881 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6882
6883         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
6884         param from rtx to rtx_insn *.
6885         (mep_reuse_lo): Likewise for third param.
6886         (mep_use_post_modify_p): Likewise for first param.
6887         (mep_core_address_length): Likewise.
6888         (mep_cop_address_length): Likewise.
6889         (mep_final_prescan_insn): Likewise.
6890         (mep_store_data_bypass_p): Likewise for both params.
6891         (mep_mul_hilo_bypass_p): Likewise.
6892         (mep_ipipe_ldc_p): Likewise for param.
6893
6894         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
6895         (mep_rewrite_mult): Likewise.
6896         (mep_rewrite_mulsi3): Likewise.
6897         (mep_rewrite_maddsi3): Likewise.
6898         (mep_reuse_lo_p_1): Likewise.
6899         (mep_reuse_lo_p): Likewise.
6900         (mep_frame_expr): Likewise.
6901         (mep_make_parallel): Likewise for both params.
6902         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
6903         local "insn".
6904         (mep_use_post_modify_p): Likewise for param "insn".
6905         (mep_core_address_length): Likewise.
6906         (mep_cop_address_length): Likewise.
6907         (mep_reg_set_in_function): Likewise for local "insn".
6908         (mep_asm_without_operands_p): Likewise.
6909         (F): Likewise for return type and param "x".
6910         (add_constant): Likewise for local "insn".
6911         (maybe_dead_move): Likewise for return type and local "insn".
6912         (mep_expand_prologue): Likewise for local "insn".
6913         (mep_final_prescan_insn): Likewise for param "insn".
6914         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
6915         "next", "follow", "x".
6916         (mep_insert_repeat_label_last): Likewise for return type, param
6917         "last_insn", and locals "next", "prev".  Strengthen param "label"
6918         from rtx to rtx_code_label *.
6919         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
6920         rtx_insn *.
6921         (struct mep_doloop_end): Likewise for fields "insn" and
6922         "fallthrough".
6923         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
6924         Strengthen local "repeat_label" from rtx to rtx_code_label *.
6925         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
6926         rtx_insn *.
6927         (mep_invert_branch): Likewise for params "insn" and "after".
6928         (mep_reorg_erepeat): Likewise for param "insns" and locals
6929         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
6930         "l" from rtx to rtx_code_label *.
6931         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
6932         from rtx to rtx_insn *.
6933         (mep_reorg_addcombine): Likewise for param "insns" and locals
6934         "i", "n".
6935         (add_sp_insn_p): Likewise for param "insn".
6936         (mep_reorg_noframe): Likewise for param "insns" and locals
6937         "start_frame_insn", "end_frame_insn", "next".
6938         (mep_reorg): Likewise for local "insns".
6939         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
6940         cast.
6941         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
6942         (mep_mul_hilo_bypass_p): Likewise.
6943         (mep_ipipe_ldc_p): Likewise for param "insn".
6944         (mep_make_bundle): Likewise for return type, param "cop" and local
6945         "insn", splitting out the latter into a new local "seq" for when it
6946         is a SEQUENCE rather than an insn.
6947         (core_insn_p): Likewise for param "insn".
6948         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
6949         "last", "first", "note", "prev", "core_insn".
6950
6951 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6952
6953         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
6954         rtx to rtx_insn *.
6955         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
6956         (m68k_final_prescan_insn): Likewise for first param.
6957
6958         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
6959         (m68k_set_frame_related): Likewise for param "insn".
6960         (output_btst): Likewise for param "insn".
6961         (m68k_final_prescan_insn): Likewise.
6962         (m68k_move_to_reg): Likewise for local "insn".
6963         (m68k_call_tls_get_addr): Likewise for local "insns".
6964         (m68k_call_m68k_read_tp): Likewise.
6965         (strict_low_part_peephole_ok): Likewise for param "first_insn".
6966         (m68k_output_mi_thunk): Likewise for local "insn".
6967
6968 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6969
6970         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
6971         first param from rtx to rtx_insn *.
6972         (iq2000_adjust_insn_length): Likewise.
6973         (iq2000_output_conditional_branch): Likewise.
6974         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
6975         "insn" and local "nop_insn".
6976         (iq2000_annotate_frame_insn): Likewise for param "insn".
6977         (iq2000_expand_prologue): Likewise for both locals "insn".
6978         (iq2000_adjust_insn_length): Likewise for param "insn".
6979         (iq2000_output_conditional_branch): Likewise.
6980
6981 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6982
6983         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
6984         "insns" from rtx to rtx_insn *.
6985         (ia64_emit_cond_move): Likewise for locals "insn", "first".
6986         (struct spill_fill_data): Likewise for field "init_after" and for
6987         elements of array field "prev_insn".
6988         (spill_restore_mem): Likewise for locals "insn", "first".
6989         (do_spill): Likewise for local "insn".
6990         (do_restore): Likewise.
6991         (ia64_expand_prologue): Likewise.
6992         (ia64_expand_epilogue): Likewise.
6993         (emit_insn_group_barriers): Likewise for locals "insn",
6994         "last_label".
6995         (emit_all_insn_group_barriers): Likewise for locals "insn",
6996         "last".
6997         (dfa_stop_insn): Likewise for this global.
6998         (dfa_pre_cycle_insn): Likewise.
6999         (ia64_nop): Likewise.
7000         (final_emit_insn_group_barriers): Likewise for locals "insn",
7001         "last".
7002         (emit_predicate_relation_info): Likewise for locals "head", "n",
7003         "insn", "b", "a".
7004         (ia64_reorg): Likewise for local "insn".
7005         (ia64_output_mi_thunk): Likewise.
7006         (expand_vec_perm_interleave_2): Likewise for local "seq".
7007
7008 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7009
7010         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
7011         param 1 "insn" from rtx to rtx_insn *.
7012         (ix86_use_lea_for_mov): Likewise.
7013         (ix86_avoid_lea_for_addr): Likewise.
7014         (ix86_split_lea_for_addr): Likewise.
7015         (ix86_lea_for_add_ok): Likewise.
7016         (ix86_output_call_insn): Likewise.
7017
7018         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
7019         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
7020         (ix86_output_function_epilogue): Likewise for locals "insn",
7021         "deleted_debug_label".
7022         (legitimize_tls_address): Likewise for local "insn".
7023         (get_some_local_dynamic_name): Likewise.
7024         (increase_distance): Likewise for params "prev", "next".
7025         (distance_non_agu_define_in_bb): Likewise for params "insn",
7026         "start" and locals "prev", "next".
7027         (distance_non_agu_define): Likewise for param "insn".
7028         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
7029         locals "next", "prev".
7030         (distance_agu_use): Likewise for param "insn".
7031         (ix86_lea_outperforms): Likewise.
7032         (ix86_ok_to_clobber_flags): Likewise.
7033         (ix86_avoid_lea_for_add): Likewise.
7034         (ix86_use_lea_for_mov): Likewise.
7035         (ix86_avoid_lea_for_addr): Likewise.
7036         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
7037         (ix86_split_lea_for_addr): Likewise for param "insn".
7038         (ix86_lea_for_add_ok): Likewise for param "insn".
7039         (ix86_expand_carry_flag_compare): Likewise for local
7040         "compare_seq".
7041         (ix86_expand_int_movcc): Likewise.
7042         (ix86_output_call_insn): Likewise for param "insn".
7043         (ix86_output_call_insn): Likewise for local "i".
7044         (x86_output_mi_thunk): Introduce local "insn", using it in place
7045         of "tmp" when dealing with insns.
7046         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
7047         "start".
7048         (ix86_pad_returns): Likewise for locals "ret", "prev".
7049         (ix86_count_insn_bb): Likewise for local "insn".
7050         (ix86_pad_short_function): Likewise for locals "ret", "insn".
7051         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
7052         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
7053         (expand_vec_perm_interleave2): Likewise for local "seq".
7054         (expand_vec_perm_vperm2f128_vblend): Likewise.
7055         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
7056         call to for_each_rtx with for_each_rtx_in_insn.
7057
7058 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7059
7060         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
7061         "label" from rtx to rtx_code_label *.
7062         (ix86_expand_prologue): Likewise.
7063         (ix86_expand_split_stack_prologue): Likewise for locals "label",
7064         "varargs_label".
7065         (ix86_split_idivmod): Likewise for locals "end_label" and
7066         "qimode_label".
7067         (ix86_expand_branch): Likewise for local "label2".
7068         (ix86_expand_aligntest): Likewise for return type and local "label".
7069         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
7070         "top_label".
7071         (expand_movmem_epilogue): Likewise for the various locals named
7072         "label".
7073         (expand_setmem_epilogue): Likewise.
7074         (expand_small_movmem_or_setmem): Likewise for local "label".
7075         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
7076         Strengthen param "done_label" from rtx * to rtx_code_label **.
7077         Strengthen locals "loop_label" and "label" from rtx to
7078         rtx_code_label *.
7079         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
7080         Likewise for locals "loop_label", "label".
7081         (ix86_expand_set_or_movmem): Likewise for locals "label",
7082         "jump_around_label", "hot_label".
7083         (ix86_expand_strlensi_unroll_1): Likewise for locals
7084         "align_2_label", align_3_label", "align_4_label", "end_0_label",
7085         "end_2_label".
7086         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
7087         (void ix86_emit_i387_log1p): Likewise for locals "label1",
7088         "label2", "jump_label".
7089         (ix86_expand_sse_compare_and_jump): Likewise for return type and
7090         local "label".
7091         (ix86_expand_lfloorceil): Likewise for local "label".
7092         (ix86_expand_rint): Likewise.
7093         (ix86_expand_floorceildf_32): Likewise.
7094         (ix86_expand_floorceil): Likewise.
7095         (ix86_expand_rounddf_32): Likewise.
7096         (ix86_expand_trunc): Likewise.
7097         (ix86_expand_truncdf_32): Likewise.
7098         (ix86_expand_round): Likewise.
7099
7100 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7101
7102         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
7103         first param from rtx to rtx_insn *.
7104         (h8300_insn_length_from_table): Likewise.
7105         * config/h8300/h8300.c (F): Likewise for return type and param
7106         "x".
7107         (Fpa): Add a checked cast to rtx_insn *.
7108         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
7109         rtx_insn *.
7110         (final_prescan_insn): Likewise for param "insn".
7111         (h8300_binary_length): Likewise.
7112         (h8300_insn_length_from_table): Likewise.
7113
7114 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7115
7116         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
7117         Strengthen first param "insn" from rtx to rtx_insn *.
7118
7119         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
7120         Likewise.
7121         (frame_insn): Likewise for return type.  Introduce local "insn"
7122         for use in place of local "x" for use as an rtx_insn *.
7123         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
7124         (epiphany_expand_prologue): Likewise for local "insn".
7125         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
7126         * config/epiphany/resolve-sw-modes.c
7127         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
7128         "seq".
7129
7130 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7131
7132         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
7133         param from rtx to rtx_insn *.
7134         (c6x_final_prescan_insn): Likewise for first param.
7135
7136         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
7137         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
7138         (c6x_expand_compare): Strengthen local "insns" from rtx to
7139         rtx_insn *.
7140         (c6x_get_unit_specifier): Likewise for param "insn".
7141         (c6x_print_unit_specifier_field): Likewise.
7142         (c6x_final_prescan_insn): Likewise.
7143         (emit_add_sp_const): Likewise for local "insn".
7144         (c6x_expand_prologue): Likewise.
7145
7146 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7147
7148         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
7149         param 1 from rtx to rtx_insn *.
7150         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
7151         the various locals named "insn".
7152         (expand_epilogue_reg_restore): Likewise.
7153         (frame_related_constant_load): Likewise.
7154         (add_to_reg): Likewise.
7155         (emit_link_insn): Likewise.
7156         (do_link): Likewise.
7157         (expand_interrupt_handler_prologue): Likewise.
7158         (branch_dest): Likewise for param "branch".
7159         (asm_conditional_branch): Likewise for param "insn".
7160         (gen_one_bundle): Likewise for elements of param "slot" and local
7161         "t".
7162         (bfin_gen_bundles): Likewise for locals "insn", "next" and
7163         elements of local "slot".
7164         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
7165         "queue", "next_queue", "prev".
7166         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
7167         (add_sched_insns_for_speculation): Likewise for local "insn".
7168
7169 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7170
7171         * config/avr/avr-protos.h (output_movqi): Strengthen first param
7172         from rtx to rtx_insn *.
7173         (output_movhi): Likewise.
7174         (output_movsisf): Likewise.
7175         (avr_out_tstsi): Likewise.
7176         (avr_out_tsthi): Likewise.
7177         (avr_out_tstpsi): Likewise.
7178         (avr_out_compare): Likewise.
7179         (avr_out_compare64): Likewise.
7180         (avr_out_movpsi): Likewise.
7181         (ashlqi3_out): Likewise.
7182         (ashlhi3_out): Likewise.
7183         (ashlsi3_out): Likewise.
7184         (ashrqi3_out): Likewise.
7185         (ashrhi3_out): Likewise.
7186         (ashrsi3_out): Likewise.
7187         (lshrqi3_out): Likewise.
7188         (lshrhi3_out): Likewise.
7189         (lshrsi3_out): Likewise.
7190         (avr_out_ashlpsi3): Likewise.
7191         (avr_out_ashrpsi3): Likewise.
7192         (avr_out_lshrpsi3): Likewise.
7193         (avr_out_fract): Likewise.
7194         (avr_out_sbxx_branch): Likewise.
7195         (avr_out_round): Likewise.
7196         (avr_out_xload): Likewise.
7197         (avr_out_movmem): Likewise.
7198         (adjust_insn_length): Likewise.
7199         (avr_out_lpm): Likewise.
7200         (reg_unused_after): Likewise.
7201         (_reg_unused_after): Likewise.
7202         (avr_jump_mode): Likewise for second param.
7203         (jump_over_one_insn): Likewise for first param.
7204         (avr_final_prescan_insn): Likewise.
7205         (out_shift_with_cnt): Likewise for second param.
7206
7207         * config/avr/avr.c (get_sequence_length): Likewise for param
7208         "insns" and local "insn".
7209         (emit_push_byte): Likewise for local "insn".
7210         (emit_push_sfr): Likewise.
7211         (avr_prologue_setup_frame): Likewise for locals "insn",
7212         "fp_plus_insns", "sp_plus_insns".
7213         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
7214         "sp_plus_insns".
7215         (avr_jump_mode): Likewise for param "insn".
7216         (avr_final_prescan_insn): Likewise.
7217         (avr_find_unused_d_reg): Likewise.
7218         (avr_out_lpm_no_lpmx): Likewise.
7219         (avr_out_lpm): Likewise.
7220         (avr_out_xload): Likewise.
7221         (output_movqi): Likewise.
7222         (output_movhi): Likewise.
7223         (out_movqi_r_mr): Likewise.
7224         (out_movhi_r_mr): Likewise.
7225         (out_movsi_r_mr): Likewise.
7226         (out_movsi_mr_r): Likewise.
7227         (output_movsisf): Likewise.
7228         (avr_out_load_psi): Likewise.
7229         (avr_out_store_psi): Likewise.
7230         (avr_out_movpsi): Likewise.
7231         (out_movqi_mr_r): Likewise.
7232         (avr_out_movhi_mr_r_xmega): Likewise.
7233         (out_movhi_mr_r): Likewise.
7234         (compare_condition): Likewise for param "insn" and local "next".
7235         (compare_sign_p): Likewise for param "insn".
7236         (compare_diff_p): Likewise.
7237         (compare_eq_p): Likewise.
7238         (avr_out_compare): Likewise.
7239         (avr_out_compare64): Likewise.
7240         (avr_out_tsthi): Likewise.
7241         (avr_out_tstpsi): Likewise.
7242         (avr_out_tstsi): Likewise.
7243         (out_shift_with_cnt): Likewise.
7244         (ashlqi3_out): Likewise.
7245         (ashlhi3_out): Likewise.
7246         (avr_out_ashlpsi3): Likewise.
7247         (ashlsi3_out): Likewise.
7248         (ashrqi3_out): Likewise.
7249         (ashrhi3_out): Likewise.
7250         (avr_out_ashrpsi3): Likewise.
7251         (ashrsi3_out): Likewise.
7252         (lshrqi3_out): Likewise.
7253         (lshrhi3_out): Likewise.
7254         (avr_out_lshrpsi3): Likewise.
7255         (lshrsi3_out): Likewise.
7256         (avr_out_fract): Likewise.
7257         (avr_out_round): Likewise.
7258         (avr_adjust_insn_length): Likewise.
7259         (reg_unused_after): Likewise.
7260         (_reg_unused_after): Likewise.
7261         (avr_compare_pattern): Likewise.
7262         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
7263         and locals "branch1", "branch2", "insn2", "jump".
7264         (avr_reorg): Likewise for local "insn".
7265         (avr_2word_insn_p): Likewise for param "insn".
7266         (jump_over_one_insn_p): Likewise.
7267         (avr_out_sbxx_branch): Likewise.
7268         (avr_out_movmem): Likewise.
7269
7270 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7271
7272         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
7273         param from rtx to rtx_insn *.
7274         (thumb1_final_prescan_insn): Likewise.
7275         (thumb2_final_prescan_insn): Likewise.
7276
7277         * config/arm/arm.c (emit_set_insn): Strengthen return type from
7278         rtx to rtx_insn *.
7279         (struct minipool_node): Likewise for field "insn".
7280         (dump_minipool): Likewise for param "scan".
7281         (create_fix_barrier): Likewise for local "from".  Strengthen local
7282         "label" from rtx to rtx_code_label *.
7283         (push_minipool_barrier): Strengthen param "insn" from rtx to
7284         rtx_insn *.
7285         (push_minipool_fix): Likewise.
7286         (note_invalid_constants): Likewise.
7287         (thumb2_reorg): Likewise for local "insn".
7288         (arm_reorg): Likewise.
7289         (thumb2_final_prescan_insn): Likewise for param
7290         "insn" and local "first_insn".
7291         (arm_final_prescan_insn): Likewise for param "insn" and locals
7292         "start_insn", "this_insn".
7293         (arm_debugger_arg_offset): Likewise for param "insn".
7294         (thumb1_emit_multi_reg_push): Likewise for return type and local
7295         "insn".
7296         (thumb1_final_prescan_insn): Likewise for param "insn".
7297         (thumb_far_jump_used_p): Likewise for local "insn".
7298         (thumb1_expand_prologue): Likewise.
7299         (arm_expand_epilogue_apcs_frame): Likewise.
7300         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
7301         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
7302         from rtx to rtx_code_label *.
7303         (arm_split_atomic_op): Likewise for local "label".
7304         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
7305
7306 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7307
7308         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
7309         first param from rtx to rtx_insn *.
7310         (arc_verify_short): Likewise.
7311         (arc_short_long): Likewise.
7312         (arc_need_delay): Likewise.
7313
7314         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
7315         "target_insn".
7316         (arc_ccfsm_advance): Likewise for param "insn" and locals
7317         "start_insn", "this_insn".
7318         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
7319         (arc_ccfsm_post_advance): Likewise for param "insn".
7320         (arc_next_active_insn): Likewise for return type and param "insn".
7321         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
7322         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
7323         (output_short_suffix): Likewise for local "insn".
7324         (arc_final_prescan_insn): Likewise for param "insn".  Remove
7325         now-redundant checked cast.
7326         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
7327         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
7328         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
7329         for use where lc_set became an insn.
7330         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
7331         rtx to rtx_insn *.
7332         (arc_get_insn_variants): Likewise for local "prev".
7333         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
7334         "next".
7335         (arc_predicate_delay_insns): Likewise for local "insn".
7336         (arc_pad_return): Likewise for local "prev".  For now, add a
7337         checked cast when extracting the insn from "final_sequence".
7338         (arc_short_long): Likewise for param "insn".
7339         (arc_need_delay): Likewise for param "insn" and local "next".
7340         (arc_label_align): Likewise for locals "prev", "next".
7341
7342 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7343
7344         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
7345         "insn" from rtx to rtx_insn *.
7346         (alpha_gp_save_rtx): Likewise for local "seq".
7347         (alpha_instantiate_decls): Likewise for local "top".
7348         (get_some_local_dynamic_name): Likewise for local "insn".
7349         (alpha_does_function_need_gp): Likewise.
7350         (set_frame_related_p): Likewise for return type and for locals
7351         "seq" and "insn".
7352         (emit_frame_store_1): Likewise for local "insn".
7353         (alpha_expand_prologue): Likewise for locals "insn", "seq".
7354         (alpha_end_function): Likewise for local "insn".
7355         (alpha_output_mi_thunk_osf): Likewise.
7356         (alphaev4_insn_pipe): Likewise for param "insn".
7357         (alphaev5_insn_pipe): Likewise.
7358         (alphaev4_next_group): Likewise for return type and param 1
7359         "insn".
7360         (alphaev5_next_group): Likewise.
7361         (alpha_align_insns_1): Likewise for return type and param 1 of
7362         callback param "next_group", and for locals "i", "next", "prev",
7363         "where", "where2", "insn".
7364
7365 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
7366
7367         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
7368         rather than modifying the stmt.
7369
7370 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7371
7372         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
7373         cgraph_state conversion.
7374
7375 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7376
7377         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7378         Strengthen local "insns" from rtx to rtx_insn *.
7379         (aarch64_set_frame_expr): Likewise for local "insn".
7380         (aarch64_save_or_restore_fprs): Likewise.
7381         (aarch64_save_or_restore_callee_save_registers): Likewise.
7382         (aarch64_expand_prologue): Likewise.
7383         (aarch64_expand_epilogue): Likewise.
7384         (aarch64_output_mi_thunk): Likewise.
7385         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
7386         "label2" from rtx to rtx_code_label *.
7387         (aarch64_split_atomic_op): Likewise for local "label".
7388
7389 2014-08-25  Martin Liska  <mliska@suse.cz>
7390
7391         * cgraph.h (symtab_node):
7392         (bool needed_p (void)): created from decide_is_symbol_needed
7393         (bool referred_to_p (void)): created from referred_to_p
7394         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
7395         * cgraph.h (cgraph_node):
7396         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
7397         (void expand (void)): created from expand_function
7398         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
7399         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
7400         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
7401         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
7402         * cgraph.h (varpool_node):
7403         (static void add (tree decl): created from varpool_add_new_variable
7404         * cgraph.h (cgraph_edge):
7405         void remove (void);
7406         (void remove_caller (void)): created from cgraph_edge_remove_caller
7407         (void remove_callee (void)): created from cgraph_edge_remove_callee
7408         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
7409           created from cgraph_set_call_stmt
7410         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
7411         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
7412         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
7413           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
7414         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
7415           created from cgraph_speculative_call_info
7416         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
7417           int freq_scale, bool update_original)): created from cgraph_clone_edge
7418         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
7419         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
7420         (bool recursive_p (void)): created from cgraph_edge_recursive_p
7421         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
7422         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
7423         (static void rebuild_references (void)): created from cgraph_rebuild_references
7424         * cgraph.h (symbol_table):
7425         (create_reference): renamed from add_reference
7426         (maybe_create_reference): renamed from maybe_add_reference
7427         (void register_symbol (symtab_node *node)): new function
7428         (void clear_asm_symbols (void)): new function
7429         (void unregister (symtab_node *node)): new function
7430         (void release_symbol (cgraph_node *node, int uid)): new function
7431         (cgraph_node * allocate_cgraph_symbol (void)): new function
7432         (void initialize (void)): created from cgraph_init
7433         (symtab_node *first_symbol (void)):new function
7434         (asm_node *first_asm_symbol (void)):new function
7435         (symtab_node *first_defined_symbol (void)):new function
7436         (varpool_node *first_variable (void)):new function
7437         (varpool_node *next_variable (varpool_node *node)):new function
7438         (varpool_node *first_static_initializer (void)):new function
7439         (varpool_node *next_static_initializer (varpool_node *node)):new function
7440         (varpool_node *first_defined_variable (void)):new function
7441         (varpool_node *next_defined_variable (varpool_node *node)):new function
7442         (cgraph_node *first_defined_function (void)):new function
7443         (cgraph_node *next_defined_function (cgraph_node *node)):new function
7444         (cgraph_node *first_function (void)):new function
7445         (cgraph_node *next_function (cgraph_node *node)):new function
7446         (cgraph_node *first_function_with_gimple_body (void)):new function
7447         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
7448         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
7449           created from symtab_remove_unreachable_nodes
7450         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
7451         (void process_new_functions (void)): created from cgraph_process_new_functions
7452         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
7453         (bool output_variables (void)): created from varpool_node::output_variables
7454         (void output_asm_statements (void)): created from output_asm_statements
7455         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
7456         (void compile (void)): created from compile
7457         (void output_weakrefs (void)): created from output_weakrefs
7458         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
7459         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
7460           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
7461         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
7462         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
7463           created from cgraph_next_function_with_gimple_body
7464         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
7465           created from cgraph_remove_edge_removal_hook
7466         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
7467           created from cgraph_add_node_removal_hook
7468         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
7469           created from cgraph_remove_node_removal_hook
7470         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
7471           created from varpool_add_node_removal_hook
7472         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
7473           created from varpool_remove_node_removal_hook
7474         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
7475           created from cgraph_add_function_insertion_hook
7476         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
7477           created from cgraph_remove_function_insertion_hook
7478         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
7479           created from varpool_add_variable_insertion_hook
7480         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
7481           created from varpool_remove_variable_insertion_hook
7482         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
7483           created from cgraph_add_edge_duplication_hook
7484         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
7485           created from cgraph_remove_edge_duplication_hook
7486         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
7487           created from cgraph_add_node_duplication_hook
7488         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
7489           created from cgraph_remove_node_duplication_hook
7490         (void call_edge_removal_hooks (cgraph_edge *e)):
7491           created from cgraph_call_edge_removal_hooks
7492         (void call_cgraph_insertion_hooks (cgraph_node *node)):
7493           created from call_function_insertion_hooks 
7494         (void call_cgraph_removal_hooks (cgraph_node *node)):
7495           created from cgraph_call_node_removal_hooks 
7496         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
7497           created from cgraph_node::call_duplication_hooks 
7498         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
7499           created from cgraph_call_edge_duplication_hooks
7500         (void call_varpool_removal_hooks (varpool_node *node)):
7501           created from varpool_call_node_removal_hooks
7502         (void call_varpool_insertion_hooks (varpool_node *node)):
7503           created from varpool_call_variable_insertion_hooks
7504         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
7505           created from insert_to_assembler_name_hash
7506         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
7507           created from unlink_from_assembler_name_hash
7508         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
7509           created from symtab_prevail_in_asm_name_hash
7510         (void symtab_initialize_asm_name_hash (void)):
7511           created from symtab_initialize_asm_name_hash
7512         (void change_decl_assembler_name (tree decl, tree name)):
7513           created from change_decl_assembler_name
7514         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
7515         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
7516           created from decl_assembler_name_hash
7517         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
7518           created from decl_assembler_name_equal
7519         (static hashval_t hash_node_by_assembler_name (const void *p)):
7520           created from hash_node_by_assembler_name
7521         (static int eq_assembler_name (const void *p1, const void *p2)):
7522           created from eq_assembler_name
7523
7524 2014-08-25  Marek Polacek  <polacek@redhat.com>
7525
7526         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
7527
7528 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
7529
7530         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
7531         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
7532         SWI1248_AVX512BW mode iterator.
7533
7534 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
7535
7536         PR target/62111
7537         * config/sh/predicates.md (general_extend_operand): Disable
7538         TRUNCATE before reload completes.
7539
7540 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
7541
7542         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
7543
7544 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
7545
7546         PR target/61996
7547         * config/sh/sh.opt (musermode): Allow negative form.
7548         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
7549         targets that don't support it.
7550         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
7551         Document -mno-usermode option.
7552
7553 2014-08-24  Kito Cheng  <kito@0xlab.org>
7554
7555         * system.h (CALLER_SAVE_PROFITABLE): Poison.
7556         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
7557         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
7558         * doc/tm.texi: Regenerate.
7559
7560 2014-08-24  Kito Cheng  <kito@0xlab.org>
7561
7562         * ira.c: Fix typo in comment.
7563
7564 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
7565
7566         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
7567         Deprecate c++1y. Change language to reflect greater confidence in C++14.
7568
7569 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
7570
7571         PR target/62038
7572         * config/pa/pa.c (pa_output_function_epilogue): Don't set
7573         last_address when the current function is a thunk.
7574         (pa_asm_output_mi_thunk): When we don't have named sections or they
7575         are not being used, check that thunk can reach the stub table with a
7576         short branch.
7577
7578 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7579
7580         * web.c (union_match_dups): Strengthen param "insn" from rtx to
7581         rtx_insn *.
7582         (pass_web::execute): Likewise for local "insn".
7583
7584 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7585
7586         * var-tracking.c (struct micro_operation_def): Strengthen field
7587         "insn" from rtx to rtx_insn *.
7588         (struct emit_note_data_def): Likewise.
7589         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
7590         (vt_stack_adjustments): Likewise for local "insn".
7591         (adjust_insn): Likewise for param "insn".
7592         (val_store): Likewise.
7593         (val_resolve): Likewise.
7594         (struct count_use_info): Likewise for field "insn".
7595         (log_op_type): Likewise for param "insn".
7596         (reverse_op): Likewise.
7597         (prepare_call_arguments): Likewise.
7598         (add_with_sets):  The initial param takes an insn, but we can't
7599         yet strengthen it from rtx to rtx_insn * since it's used as a
7600         cselib_record_sets_hook callback.  For now rename initial param
7601         from "insn" to "uncast_insn", and introduce a local "insn" of
7602         the stronger rtx_insn * type, with a checked cast.
7603         (compute_bb_dataflow): Strengthen local "insn" from rtx to
7604         rtx_insn *.
7605         (emit_note_insn_var_location): Likewise.
7606         (emit_notes_for_changes): Likewise.
7607         (emit_notes_for_differences): Likewise.
7608         (next_non_note_insn_var_location): Likewise for return type and
7609         for param "insn".
7610         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
7611         (vt_initialize): Likewise for local "insn".
7612         (delete_debug_insns): Likewise for locals "insn" and "next".
7613
7614 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7615
7616         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
7617         rtx_insn *.
7618         (mark_constant_pool): Likewise for local "insn".
7619
7620 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7621
7622         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
7623         rtx to rtx_insn *.
7624         (dead_debug_promote_uses): Likewise.
7625         (dead_debug_insert_temp): Likewise.
7626
7627 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7628
7629         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
7630         from const_rtx to const rtx_insn *.
7631         (store_killed_after): Likewise.  Strengthen locals "last", "act"
7632         from rtx to rtx_insn *.
7633         (store_killed_before): Strengthen param "insn" from const_rtx to
7634         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
7635         (find_moveable_store): Strengthen param "insn" from rtx to
7636         rtx_insn *.
7637         (compute_store_table): Likewise for local "insn".
7638         (insert_insn_start_basic_block): Likewise for param "insn" and
7639         locals "prev", "before", "insn".
7640         (insert_store): For now, add a checked cast to rtx_insn * on the
7641         result of gen_move_insn.
7642         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
7643         to rtx_insn *.
7644         (replace_store_insn): Likewise.  For now, add a checked cast to
7645         rtx_insn * on the result of gen_move_insn.
7646
7647 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7648
7649         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
7650         rtx_insn *.
7651         (expand_sjlj_dispatch_table): Likewise.
7652
7653 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7654
7655         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
7656         "insn" from rtx to rtx_insn *.
7657
7658 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7659
7660         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
7661         "insn" from rtx to rtx_insn *.
7662         (dup_block_and_redirect): Likewise for param 3 "before".
7663
7664         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
7665         from rtx to rtx_insn *.
7666         (move_insn_for_shrink_wrap): Likewise.
7667         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
7668         (dup_block_and_redirect): Likewise for param "before" and local
7669         "insn".
7670         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
7671         "end".
7672         (convert_to_simple_return): Likewise for local "start".
7673
7674         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
7675         Strengthen local "insn" from rtx to rtx_insn *, for use when
7676         invoking requires_stack_frame_p.
7677
7678 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7679
7680         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
7681         rtx_insn *.
7682         (speculate_expr): Likewise for locals "orig_insn_rtx",
7683         "spec_insn_rtx".
7684         (eq_transformed_insns): Likewise for locals "i1", "i2".
7685         (check_for_new_jump): Likewise for return type and local "end".
7686         (find_new_jump): Likewise for return type and local "jump".
7687         (sel_split_edge): Likewise for local "jump".
7688         (sel_create_recovery_block): Likewise.
7689         (sel_redirect_edge_and_branch_force): Likewise.
7690         (sel_redirect_edge_and_branch): Likewise.
7691
7692 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7693
7694         * sel-sched.c (substitute_reg_in_expr): Strengthen local
7695         "new_insn" from rtx to rtx_insn *.
7696         (create_insn_rtx_with_rhs): Likewise for return type and for local
7697         "insn_rtx".
7698         (create_insn_rtx_with_lhs): Likewise.
7699         (create_speculation_check): Likewise for local "insn_rtx".
7700         (implicit_clobber_conflict_p): Likewise for local "insn".
7701         (get_expr_cost): Likewise.
7702         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
7703         (move_cond_jump): Likewise for locals "next", "prev", "link",
7704         "head", "from", "to".
7705
7706 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7707
7708         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
7709         "next" from rtx to rtx_insn *.
7710         (find_conditional_protection): Likewise for local "next".
7711         (is_conditionally_protected): Likewise for local "insn1".
7712         (is_pfree): Likewise for locals "insn1", "insn2".
7713
7714 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7715
7716         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
7717         from rtx to rtx_insn *.
7718
7719         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
7720         locals "insn1", "insn2" from rtx to rtx_insn *.
7721         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
7722         locals "insn", "prev", "last_jump", "next_tail".
7723         (schedule_ebb): Likewise for params "head", "tail".
7724         (schedule_ebbs): Likewise for locals "tail", "head".
7725
7726         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
7727         to rtx_insn on "last_insn" in one of the invocations of
7728         schedule_ebb.
7729
7730 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7731
7732         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
7733         "elem", "insn" from rtx to rtx_insn *.
7734         (change_spec_dep_to_hard): Likewise.
7735         (get_back_and_forw_lists): Likewise for local "con".
7736         (sd_add_dep): Likewise for locals "elem", "insn".
7737         (sd_resolve_dep): Likewise for locals "pro", "con".
7738         (sd_unresolve_dep): Likewise.
7739         (sd_delete_dep): Likewise.
7740         (chain_to_prev_insn): Likewise for local "pro".
7741         (find_inc): Likewise for locals "pro", "con".
7742
7743 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7744
7745         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
7746         to rtx_insn *.
7747         (reg_set_between_p): Strengthen local "insn" from const_rtx to
7748         const rtx_insn *.
7749         (modified_between_p): Strengthen local "insn" from rtx to
7750         rtx_insn *.
7751         (remove_reg_equal_equiv_notes_for_regno): Likewise.
7752         (keep_with_call_p): Strengthen local "i2" from const_rtx to
7753         const rtx_insn *.
7754
7755 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7756
7757         * resource.c (next_insn_no_annul): Strengthen local "next" from
7758         rtx to rtx_insn *.
7759         (mark_referenced_resources): Likewise for local "insn".
7760
7761 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7762
7763         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
7764         to rtx_insn *.
7765         (find_reloads): Likewise for param 1.
7766         (subst_reloads): Likewise for sole param.
7767         (find_equiv_reg): Likwise for param 2.
7768         (regno_clobbered_p): Likwise for param 2.
7769         (reload): Likewise for param 1.
7770
7771         * caller-save.c (save_call_clobbered_regs): Strengthen local
7772         "insn" from rtx to rtx_insn *.
7773         (insert_one_insn): Likewise for local "insn".
7774
7775         * reload.c (this_insn): Likewise for this global.
7776         (find_reloads): Likewise for param "insn".
7777         (find_reloads_toplev): Likewise.
7778         (find_reloads_address): Likewise.
7779         (subst_reg_equivs): Likewise.
7780         (update_auto_inc_notes): Likewise.
7781         (find_reloads_address_1): Likewise.
7782         (find_reloads_subreg_address): Likewise.
7783         (subst_reloads): Likewise.
7784         (find_equiv_reg): Likewise, also for local "p".
7785         (regno_clobbered_p): Likewise for param "insn".
7786
7787         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
7788         array.
7789         (spill_reg_store): Likewise for the elements of this array.
7790         (remove_init_insns): Likewise for local "equiv_insn".
7791         (will_delete_init_insn_p): Likewise for param "insn".
7792         (reload): Likewise for param ""first" and local "insn".
7793         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
7794         rtx_insn *.
7795         (calculate_elim_costs_all_insns): Likewise.
7796         (delete_caller_save_insns): Likewise.
7797         (spill_failure): Likewise for param "insn".
7798         (delete_dead_insn): Likewise.
7799         (set_label_offsets): Likewise.
7800         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
7801         "prev_insn".
7802         (elimination_costs_in_insn): Likewise for param "insn".
7803         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
7804         when referring to an insn.
7805         (set_initial_label_offsets): Likewise.
7806         (set_offsets_for_label): Strengthen param "insn" from rtx to
7807         rtx_insn *.
7808         (init_eliminable_invariants): Likewise for param "first" and local
7809         "insn".
7810         (fixup_eh_region_note): Likewise for param "insn".
7811         (reload_as_needed): Likewise for locals "prev", "insn",
7812         "old_next", "old_prev", "next".
7813         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
7814         "last".
7815         (reload_inheritance_insn): Strengthen elements of this array from
7816         rtx to rtx_insn *.
7817         (failed_reload): Likewise for param "insn".
7818         (choose_reload_regs): Likewise for local "insn".  Replace use of
7819         NULL_RTX with NULL when referring to an insn.
7820         (input_reload_insns): Strengthen elements of this array from rtx
7821         to rtx_insn *.
7822         (other_input_address_reload_insns): Likewise for this global.
7823         (other_input_reload_insns): Likewise for this global.
7824         (input_address_reload_insns): Likwise for the elements of this
7825         array.
7826         (inpaddr_address_reload_insns): Likwise for the elements of this
7827         array.
7828         (output_reload_insns): Likewise for the elements of this array.
7829         (output_address_reload_insns): Likewise for the elements of this
7830         array.
7831         (outaddr_address_reload_insns): Likewise for the elements of this
7832         array.
7833         (operand_reload_insns): Likewise for this global.
7834         (other_operand_reload_insns): Likewise for this global.
7835         (other_output_reload_insns): Likewise for the elements of this
7836         array.
7837         (new_spill_reg_store): Likewise for the elements of this
7838         array.
7839         (emit_input_reload_insns): Likewise for locals "insn", "temp".
7840         Strengthen local "where" from rtx * to rtx_insn **.
7841         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
7842         from rtx to rtx_insn *.
7843         (do_input_reload): Likewise for local "insn".
7844         (do_output_reload): Likewise for local "insn".
7845         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
7846         (emit_insn_if_valid_for_reload): Likewise for return type and local
7847         "last".  Add checked cast to rtx_insn when returning "insn" since
7848         this has been through emit_insn.
7849         (gen_reload): Strengthen return type and locals "last", "insn", "set"
7850         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
7851         returning "insn" since it's been through
7852         emit_insn_if_valid_for_reload at this point.
7853         (delete_output_reload): Strengthen param "insn" and locals
7854         "output_reload_insn", "i2" from rtx to rtx_insn *.
7855         (delete_address_reloads): Likewise for params "dead_insn",
7856         "current_insn" and locals "prev", "next".
7857         (delete_address_reloads_1): Likewise for params "dead_insn",
7858         "current_insn" and locals "prev", "i2".
7859         (inc_for_reload): Likewise for locals "last", "add_insn".
7860         (add_auto_inc_notes): Strengthen param "insn" from rtx to
7861         rtx_insn *.
7862
7863         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
7864         param of this duplicate of the prototype from reload.h
7865
7866 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7867
7868         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
7869         rtx to rtx_insn *.
7870         (regstat_bb_compute_calls_crossed): Likewise.
7871
7872 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7873
7874         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
7875         to rtx_insn *.
7876         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
7877         with an insn.
7878         (regrename_analyze): Strengthen local "insn" from rtx to
7879         rtx_insn *.
7880         (scan_rtx_reg): Likewise for param "insn".
7881         (scan_rtx_address): Likewise.
7882         (scan_rtx): Likewise.
7883         (restore_operands): Likewise.
7884         (record_out_operands): Likewise.
7885         (build_def_use): Likewise for local "insn".  Replace use of
7886         NULL_RTX with NULL when dealing with an insn.
7887
7888 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7889
7890         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
7891         * reginfo.c (reg_scan): Likewise, also for local "insn".
7892         (reg_scan_mark_refs): Likewise for param "insn".
7893         (init_subregs_of_mode): Likewise for local "insn".
7894
7895 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7896
7897         * regcprop.c (struct queued_debug_insn_change): Strengthen field
7898         "insn" from rtx to rtx_insn *.
7899         (replace_oldest_value_reg): Likewise for param "insn".
7900         (replace_oldest_value_addr): Likewise.
7901         (replace_oldest_value_mem): Likewise.
7902         (apply_debug_insn_changes): Likewise for local "last_insn".
7903         (copyprop_hardreg_forward_1): Likewise for local "insn".
7904
7905 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7906
7907         * reg-stack.c (next_flags_user): Strengthen return type and param
7908         "insn" from rtx to rtx_insn *.
7909         (straighten_stack): Likewise for param "insn".
7910         (check_asm_stack_operands): Likewise.
7911         (remove_regno_note): Likewise.
7912         (emit_pop_insn): Likewise for return type, param "insn", local
7913         "pop_insn".
7914         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
7915         "limit" from rtx to rtx_insn *.
7916         (swap_to_top): Likewise for param "insn".
7917         (move_for_stack_reg): Likewise.
7918         (move_nan_for_stack_reg): Likewise.
7919         (swap_rtx_condition): Likewise.
7920         (compare_for_stack_reg): Likewise.
7921         (subst_all_stack_regs_in_debug_insn): Likewise.
7922         (subst_stack_regs_pat): Likewise, and local "insn2".
7923         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
7924         rtx_insn *.
7925         (subst_stack_regs): Likewise.
7926         (change_stack): Likewise.
7927         (convert_regs_1): Likewise for locals "insn", "next".
7928
7929 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7930
7931         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
7932         rtx_insn *.
7933         (combine_set_extension): Likewise for param "curr_insn".
7934         (transform_ifelse): Likewise for param "def_insn".
7935         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
7936         from vec<rtx> * to vec<rtx_insn *> *.
7937         (is_cond_copy_insn): Likewise for param "insn".
7938         (struct ext_state): Strengthen the four vec fields from vec<rtx>
7939         to vec<rtx_insn *>.
7940         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
7941         local "def_insn" from rtx to rtx_insn *.
7942         (get_sub_rtx): Likewise for param "def_insn".
7943         (merge_def_and_ext): Likewise.
7944         (combine_reaching_defs): Likewise.
7945         (add_removable_extension): Likewise for param "insn".
7946         (find_removable_extensions): Likewise for local "insn".
7947         (find_and_remove_re): Likewise for locals "curr_insn" and
7948         "def_insn".  Strengthen locals "reinsn_del_list" and
7949         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
7950
7951 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7952
7953         * recog.c (split_insn): Strengthen param "insn" and locals
7954         "first", "last" from rtx to rtx_insn *.
7955         (split_all_insns): Likewise for locals "insn", "next".
7956         (split_all_insns_noflow): Likewise.
7957
7958 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7959
7960         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
7961         const rtx_insn *.
7962         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
7963         (debug_rtx_find): Likewise for param 1 "x".
7964
7965         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
7966         const_rtx to const rtx_insn *.  Likewise for local "insn".
7967         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
7968         (debug_rtx_find): Likewise for param 1 "x".
7969         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
7970         from const_rtx to const rtx_insn * within the appropriate cases of
7971         the switch statement.
7972
7973         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
7974         Strengthen local "insns" from rtx to rtx_insn * since this is
7975         passed to a call to debug_rtx_list.
7976
7977 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7978
7979         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
7980         to rtx_insn *.
7981
7982         * function.c (stack_protect_epilogue): Add checked cast to
7983         rtx_insn for now when invoking predict_insn_def.
7984
7985         * predict.c (predict_insn): Strengthen param "insn" from rtx to
7986         rtx_insn *.
7987         (predict_insn_def): Likewise.
7988         (rtl_predict_edge): Likewise for local "last_insn".
7989         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
7990         const rtx_insn *.
7991         (combine_predictions_for_insn): Strengthen param "insn" from rtx
7992         to rtx_insn *.
7993         (bb_estimate_probability_locally): Likewise for local "last_insn".
7994         (expensive_function_p): Likewise for local "insn".
7995
7996         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
7997         local "jmp", since this is used when invoking predict_insn_def.
7998
7999 2014-08-22  Marek Polacek  <polacek@redhat.com>
8000
8001         PR c++/62199
8002         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
8003
8004 2014-08-22  Marek Polacek  <polacek@redhat.com>
8005
8006         PR c/61271
8007         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
8008         a comparison in parens.
8009         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
8010         in parens.
8011
8012 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8013
8014         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
8015         rtx_insn *.
8016
8017         * cprop.c (fis_get_condition): Likewise.
8018
8019         * postreload.c (reload_cse_regs): Likewise for param "first".
8020         (reload_cse_simplify): Likewise for param "insn".
8021         (reload_cse_regs_1): Likewise for local "insn".
8022         (reload_cse_simplify_set): Likewise for param "insn".
8023         (reload_cse_simplify_operands): Likewise.
8024         (struct reg_use): Likewise for field "insn".
8025         (reload_combine_purge_insn_uses): Likewise for param "insn".
8026         (fixup_debug_insns): Likewise for params "from", "to" and local
8027         "insn".
8028         (try_replace_in_use): Likewise for local "use_insn".
8029         (reload_combine_recognize_const_pattern): Likewise for param
8030         "insn" and locals "add_moved_after_insn", "use_insn".
8031         (reload_combine_recognize_pattern): Likewise for param "insn" and
8032         local "prev".
8033         (reload_combine): Likewise for locals "insn", "prev".
8034         (reload_combine_note_use): Likewise for param "insn".
8035         (move2add_use_add2_insn): Likewise.
8036         (move2add_use_add3_insn): Likewise.
8037         (reload_cse_move2add): Likewise, also for local "next".
8038         (move2add_note_store): Likewise for local "insn".
8039
8040 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8041
8042         * postreload-gcse.c (struct occr): Strengthen field "insn" from
8043         rtx to rtx_insn *.
8044         (struct unoccr): Likewise.
8045         (struct modifies_mem): Likewise.
8046         (alloc_mem): Likewise for local "insn".
8047         (insert_expr_in_table): Likewise for param "insn".
8048         (dump_expr_hash_table_entry): Likewise for local "insn".
8049         (oprs_unchanged_p): Likewise for param "insn".
8050         (load_killed_in_block_p): Likewise for local "setter".
8051         (record_last_reg_set_info): Likewise for param "insn".
8052         (record_last_reg_set_info_regno): Likewise.
8053         (record_last_mem_set_info): Likewise.
8054         (record_last_set_info): Likewise for local "last_set_insn".
8055         (record_opr_changes): Likewise for param "insn".
8056         (hash_scan_set): Likewise.
8057         (compute_hash_table): Likewise for local "insn".
8058         (get_avail_load_store_reg): Likewise for param "insn".
8059         (eliminate_partially_redundant_load): Likewise, also for locals
8060         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
8061         RTX for insns.
8062         (eliminate_partially_redundant_loads): Likewise for local "insn".
8063
8064 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8065
8066         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
8067         rtx to rtx_insn *.
8068         (expand_binop): Likewise for locals "entry_last", "last", "insns"
8069         (expand_twoval_unop): Likewise for locals entry_last", "last".
8070         (expand_twoval_binop): Likewise.
8071         (expand_twoval_binop_libfunc): Likewise for local "insns".
8072         (widen_leading): Likewise for local "last".
8073         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
8074         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
8075         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
8076         (expand_parity): Likewise for locals "last" and "seq".
8077         (expand_ffs): Likewise for local "seq".  Strengthen local
8078         "nonzero_label" from rtx to rtx_code_label *.
8079         (expand_absneg_bit): Strengthen local "insns" from rtx to
8080         rtx_insn *.
8081         (expand_unop_direct): Likewise for local "last".
8082         (expand_unop): Likewise for locals "last", "insns".
8083         (expand_abs_nojump): Likewise for local "last".
8084         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
8085         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
8086         rtx_insn *.
8087         (expand_copysign_absneg): Strengthen local "label" from rtx to
8088         rtx_code_label *.
8089         (expand_copysign_bit): Strengthen local "insns" from rtx to
8090         rtx_insn *.
8091         (struct no_conflict_data): Likewise for fields "first", "insn".
8092         (emit_libcall_block_1): Likewise for param "insns" and locals
8093         "next", "last", "insn".
8094         (emit_libcall_block): For now, add a checked cast to rtx_insn *
8095         on "insns" when invoking emit_libcall_block_1.  Ultimately we
8096         want to strengthen insns itself.
8097         (prepare_cmp_insn): Strengthen local "last" from rtx to
8098         rtx_insn *.
8099         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
8100         (prepare_float_lib_cmp): Likewise for local "insns".
8101         (emit_conditional_move): Likewise for local "last".
8102         (emit_conditional_add): Likewise.
8103         (have_sub2_insn): Likewise for local "seq".
8104         (expand_float): Likewise for local "insns".  Strengthen locals
8105         "label", "neglabel" from rtx to rtx_code_label *.
8106         (expand_fix): Likewise for locals "last", "insn", "insns" (to
8107         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
8108         (expand_fixed_convert): Likewise for local "insns" (to
8109         rtx_insn *).
8110         (expand_sfix_optab): Likewise for local "last".
8111         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
8112         to rtx_code_label *.
8113         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
8114         from rtx to rtx_insn *.
8115         (expand_atomic_fetch_op): Likewise for local "insn".
8116         (maybe_legitimize_operand_same_code): Likewise for local "last".
8117         (maybe_legitimize_operands): Likewise.
8118
8119 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8120
8121         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
8122         "insn" from rtx to rtx_insn *.
8123         (ps_rtl_insn): Likewise for return type.
8124         (doloop_register_get): Likewise for params "head", "tail" and
8125         locals "insn", "first_insn_not_to_check".
8126         (schedule_reg_move): Likewise for local "this_insn".
8127         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
8128         of gen_move_insn for now.
8129         (reset_sched_times): Strengthen local "insn" from rtx to
8130         rtx_insn *.
8131         (permute_partial_schedule): Likewise.
8132         (duplicate_insns_of_cycles): Likewise for local "u_insn".
8133         (dump_insn_location): Likewise for param "insn".
8134         (loop_canon_p): Likewise for local "insn".
8135         (sms_schedule): Likewise.
8136         (print_partial_schedule): Likewise.
8137         (ps_has_conflicts): Likewise.
8138
8139 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8140
8141         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
8142         "tailp" from rtx * to rtx_insn **.
8143
8144         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
8145         from rtx to rtx_insn *.
8146         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
8147         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
8148         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
8149         rtx to rtx_insn *.
8150         * modulo-sched.c (const_iteration_count): Strengthen return type
8151         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
8152         use of NULL_RTX with NULL when working with insns.
8153         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
8154         to rtx_insn *.
8155         (sms_schedule): Likewise.
8156         * sched-rgn.c (init_ready_list): Likewise, also for locals
8157         "src_head" and "src_next_tail".
8158         (compute_block_dependences): Likewise.
8159         (free_block_dependencies): Likewise.
8160         (debug_rgn_dependencies): Likewise.
8161         (free_rgn_deps): Likewise.
8162         (compute_priorities): Likewise.
8163         (schedule_region): Likewise.
8164         * sel-sched.c (find_ebb_boundaries): Likewise.
8165
8166         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
8167         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
8168
8169 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8170
8171         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
8172         from rtx to rtx_insn *.
8173         (new_seginfo): Likewise for param "insn".
8174         (create_pre_exit): Likewise for locals "last_insn",
8175         "before_return_copy", "return_copy".
8176         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
8177         "mode_set".
8178
8179 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8180
8181         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
8182         from rtx to rtx_insn *.
8183         (lra_push_insn): Likewise for 1st param.
8184         (lra_push_insn_and_update_insn_regno_info): Likewise.
8185         (lra_pop_insn): Likewise for return type.
8186         (lra_invalidate_insn_data): Likewise for 1st param.
8187         (lra_set_insn_deleted): Likewise.
8188         (lra_delete_dead_insn): Likewise.
8189         (lra_process_new_insns): Likewise for first 3 params.
8190         (lra_set_insn_recog_data): Likewise for 1st param.
8191         (lra_update_insn_recog_data): Likewise.
8192         (lra_set_used_insn_alternative): Likewise.
8193         (lra_invalidate_insn_regno_info): Likewise.
8194         (lra_update_insn_regno_info): Likewise.
8195         (lra_former_scratch_operand_p): Likewise.
8196         (lra_eliminate_regs_1): Likewise.
8197         (lra_get_insn_recog_data): Likewise.
8198
8199         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
8200         rtx to rtx_insn *.
8201
8202         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
8203         "mv1" and "mv2".
8204         (substitute_within_insn): New.
8205         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
8206         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
8207         Replace call to "substitute" with call to substitute_within_insn.
8208
8209         * lra-constraints.c (curr_insn): Strengthen from rtx to
8210         rtx_insn *.
8211         (get_equiv_with_elimination): Likewise for param "insn".
8212         (match_reload): Strengthen params "before" and "after" from rtx *
8213         to rtx_insn **.
8214         (emit_spill_move): Likewise for return type.  Add a checked cast
8215         to rtx_insn * on result of gen_move_insn for now.
8216         (check_and_process_move): Likewise for local "before".  Replace
8217         NULL_RTX with NULL when referring to insns.
8218         (process_addr_reg): Strengthen params "before" and "after" from
8219         rtx * to rtx_insn **.
8220         (insert_move_for_subreg): Likewise.
8221         (simplify_operand_subreg): Strengthen locals "before" and "after"
8222         from rtx to rtx_insn *.
8223         (process_address_1): Strengthen params "before" and "after" from
8224         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
8225         rtx to rtx_insn *.
8226         (process_address): Strengthen params "before" and "after" from
8227         rtx * to rtx_insn **.
8228         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
8229         (curr_insn_transform): Strengthen locals "before" and "after"
8230         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
8231         to insns.
8232         (loc_equivalence_callback): Update cast of "data", changing
8233         resulting type from rtx to rtx_insn *.
8234         (substitute_pseudo_within_insn): New.
8235         (inherit_reload_reg): Strengthen param "insn" from rtx to
8236         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
8237         NULL when referring to insns.  Add a checked cast to rtx_insn *
8238         when using usage_insn to invoke lra_update_insn_regno_info.
8239         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
8240         likewise for locals "restore", "save".  Add checked casts to
8241         rtx_insn * when using usage_insn to invoke
8242         lra_update_insn_regno_info and lra_process_new_insns.  Replace
8243         NULL_RTX with NULL when referring to insns.
8244         (split_if_necessary): Strengthen param "insn" from rtx to
8245         rtx_insn *.
8246         (update_ebb_live_info): Likewise for params "head", "tail" and local
8247         "prev_insn".
8248         (get_last_insertion_point): Likewise for return type and local "insn".
8249         (get_live_on_other_edges): Likewise for local "last".
8250         (inherit_in_ebb): Likewise for params "head", "tail" and locals
8251         "prev_insn", "next_insn", "restore".
8252         (remove_inheritance_pseudos): Likewise for local "prev_insn".
8253         (undo_optional_reloads): Likewise for local "insn".
8254
8255         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
8256         "insn".
8257         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
8258         insns.
8259         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
8260         rtx_insn *.
8261         (spill_pseudos): Likewise for local "insn".
8262         (init_elimination): Likewise.
8263         (process_insn_for_elimination): Likewise for param "insn".
8264
8265         * lra-lives.c (curr_insn): Likewise.;
8266
8267         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
8268         (remove_pseudos): Likewise for param "insn".
8269         (spill_pseudos): Likewise for local "insn".
8270         (lra_final_code_change): Likewise for locals "insn", "curr".
8271
8272         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
8273         (lra_set_insn_deleted): Likewise.
8274         (lra_delete_dead_insn): Likewise, and for local "prev".
8275         (new_insn_reg): Likewise for param "insn".
8276         (lra_set_insn_recog_data): Likewise.
8277         (lra_update_insn_recog_data): Likewise.
8278         (lra_set_used_insn_alternative): Likewise.
8279         (get_insn_freq): Likewise.
8280         (invalidate_insn_data_regno_info): Likewise.
8281         (lra_invalidate_insn_regno_info): Likewise.
8282         (lra_update_insn_regno_info): Likewise.
8283         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
8284         vec<rtx_insn *>.
8285         (lra_push_insn_1): Strengthen param "insn" from rtx to
8286         rtx_insn *.
8287         (lra_push_insn): Likewise.
8288         (lra_push_insn_and_update_insn_regno_info): Likewise.
8289         (lra_pop_insn): Likewise for return type and local "insn".
8290         (push_insns): Likewise for params "from", "to", and local "insn".
8291         (setup_sp_offset): Likewise for params "from", "last" and locals
8292         "before", "insn".
8293         (lra_process_new_insns): Likewise for params "insn", "before",
8294         "after" and local "last".
8295         (struct sloc): Likewise for field "insn".
8296         (lra_former_scratch_operand_p): Likewise for param "insn".
8297         (remove_scratches): Likewise for locals "insn", "last".
8298         (check_rtl): Likewise for local "insn".
8299         (add_auto_inc_notes): Likewise for param "insn".
8300         (update_inc_notes): Likewise for local "insn".
8301         (lra): Replace NULL_RTX with NULL when referring to insn.
8302
8303 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8304
8305         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
8306         to rtx_insn *.
8307         (resolve_reg_notes): Likewise.
8308         (resolve_simple_move): Likewise for return type, param "insn", and
8309         locals "insns", "minsn".
8310         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
8311         (resolve_use): Likewise.
8312         (resolve_debug): Likewise.
8313         (find_decomposable_shift_zext): Likewise.
8314         (resolve_shift_zext): Likewise for return type, param "insn", and
8315         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
8316         (decompose_multiword_subregs): Likewise for local "insn",
8317         "orig_insn", "decomposed_shift", "end".
8318
8319 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8320
8321         * basic-block.h (basic_block split_edge_and_insert): Strengthen
8322         param "insns" from rtx to rtx_insn *.
8323
8324         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
8325         rtx to rtx_insn *.
8326         (struct iv_to_split): Likewise.
8327         (loop_exit_at_end_p): Likewise for local "insn".
8328         (split_edge_and_insert): Likewise for param "insns".
8329         (compare_and_jump_seq): Likewise for return type, param "cinsn",
8330         and locals "seq", "jump".
8331         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
8332         "branch_code"; update invocations of compare_and_jump_seq to
8333         eliminate NULL_RTX in favor of NULL.
8334         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
8335         rtx to rtx_insn *.
8336         (reset_debug_uses_in_loop): Likewise.
8337         (analyze_insn_to_expand_var): Likewise for param "insn".
8338         (analyze_iv_to_split_insn): Likewise.
8339         (analyze_insns_in_loop): Likewise for local "insn".
8340         (insert_base_initialization): Likewise for param
8341         "insn" and local "seq".
8342         (split_iv): Likewise for param "insn" and local "seq".
8343         (expand_var_during_unrolling): Likewise for param "insn".
8344         (insert_var_expansion_initialization): Likewise for local "seq".
8345         (combine_var_copies_in_loop_exit): Likewise.
8346         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
8347         "insn".
8348         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
8349         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
8350         "next".
8351
8352 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8353
8354         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
8355         rtx_insn *.
8356         (iv_analyze_result): Likewise.
8357         (iv_analyze_expr): Likewise.
8358         (biv_p): Likewise.
8359
8360         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
8361         local "def_insn" from rtx to rtx_insn *.
8362         (get_biv_step_1): Likewise for local "insn".
8363         (iv_analyze_expr): Likewise for param "insn".
8364         (iv_analyze_def): Likewise for local "insn".
8365         (iv_analyze_op): Likewise for param "insn".
8366         (iv_analyze): Likewise.
8367         (iv_analyze_result): Likewise.
8368         (biv_p): Likewise.
8369         (suitable_set_for_replacement): Likewise.
8370         (simplify_using_initial_values): Likewise for local "insn".
8371         (iv_number_of_iterations): Likewise for param "insn".
8372         (check_simple_exit): Add checked cast to rtx_insn when invoking
8373         iv_number_of_iterations for now (until get_condition is
8374         strengthened).
8375
8376         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
8377         "insn" from rtx to rtx_insn *.
8378         (analyze_insns_in_loop): Likewise for local "insn".
8379
8380 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8381
8382         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
8383         to rtx_insn *.
8384         (struct invariant): Likewise.
8385         (hash_invariant_expr_1): Likewise for param "insn".
8386         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
8387         (find_exits): Likewise for local "insn".
8388         (create_new_invariant): Likewise for param "insn".
8389         (check_dependencies): Likewise.
8390         (find_invariant_insn): Likewise.
8391         (record_uses): Likewise.
8392         (find_invariants_insn): Likewise.
8393         (find_invariants_bb): Likewise for local "insn".
8394         (get_pressure_class_and_nregs): Likewise for param "insn".
8395         (calculate_loop_reg_pressure): Likewise for local "insn".
8396
8397 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8398
8399         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
8400         to rtx_insn *.
8401         (add_test): Likewise for locals "seq", "jump".
8402         (doloop_modify): Likewise for locals "sequence", "jump_insn".
8403
8404 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8405
8406         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
8407         rtx_insn *.
8408         (rebuild_jump_labels_chain): Likewise for param "chain".
8409
8410         * cfgexpand.c (pass_expand::execute): Add checked cast to
8411         rtx_insn * when calling rebuild_jump_labels_chain in region where
8412         we know e->insns.r is non-NULL.
8413
8414         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
8415         rtx_insn *.
8416         (rebuild_jump_labels): Likewise.
8417         (rebuild_jump_labels_chain): Likewise for param "chain".
8418         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
8419         (init_label_info): Likewise for param "f".
8420         (maybe_propagate_label_ref): Likewise for params "jump_insn",
8421         "prev_nonjump_insn".
8422         (mark_all_labels): Likewise for param "f" and locals "insn",
8423         "prev_nonjump_insn".
8424
8425 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8426
8427         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
8428         from rtx to rtx_insn *insn.
8429         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
8430         (ira_add_allocno_copy): Likewise.
8431         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
8432         rtx to rtx_insn *.
8433         (ira_create_copy): Likewise.
8434         (ira_add_allocno_copy): Likewise.
8435         (create_bb_allocnos): Likewise for local "insn".
8436         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
8437         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
8438         process_regs_for_copy for rtx_insn * param.
8439         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
8440         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
8441         process_regs_for_copy for rtx_insn * param.
8442         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
8443         * ira-costs.c (record_reg_classes): Likewise for param "insn".
8444         (record_operand_costs): Likewise.
8445         (scan_one_insn): Likewise for return type, and for param "insn".
8446         (process_bb_for_costs): Likewise for local "insn".
8447         (process_bb_node_for_hard_reg_moves): Likewise.
8448         * ira-emit.c (struct move): Likewise for field "insn".
8449         (create_move): Eliminate use of NULL_RTX when dealing with an
8450         rtx_insn *.
8451         (emit_move_list): Strengthen return type and locals "result",
8452         "insn" from rtx to rtx_insn *insn.
8453         (emit_moves): Likewise for locals "insns", "tmp".
8454         (ira_emit): Likewise for local "insn".
8455         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
8456         "insn".
8457         (find_call_crossed_cheap_reg): Likewise.
8458         (process_bb_node_lives): Likewise for local "insn".
8459         * ira.c (decrease_live_ranges_number): Likewise.
8460         (compute_regs_asm_clobbered): Likewise.
8461         (build_insn_chain): Likewise.
8462         (find_moveable_pseudos): Likewise, also locals "def_insn",
8463         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
8464         to rtx_insn **.  Add a checked cast when assigning from
8465         "closest_use" into closest_uses array in a region where we know
8466         it's a non-NULL insn.
8467         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
8468         to rtx_insn *.
8469         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
8470         "last_interesting_insn", "uin".
8471         (move_unallocated_pseudos): Likewise for locals "def_insn",
8472         "move_insn", "newinsn".
8473
8474 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8475
8476         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
8477         Strengthen locals "done_label", "do_error" from rtx to
8478         rtx_code_label *.
8479         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
8480         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
8481         rtx_code_label *.
8482         (ubsan_expand_si_overflow_neg_check): Likewise for locals
8483         "done_label", "do_error" to rtx_code_label * and local  "last" to
8484         rtx_insn *.
8485         (ubsan_expand_si_overflow_mul_check): Likewise for locals
8486         "done_label", "do_error", "large_op0", "small_op0_large_op1",
8487         "one_small_one_large", "both_ops_large", "after_hipart_neg",
8488         "after_lopart_neg", "do_overflow", "hipart_different"  to
8489         rtx_code_label * and local  "last" to rtx_insn *.
8490
8491 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8492
8493         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
8494         "insn" and "move_insn" from rtx to rtx_insn *.
8495
8496 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8497
8498         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
8499         rtx_insn *.
8500         (cheap_bb_rtx_cost_p): Likewise.
8501         (first_active_insn): Likewise for return type and local "insn".
8502         (last_active_insn):  Likewise for return type and locals "insn",
8503         "head".
8504         (struct noce_if_info): Likewise for fields "jump", "insn_a",
8505         "insn_b".
8506         (end_ifcvt_sequence): Likewise for return type and locals "insn",
8507         "seq".
8508         (noce_try_move): Likewise for local "seq".
8509         (noce_try_store_flag): Likewise.
8510         (noce_try_store_flag_constants): Likewise.
8511         (noce_try_addcc): Likewise.
8512         (noce_try_store_flag_mask): Likewise.
8513         (noce_try_cmove): Likewise.
8514         (noce_try_minmax): Likewise.
8515         (noce_try_abs): Likewise.
8516         (noce_try_sign_mask): Likewise.
8517         (noce_try_bitop): Likewise.
8518         (noce_can_store_speculate_p): Likewise for local "insn".
8519         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
8520         seq".
8521         (check_cond_move_block): Likewise for local "insn".
8522         (cond_move_convert_if_block): Likewise.
8523         (cond_move_process_if_block): Likewise for locals "seq",
8524         "loc_insn".
8525         (noce_find_if_block): Likewise for local "jump".
8526         (merge_if_block): Likewise for local "last".
8527         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
8528         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
8529         (block_has_only_trap): Likewise for return type and local "trap".
8530         (find_if_case_1): Likewise for local "jump".
8531         (dead_or_predicable): Likewise for locals "head", "end", "jump",
8532         "insn".
8533
8534 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8535
8536         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
8537         "last_insn", "loop_end" from rtx to rtx_insn *.
8538
8539         * hw-doloop.c (scan_loop): Likewise for local "insn".
8540         (discover_loop): Likewise for param "tail_insn".
8541         (discover_loops): Likewise for local "tail".
8542
8543         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
8544         cast to rtx_insn * when assigning from an rtx local to a
8545         hwloop_info's "last_insn" field.
8546
8547 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8548
8549         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
8550         (add_delay_dependencies): Strengthen local "pro" from rtx to
8551         rtx_insn *.
8552         (recompute_todo_spec): Likewise.
8553         (dep_cost_1): Likewise for locals "insn", "used".
8554         (schedule_insn): Likewise for local "dbg".
8555         (schedule_insn): Likewise for locals "pro", "next".
8556         (unschedule_insns_until): Likewise for local "con".
8557         (restore_pattern): Likewise for local "next".
8558         (estimate_insn_tick): Likewise for local "pro".
8559         (resolve_dependencies): Likewise for local "next".
8560         (fix_inter_tick): Likewise.
8561         (fix_tick_ready): Likewise for local "pro".
8562         (add_to_speculative_block): Likewise for locals "check", "twin",
8563         "pro".
8564         (sched_extend_bb): Likewise for locals "end", "insn".
8565         (init_before_recovery): Likewise for local "x".
8566         (sched_create_recovery_block): Likewise for local "barrier".
8567         (create_check_block_twin): Likewise for local "pro".
8568         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
8569         "consumer".
8570         (unlink_bb_notes): Update for change to type of bb_header.
8571         Strengthen locals "prev", "label", "note", "next" from rtx to
8572         rtx_insn *.
8573         (clear_priorities): Likewise for local "pro".
8574
8575 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8576
8577         * gcse.c (struct occr): Strengthen field "insn" from rtx to
8578         rtx_insn *.
8579         (test_insn): Likewise for this global.
8580         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
8581         const rtx_insn *.
8582         (oprs_anticipatable_p): Likewise.
8583         (oprs_available_p): Likewise.
8584         (insert_expr_in_table): Strengthen param "insn" from  rtx to
8585         rtx_insn *.
8586         (hash_scan_set): Likewise.
8587         (hash_scan_clobber): Likewise.
8588         (hash_scan_call): Likewise.
8589         (hash_scan_insn): Likewise.
8590         (compute_hash_table_work): Likewise for local "insn".
8591         (process_insert_insn): Likewise for return type and local "pat".
8592         (insert_insn_end_basic_block): Likewise for locals "new_insn",
8593         "pat", "pat_end", "maybe_cc0_setter".
8594         (pre_edge_insert): Likewise for local "insn".
8595         (pre_insert_copy_insn): Likewise for param "insn".
8596         (pre_insert_copies): Likewise for local "insn".
8597         (struct set_data): Likewise for field "insn".
8598         (single_set_gcse): Likewise for param "insn".
8599         (gcse_emit_move_after): Likewise.
8600         (pre_delete): Likewise for local "insn".
8601         (update_bb_reg_pressure): Likewise for param "from" and local
8602         "insn".
8603         (should_hoist_expr_to_dom): Likewise for param "from".
8604         (hoist_code): Likewise for local "insn".
8605         (get_pressure_class_and_nregs): Likewise for param "insn".
8606         (calculate_bb_reg_pressure): Likewise for local "insn".
8607         (compute_ld_motion_mems): Likewise.
8608
8609 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8610
8611         * genpeep.c (main): Rename param back from "uncast_ins1" to
8612         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
8613         checked cast.
8614
8615         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
8616
8617 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
8618
8619         PR target/62195
8620         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
8621         documentation to state it is only for VSX operations.
8622
8623         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
8624         constraint only active if VSX.
8625
8626         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
8627         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
8628         (lfiwzx): Likewise.
8629
8630 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8631
8632         * fwprop.c (single_def_use_dom_walker::before_dom_children):
8633         Strengthen local "insn" from rtx to rtx_insn *.
8634         (use_killed_between): Likewise for param "target_insn".
8635         (all_uses_available_at): Likewise for param "target_insn" and
8636         local "next".
8637         (update_df_init): Likewise for params "def_insn", "insn".
8638         (update_df): Likewise for param "insn".
8639         (try_fwprop_subst): Likewise for param "def_insn" and local
8640         "insn".
8641         (free_load_extend): Likewise for param "insn".
8642         (forward_propagate_subreg): Likewise for param "def_insn" and
8643         local "use_insn".
8644         (forward_propagate_asm): Likewise for param "def_insn" and local
8645         "use_insn".
8646         (forward_propagate_and_simplify): Likewise for param "def_insn"
8647         and local "use_insn".
8648         (forward_propagate_into): Likewise for locals "def_insn" and
8649         "use_insn".
8650
8651 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8652
8653         * function.c (emit_initial_value_sets): Strengthen local "seq"
8654         from rtx to rtx_insn *.
8655         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
8656         local "seq".
8657         (instantiate_virtual_regs): Likewise for local "insn".
8658         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
8659         (reorder_blocks_1): Likewise for param "insns" and local "insn".
8660         (expand_function_end): Likewise for locals "insn" and "seq".
8661         (epilogue_done): Likewise for local "insn".
8662         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
8663         "last", "trial".
8664         (reposition_prologue_and_epilogue_notes): Likewise for locals
8665         "insn", "last", "note", "first".
8666         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
8667         (pass_match_asm_constraints::execute): Likewise for local "insn".
8668
8669 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8670
8671         * output.h (final_scan_insn): Strengthen return type from rtx to
8672         rtx_insn *.
8673         (final_forward_branch_p): Likewise for param.
8674         (current_output_insn): Likewise for this global.
8675
8676         * final.c (rtx debug_insn): Likewise for this variable.
8677         (current_output_insn): Likewise.
8678         (get_attr_length_1): Rename param "insn" to "uncast_insn",
8679         adding "insn" back in as an rtx_insn * with a checked cast, so
8680         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
8681         first param.
8682         (compute_alignments): Strengthen local "label" from rtx to
8683         rtx_insn *.
8684         (shorten_branches): Rename param from "first" to "uncast_first",
8685         introducing a new local rtx_insn * "first" using a checked cast to
8686         effectively strengthen "first" from rtx to rtx_insn * without
8687         affecting the type signature.  Strengthen locals "insn", "seq",
8688         "next", "label" from rtx to rtx_insn *.
8689         (change_scope): Strengthen param "orig_insn" and local "insn" from
8690         rtx to rtx_insn *.
8691         (final_start_function): Rename param from "first" to "uncast_first",
8692         introducing a new local rtx_insn * "first" using a checked cast to
8693         effectively strengthen "first" from rtx to rtx_insn * without
8694         affecting the type signature.  Strengthen local "insn" from rtx to
8695         rtx_insn *.
8696         (dump_basic_block_info): Strengthen param "insn" from rtx to
8697         rtx_insn *.
8698         (final): Rename param from "first" to "uncast_first",
8699         introducing a new local rtx_insn * "first" using a checked cast to
8700         effectively strengthen "first" from rtx to rtx_insn * without
8701         affecting the type signature.  Strengthen locals "insn", "next"
8702         from rtx to rtx_insn *.
8703         (output_alternate_entry_point): Strengthen param "insn" from rtx to
8704         rtx_insn *.
8705         (call_from_call_insn): Strengthen param "insn" from rtx to
8706         rtx_call_insn *.
8707         (final_scan_insn): Rename param from "insn" to "uncast_insn",
8708         introducing a new local rtx_insn * "insn" using a checked cast to
8709         effectively strengthen "insn" from rtx to rtx_insn * without
8710         affecting the type signature.  Strengthen return type and locals
8711         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
8712         now-redundant checked cast to rtx_insn * from both invocations of
8713         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
8714         introducing a local "call_insn" for use when invoking
8715         call_from_call_insn.
8716         (notice_source_line): Strengthen param "insn" from rtx to
8717         rtx_insn *.
8718         (leaf_function_p): Likewise for local "insn".
8719         (final_forward_branch_p): Likewise.
8720         (leaf_renumber_regs): Likewise for param "first".
8721         (rest_of_clean_state): Likewise for locals "insn" and "next".
8722         (self_recursive_call_p): Likewise for param "insn".
8723         (collect_fn_hard_reg_usage): Likewise for local "insn".
8724         (get_call_fndecl): Likewise for param "insn".
8725         (get_call_cgraph_rtl_info): Likewise.
8726         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
8727         introducing a new local rtx_insn * "insn" using a checked cast to
8728         effectively strengthen "insn" from rtx to rtx_insn * without
8729         affecting the type signature.
8730
8731         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
8732         cast when assigning from param "insn" to current_output_insn.
8733         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
8734         so that we can assign it back to current_output_insn.
8735
8736 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
8737
8738         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
8739         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
8740         atmxt540s and atmxt540sreva devices.
8741         * config/avr/avr-tables.opt: Regenerate.
8742         * config/avr/t-multilib: Regenerate.
8743         * doc/avr-mmcu.texi: Regenerate.
8744
8745 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8746
8747         * expr.c (convert_move): Strengthen local "insns" from rtx to
8748         rtx_insn *.
8749         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
8750         "top_label" from rtx to rtx_code_label *.
8751         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
8752         rtx_insn *.
8753         (emit_single_push_insn): Likewise for locals "prev", "last".
8754         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
8755         to rtx_code_label *.
8756         (store_constructor): Likewise for locals "loop_start", "loop_end".
8757         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
8758         rtx_insn *.
8759         (expand_expr_real_2): Likewise.
8760         (expand_expr_real_1): Strengthen local "label" from rtx to
8761         rtx_code_label *.
8762
8763 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8764
8765         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
8766         from rtx to rtx_insn *.
8767         (store_bit_field_1): Likewise.
8768         (extract_bit_field_1): Likewise.
8769         (expand_mult_const): Likewise for local "insns".
8770         (expmed_mult_highpart): Strengthen local "label" from rtx to
8771         rtx_code_label *.
8772         (expand_smod_pow2): Likewise.
8773         (expand_sdiv_pow2): Likewise.
8774         (expand_divmod): Strengthen locals "last", "insn" from rtx to
8775         rtx_insn *.  Strengthen locals "label", "label1", "label2",
8776         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
8777         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
8778         (emit_store_flag): Likewise.
8779         (emit_store_flag_force): Strengthen local "label" from rtx to
8780         rtx_code_label *.
8781         (do_cmp_and_jump): Likewise for param "label".
8782
8783 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8784
8785         * explow.c (force_reg): Strengthen local "insn" from rtx to
8786         rtx_insn *.
8787         (adjust_stack_1): Likewise.
8788         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
8789         "final_label", "available_label", "space_available" from rtx to
8790         rtx_code_label *.
8791         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
8792         (anti_adjust_stack_and_probe): Likewise.
8793
8794 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8795
8796         * except.h (sjlj_emit_function_exit_after): Strengthen param
8797         "after" from rtx to rtx_insn *.  This is only called with
8798         result of get_last_insn (in function.c) so type-change should be
8799         self-contained.
8800
8801         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
8802         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
8803         to rtx_insn *.  These fields are only used from except.c so this
8804         type-change should be self-contained to this patch.
8805
8806         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
8807         local "last" from rtx to rtx_insn *.
8808         (dw2_build_landing_pads): Likewise for local "seq".
8809         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
8810         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
8811         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
8812         rtx to rtx_insn *.
8813         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
8814         to rtx_insn *.
8815         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
8816         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
8817         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
8818         referring to an insn.  Strengthen local "dispatch_label" from
8819         rtx to rtx_code_label *.
8820         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
8821         rtx_insn *.
8822         (expand_eh_return): Strengthen local "around_label" from
8823         rtx to rtx_code_label *.
8824         (convert_to_eh_region_ranges): Strengthen locals "iter",
8825         "last_action_insn", "first_no_action_insn",
8826         "first_no_action_insn_before_switch",
8827         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
8828
8829 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8830
8831         * dwarf2out.c (last_var_location_insn): Strengthen this variable
8832         from rtx to rtx_insn *.
8833         (cached_next_real_insn): Likewise.
8834         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
8835         working with insns.
8836         (dwarf2out_var_location): Strengthen locals "next_real",
8837         "next_note", "expected_next_loc_note", "last_start", "insn" from
8838         rtx to rtx_insn *.
8839
8840 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8841
8842         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
8843         from rtx to rtx_insn *.
8844         (create_pseudo_cfg): Likewise for local "insn".
8845
8846 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8847
8848         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
8849         from rtx to rtx_insn *.
8850         (df_bb_regno_last_def_find): Likewise.
8851
8852         * df-problems.c (df_rd_bb_local_compute): Likewise.
8853         (df_lr_bb_local_compute): Likewise.
8854         (df_live_bb_local_compute): Likewise.
8855         (df_chain_remove_problem): Likewise.
8856         (df_chain_create_bb): Likewise.
8857         (df_word_lr_bb_local_compute): Likewise.
8858         (df_remove_dead_eq_notes): Likewise for param "insn".
8859         (df_note_bb_compute): Likewise for local "insn".
8860         (simulate_backwards_to_point): Likewise.
8861         (df_md_bb_local_compute): Likewise.
8862
8863         * df-scan.c (df_scan_free_bb_info): Likewise.
8864         (df_scan_start_dump): Likewise.
8865         (df_scan_start_block): Likewise.
8866         (df_install_ref_incremental): Likewise for local "insn".
8867         (df_insn_rescan_all): Likewise.
8868         (df_reorganize_refs_by_reg_by_insn): Likewise.
8869         (df_reorganize_refs_by_insn_bb): Likewise.
8870         (df_recompute_luids): Likewise.
8871         (df_bb_refs_record): Likewise.
8872         (df_update_entry_exit_and_calls): Likewise.
8873         (df_bb_verify): Likewise.
8874
8875 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8876
8877         * ddg.h (struct ddg_node): Strengthen fields "insn" and
8878         "first_note" from rtx to rtx_insn *.
8879         (get_node_of_insn): Likewise for param 2 "insn".
8880         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
8881
8882         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
8883         rtx_insn *.
8884         (mem_write_insn_p): Likewise.
8885         (mem_access_insn_p): Likewise.
8886         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
8887         (def_has_ccmode_p): Likewise for param "insn".
8888         (add_cross_iteration_register_deps): Likewise for locals
8889         "def_insn" and "use_insn".
8890         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
8891         (build_intra_loop_deps): Likewise for local "src_insn".
8892         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
8893         to rtx_insn *.
8894         (get_node_of_insn): Likewise for param "insn".
8895
8896 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8897
8898         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
8899         (deletable_insn_p): Strengthen param "insn" from rtx to
8900         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
8901         find_call_stack_args, since this is guarded by CALL_P (insn).
8902         (marked_insn_p): Strengthen param "insn" from rtx to
8903         rtx_insn *.
8904         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
8905         invoking find_call_stack_args, since this is guarded by
8906         CALL_P (insn).
8907         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
8908         rtx_insn *; we know this is an insn since this was called by
8909         mark_nonreg_stores.
8910         (mark_nonreg_stores_2): Likewise.
8911         (mark_nonreg_stores): Strengthen param "insn" from rtx to
8912         rtx_insn *.
8913         (find_call_stack_args): Strengthen param "call_insn" from rtx to
8914         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
8915         to rtx_insn *.
8916         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
8917         from rtx to rtx_insn *.
8918         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
8919         "next", "ref_insn".
8920         (delete_unmarked_insns): Likewise for locals "insn", "next".
8921         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
8922         (mark_reg_dependencies): Likewise for param "insn".
8923         (rest_of_handle_ud_dce): Likewise for local "insn".
8924         (word_dce_process_block): Likewise.
8925         (dce_process_block): Likewise.
8926
8927 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8928
8929         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
8930         from rtx to rtx_insn *.
8931         (struct change_cc_mode_args): Likewise for field "insn".
8932         (this_insn): Strengthen from rtx to rtx_insn *.
8933         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
8934         with insn.
8935         (validate_canon_reg): Strengthen param "insn" from rtx to
8936         rtx_insn *.
8937         (canon_reg): Likewise.
8938         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
8939         dealing with insn.
8940         (record_jump_equiv): Strengthen param "insn" from rtx to
8941         rtx_insn *.
8942         (try_back_substitute_reg): Likewise, also for locals "prev",
8943         "bb_head".
8944         (find_sets_in_insn): Likewise for param "insn".
8945         (canonicalize_insn): Likewise.
8946         (cse_insn): Likewise.  Add a checked cast.
8947         (invalidate_from_clobbers): Likewise for param "insn".
8948         (invalidate_from_sets_and_clobbers): Likewise.
8949         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
8950         dealing with insn.
8951         (cse_prescan_path): Strengthen local "insn" from rtx to
8952         rtx_insn *.
8953         (cse_extended_basic_block): Likewise for locals "insn" and
8954         "prev_insn".
8955         (cse_main): Likewise for param "f".
8956         (check_for_label_ref): Likewise for local "insn".
8957         (set_live_p): Likewise for second param ("insn").
8958         (insn_live_p): Likewise for first param ("insn") and for local
8959         "next".
8960         (cse_change_cc_mode_insn): Likewise for first param "insn".
8961         (cse_change_cc_mode_insns): Likewise for first and second params
8962         "start" and "end".
8963         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
8964         and "end".
8965         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
8966         "cc_src_insn".
8967
8968 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8969             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8970             Anna Tikhonova  <anna.tikhonova@intel.com>
8971             Ilya Tocar  <ilya.tocar@intel.com>
8972             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8973             Ilya Verbin  <ilya.verbin@intel.com>
8974             Kirill Yukhin  <kirill.yukhin@intel.com>
8975             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8976
8977         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
8978         New.
8979         * config/i386/sse.md
8980         (define_mode_iterator VI248_AVX2): Delete.
8981         (define_mode_iterator VI2_AVX2_AVX512BW): New.
8982         (define_mode_iterator VI48_AVX2): Ditto.
8983         (define_insn <shift_insn><mode>3): Delete.
8984         (define_insn "<shift_insn><mode>3<mask_name>" with
8985         VI2_AVX2_AVX512BW): New.
8986         (define_insn "<shift_insn><mode>3<mask_name>" with
8987         VI48_AVX2): Ditto.
8988
8989 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8990             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8991             Anna Tikhonova  <anna.tikhonova@intel.com>
8992             Ilya Tocar  <ilya.tocar@intel.com>
8993             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8994             Ilya Verbin  <ilya.verbin@intel.com>
8995             Kirill Yukhin  <kirill.yukhin@intel.com>
8996             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8997
8998         * config/i386/sse.md
8999         (define_mode_iterator VI4F_BRCST32x2): New.
9000         (define_mode_attr 64x2_mode): Ditto.
9001         (define_mode_attr 32x2mode): Ditto.
9002         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
9003         with VI4F_BRCST32x2): Ditto.
9004         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
9005         with V16FI mode iterator): Ditto.
9006         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
9007         with V16FI): Ditto.
9008         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
9009         with VI8F_BRCST64x2): Ditto.
9010
9011 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9012             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9013             Anna Tikhonova  <anna.tikhonova@intel.com>
9014             Ilya Tocar  <ilya.tocar@intel.com>
9015             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9016             Ilya Verbin  <ilya.verbin@intel.com>
9017             Kirill Yukhin  <kirill.yukhin@intel.com>
9018             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9019
9020         * config/i386/sse.md
9021         (define_mode_iterator VI8_AVX512VL): New.
9022         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
9023
9024 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
9025
9026         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
9027         (define_mode_iterator V48_AVX512VL): New.
9028         (define_mode_iterator V12_AVX512VL): Ditto.
9029         (define_insn <avx512>_load<mode>_mask): Split into two similar
9030         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
9031         Refactor output template.
9032         (define_insn "<avx512>_store<mode>_mask"): Ditto.
9033
9034 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9035
9036         * cprop.c (struct occr): Strengthen field "insn" from rtx to
9037         rtx_insn *.
9038         (reg_available_p): Likewise for param "insn".
9039         (insert_set_in_table): Likewise.
9040         (hash_scan_set): Likewise.
9041         (hash_scan_insn): Likewise.
9042         (make_set_regs_unavailable): Likewise.
9043         (compute_hash_table_work): Likewise for local "insn".
9044         (reg_not_set_p): Strengthen param "insn" from const_rtx to
9045         const rtx_insn *.
9046         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
9047         (try_replace_reg): Likewise.
9048         (find_avail_set): Likewise.
9049         (cprop_jump): Likewise for params "setcc", "jump".
9050         (constprop_register): Likewise for param "insn".
9051         (cprop_insn): Likewise.
9052         (do_local_cprop): Likewise.
9053         (local_cprop_pass): Likewise for local "insn".
9054         (bypass_block): Likewise for params "setcc" and "jump".
9055         (bypass_conditional_jumps): Likewise for locals "setcc" and
9056         "insn".
9057         (one_cprop_pass): Likewise for local "insn".
9058
9059 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9060
9061         * compare-elim.c (struct comparison_use): Strengthen field "insn"
9062         from rtx to rtx_insn *.
9063         (struct comparison): Likewise, also for field "prev_clobber".
9064         (conforming_compare): Likewise for param "insn".
9065         (arithmetic_flags_clobber_p): Likewise.
9066         (find_flags_uses_in_insn): Likewise.
9067         (find_comparison_dom_walker::before_dom_children): Likewise for
9068         locals "insn", "next", "last_clobber".
9069         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
9070
9071 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9072
9073         * combine-stack-adj.c (struct csa_reflist): Strengthen field
9074         "insn" from rtx to rtx_insn *.
9075         (single_set_for_csa): Likewise for param "insn".
9076         (record_one_stack_ref): Likewise.
9077         (try_apply_stack_adjustment): Likewise.
9078         (struct record_stack_refs_data): Likewise for field "insn".
9079         (maybe_move_args_size_note): Likewise for params "last" and "insn".
9080         (prev_active_insn_bb): Likewise for return type and param "insn".
9081         (next_active_insn_bb): Likewise.
9082         (force_move_args_size_note): Likewise for params "prev" and "last"
9083         and locals "test", "next_candidate", "prev_candidate".
9084         (combine_stack_adjustments_for_block): Strengthen locals
9085         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
9086         rtx_insn *.
9087
9088 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9089
9090         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
9091         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
9092         (subst_insn): Likewise for this variable.
9093         (added_links_insn): Likewise.
9094         (struct insn_link): Likewise for field "insn".
9095         (alloc_insn_link): Likewise for param "insn".
9096         (struct undobuf): Likewise for field "other_insn".
9097         (find_single_use): Likewise for param "insn" and local "next".
9098         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
9099         (delete_noop_moves): Likewise for locals "insn", "next".
9100         (create_log_links): Likewise for locals "insn", "use_insn".
9101         Strengthen local "next_use" from rtx * to rtx_insn **.
9102         (insn_a_feeds_b): Likewise for params "a", "b".
9103         (combine_instructions): Likewise for param "f" and locals "insn",
9104         "next", "prev", "first", "last_combined_insn", "link", "link1",
9105         "temp".  Replace use of NULL_RTX with NULL when referring to
9106         insns.
9107         (setup_incoming_promotions): Likewise for param "first"
9108         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
9109         (can_combine_p): Likewise for params "insn", "i3", "pred",
9110         "pred2", "succ", "succ2" and for local "p".
9111         (combinable_i3pat): Likewise for param "i3".
9112         (cant_combine_insn_p): Likewise for param "insn".
9113         (likely_spilled_retval_p): Likewise.
9114         (adjust_for_new_dest): Likewise.
9115         (update_cfg_for_uncondjump): Likewise, also for local "insn".
9116         (try_combine): Likewise for return type and for params "i3", "i2",
9117         "i1", "i0", "last_combined_insn", and for locals "insn",
9118         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
9119         "i0_insn".  Eliminate local "tem" in favor of new locals
9120         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
9121         checked cast for now to rtx_insn * on the return type of
9122         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
9123         insns.
9124         (find_split_point): Strengthen param "insn" from rtx to
9125         rtx_insn *.
9126         (simplify_set): Likewise for local "other_insn".
9127         (recog_for_combine): Likewise for param "insn".
9128         (record_value_for_reg): Likewise.
9129         (record_dead_and_set_regs_1): Likewise for local
9130         "record_dead_insn".
9131         (record_dead_and_set_regs): Likewise for param "insn".
9132         (record_promoted_value): Likewise.
9133         (check_promoted_subreg): Likewise.
9134         (get_last_value_validate): Likewise.
9135         (reg_dead_at_p): Likewise.
9136         (move_deaths): Likewise for param "to_insn".
9137         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
9138         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
9139         in favor of new locals "tem_note" and "tem_insn", the latter being
9140         an rtx_insn *.
9141         (distribute_links): Strengthen locals "place", "insn" from rtx to
9142         rtx_insn *.
9143
9144 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9145
9146         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
9147         than a const_rtx.
9148         (can_delete_label_p): Require a const rtx_code_label * rather than
9149         a const_rtx.
9150         (delete_insn): Add checked cast to rtx_code_label * when we know
9151         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
9152         rtx to rtx_insn *.
9153         (delete_insn_chain): Strengthen locals "prev" and "current" from
9154         rtx to rtx_insn *.  Add a checked cast when assigning from
9155         "finish" (strengthening the params will come later).  Add a
9156         checked cast to rtx_note * in region where we know
9157         NOTE_P (current).
9158         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
9159         rtx_insn *.
9160         (compute_bb_for_insn): Likewise.
9161         (free_bb_for_insn): Likewise for local "insn".
9162         (compute_bb_for_insn): Likewise.
9163         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
9164         local "insn" from rtx to rtx_insn *
9165         (flow_active_insn_p): Require a const rtx_insn * rather than a
9166         const_rtx.
9167         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
9168         rtx_insn *.
9169         (can_fallthru): Likewise for locals "insn" and "insn2".
9170         (bb_note): Likewise for local "note".
9171         (first_insn_after_basic_block_note): Likewise for local "note" and
9172         for return type.
9173         (rtl_split_block): Likewise for locals "insn" and "next".
9174         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
9175         "end".
9176         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
9177         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
9178         "prev", "tmp".
9179         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
9180         them), "kill_from", "barrier", "new_insn".
9181         (patch_jump_insn): Likewise for params "insn", "old_label".
9182         (redirect_branch_edge): Likewise for locals "old_label", "insn".
9183         (force_nonfallthru_and_redirect): Likewise for locals "insn",
9184         "old_label", "new_label".
9185         (rtl_tidy_fallthru_edge): Likewise for local "q".
9186         (rtl_split_edge): Likewise for locals "before", "last".
9187         (commit_one_edge_insertion): Likewise for locals "before",
9188         "after", "insns", "tmp", "last", adding a checked cast where
9189         currently necessary.
9190         (commit_edge_insertions): Likewise.
9191         (rtl_dump_bb): Likewise for locals "insn", "last".
9192         (print_rtl_with_bb): Likewise for local "x".
9193         (rtl_verify_bb_insns): Likewise for local "x".
9194         (rtl_verify_bb_pointers): Likewise for local "insn".
9195         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
9196         "head", "end".
9197         (rtl_verify_fallthru): Likewise for local "insn".
9198         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
9199         (purge_dead_edges): Likewise for local "insn".
9200         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
9201         (skip_insns_after_block): Likewise for return type and for locals
9202         "insn", "last_insn", "next_head", "prev".
9203         (record_effective_endpoints): Likewise for locals "next_insn",
9204         "insn", "end".
9205         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
9206         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
9207         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
9208         (duplicate_insn_chain): For now, add checked cast from rtx to
9209         rtx_insn * when returning insn.
9210         (cfg_layout_duplicate_bb): Likewise for local "insn".
9211         (cfg_layout_delete_block): Likewise for locals "insn", "next",
9212         "prev", "remaints".
9213         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
9214         (rtl_block_empty_p): Likewise.
9215         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
9216         "split_point", "last".
9217         (rtl_block_ends_with_call_p): Likewise for local "insn".
9218         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
9219         const rtx_insn *.
9220         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
9221         "split_at_insn" from rtx to rtx_insn *.
9222         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
9223         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
9224         to const rtx_insn *.
9225         (rtl_account_profile_record): Likewise.
9226
9227 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9228
9229         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
9230         rtx to rtx_insn *.
9231         (average_num_loop_insns): Likewise.
9232         (init_set_costs): Likewise for local "seq".
9233         (seq_cost): Likewise for param "seq", from const_rtx to const
9234         rtx_insn *.
9235
9236 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9237
9238         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
9239         rtx to rtx_insn *.
9240
9241 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9242
9243         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
9244         "f1" and "f2" from rtx * to rtx_insn **.
9245         (flow_find_head_matching_sequence): Likewise.
9246
9247         * cfgcleanup.c (try_simplify_condjump): Strengthen local
9248         "cbranch_insn" from rtx to rtx_insn *.
9249         (thread_jump): Likewise for local "insn".
9250         (try_forward_edges): Likewise for local "last".
9251         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
9252         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
9253         "real_b_end".
9254         (can_replace_by): Likewise for params "i1", "i2".
9255         (old_insns_match_p): Likewise.
9256         (merge_notes): Likewise.
9257         (walk_to_nondebug_insn): Likewise for param "i1".
9258         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
9259         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
9260         "afterlast1", "afterlast2" from rtx to rtx_insn *.
9261         (flow_find_head_matching_sequence): Strengthen params "f1" and
9262         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
9263         "last1", "last2", "beforelast1", "beforelast2" from rtx to
9264         rtx_insn *.
9265         (outgoing_edges_match): Likewise for locals "last1", "last2".
9266         (try_crossjump_to_edge): Likewise for local "insn".
9267         Replace call to for_each_rtx with for_each_rtx_in_insn.
9268
9269         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
9270         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
9271         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
9272         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
9273         (try_optimize_cfg): Strengthen local "last" from rtx to
9274         rtx_insn *.
9275         (delete_dead_jumptables): Likewise for locals "insn", "next",
9276         "label".
9277
9278         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
9279         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
9280         "rtx else_first_tail", to reflect the basic-block.h changes above.
9281
9282 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9283
9284         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
9285         rtx_insn *.
9286         (purge_dead_tablejump_edges): Likewise.
9287         (find_bb_boundaries): Likewise for locals "insn", "end",
9288         "flow_transfer_insn".
9289
9290 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9291
9292         * caller-save.c (save_call_clobbered_regs): Strengthen locals
9293         "ins" and "prev" from rtx to rtx_insn *.
9294
9295 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9296
9297         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
9298         rtx_insn *.
9299         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
9300         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
9301         "scan_start".
9302         (load_register_parameters): Likewise for local "before_arg".
9303         (check_sibcall_argument_overlap): Likewise for param "insn".
9304         (expand_call): Likewise for locals "normal_call_insns",
9305         "tail_call_insns", "insns", "before_call", "after_args",
9306         "before_arg", "last", "prev".  Strengthen one of the "last" from
9307         rtx to rtx_call_insn *.
9308         (fixup_tail_calls): Strengthen local "insn" from rtx to
9309         rtx_insn *.
9310         (emit_library_call_value_1): Likewise for locals "before_call" and
9311         "last".
9312
9313 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9314
9315         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
9316         and "last" from rtx to rtx_insn *.
9317         (expand_builtin_nonlocal_goto): Likewise for local "insn".
9318         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
9319         rtx_call_insn *.
9320         (expand_errno_check): Strengthen local "lab" from rtx to
9321         rtx_code_label *.
9322         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
9323         rtx_insn *.
9324         (expand_builtin_mathfn_2): Likewise.
9325         (expand_builtin_mathfn_ternary): Likewise.
9326         (expand_builtin_mathfn_3): Likewise.
9327         (expand_builtin_interclass_mathfn): Likewise for local "last".
9328         (expand_builtin_int_roundingfn): Likewise for local "insns".
9329         (expand_builtin_int_roundingfn_2): Likewise.
9330         (expand_builtin_strlen): Likewise for local "before_strlen".
9331         (expand_builtin_strncmp): Likewise for local "seq".
9332         (expand_builtin_signbit): Likewise for local "last".
9333         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
9334         from rtx to rtx_code_label *.
9335         (expand_stack_restore):  Strengthen local "prev" from rtx to
9336         rtx_insn *.
9337
9338 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9339
9340         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
9341         to rtx_insn *.
9342         (struct btr_def_s): Likewise.
9343         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
9344         const rtx_insn *.
9345         (add_btr_def): Likewise.
9346         (new_btr_user): Likewise.
9347         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
9348         rtx to rtx_insn *.
9349         (link_btr_uses): Likewise.
9350         (move_btr_def): Likewise for locals "insp", "old_insn",
9351         "new_insn".  Add checked cast to rtx_insn * for now on result of
9352         gen_move_insn.
9353         (can_move_up): Strengthen param "insn" from const_rtx to
9354         const rtx_insn *.
9355
9356 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9357
9358         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
9359         rtx_insn *.
9360         (get_uncond_jump_length): Likewise for locals "label", "jump".
9361         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
9362         "jump", "insn".
9363         (add_labels_and_missing_jumps): Likewise for local "new_jump".
9364         (fix_up_fall_thru_edges): Likewise for local "old_jump".
9365         (find_jump_block): Likewise for local "insn".
9366         (fix_crossing_conditional_branches): Likewise for locals
9367         "old_jump", "new_jump".
9368         (fix_crossing_unconditional_branches): Likewise for locals
9369         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
9370         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
9371
9372 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9373
9374         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
9375         rtx to rtx_insn *.
9376         (struct mem_insn): Likewise for field "insn".
9377         (reg_next_use): Strengthen from rtx * to rtx_insn **.
9378         (reg_next_inc_use): Likewise.
9379         (reg_next_def): Likewise.
9380         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
9381         from rtx to rtx_insn *.
9382         (move_insn_before): Likewise for param "next_insn" and local "insns".
9383         (attempt_change): Likewise for local "mov_insn".
9384         (try_merge): Likewise for param "last_insn".
9385         (get_next_ref): Likewise for return type and local "insn".
9386         Strengthen param "next_array" from rtx * to rtx_insn **.
9387         (parse_add_or_inc): Strengthen param "insn" from rtx to
9388         rtx_insn *.
9389         (find_inc): Likewise for locals "insn" and "other_insn" (three of
9390         the latter).
9391         (merge_in_block): Likewise for locals "insn", "curr",
9392         "other_insn".
9393         (pass_inc_dec::execute): Update allocations of the arrays to
9394         reflect the stronger types.
9395
9396 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9397
9398         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
9399         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
9400         from rtx to rtx_code_label *.
9401
9402 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9403
9404         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
9405         to rtx_insn *.
9406
9407 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9408
9409         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
9410         generated a warning and prevented bootstrapping the compiler.
9411
9412 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9413
9414         * rtl.h (delete_related_insns): Strengthen return type from rtx to
9415         rtx_insn *.
9416
9417         * jump.c (delete_related_insns): Likewise, also for locals "next"
9418         and "prev".
9419
9420 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9421
9422         * genautomata.c (output_internal_insn_latency_func): When writing
9423         the function "internal_insn_latency" to insn-automata.c,
9424         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
9425         allowing the optional guard function of (define_bypass) clauses to
9426         expect a pair of rtx_insn *, rather than a pair of rtx.
9427         (output_insn_latency_func): When writing the function
9428         "insn_latency", add an "uncast_" prefix to params "insn" and
9429         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
9430         using checked casts from the params, thus enabling the above
9431         change to the generated "internal_insn_latency" function.
9432
9433 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
9434
9435         PR tree-optimization/62091
9436         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
9437         handle correctly arrays.
9438         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
9439         inheritance binfos.
9440         (record_known_type): Walk into inner type.
9441         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
9442         condition on no type changes.
9443
9444 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9445
9446         * genattrtab.c (write_attr_get): Within the generated get_attr_
9447         functions, rename param "insn" to "uncast_insn" and reintroduce
9448         "insn" as an local rtx_insn * using a checked cast, so that "insn"
9449         is an rtx_insn * within insn-attrtab.c
9450
9451 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9452
9453         * output.h (peephole): Strengthen return type from rtx to
9454         rtx_insn *.
9455         * rtl.h (delete_for_peephole): Likewise for both params.
9456         * genpeep.c (main): In generated "peephole" function, strengthen
9457         return type and local "insn" from rtx to rtx_insn *.  For now,
9458         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
9459         rtx_insn *, with a checked cast.
9460         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
9461         locals "insn", "next", "prev" from rtx to rtx_insn *.
9462
9463 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
9464
9465         PR tree-optimization/62112
9466         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
9467         * gimple-iterator.h (gsi_replace): Return bool.
9468         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
9469         moved from ref_may_alias_global_p.
9470         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
9471         New overloads.
9472         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
9473         (stmt_kills_ref_p_1): Rename...
9474         (stmt_kills_ref_p): ... to this.
9475         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
9476         stmt_kills_ref_p): Declare.
9477         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
9478         Move the self-assignment case...
9479         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
9480
9481 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9482
9483         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
9484
9485         * emit-rtl.c (try_split): Likewise, also for locals "before" and
9486         "after".  For now, don't strengthen param "trial", which requires
9487         adding checked casts when returning it.
9488
9489 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9490
9491         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
9492         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
9493         "var_location" hook from rtx to rtx_insn *.
9494         (debug_nothing_rtx): Delete in favor of...
9495         (debug_nothing_rtx_code_label): New prototype.
9496         (debug_nothing_rtx_rtx): Delete unused prototype.
9497         (debug_nothing_rtx_insn): New prototype.
9498
9499         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
9500         invoking debug_hooks->var_location (in two places, one in a NOTE
9501         case of a switch statement, the other guarded by a CALL_P
9502         conditional.  Add checked cast to rtx_code_label * when invoking
9503         debug_hooks->label (within CODE_LABEL case of switch statement).
9504
9505         * dbxout.c (dbx_debug_hooks): Update "label" hook from
9506         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
9507         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
9508         (xcoff_debug_hooks): Likewise.
9509         * debug.c (do_nothing_debug_hooks): Likewise.
9510         (debug_nothing_rtx): Delete in favor of...
9511         (debug_nothing_rtx_insn): New function.
9512         (debug_nothing_rtx_rtx): Delete unused function.
9513         (debug_nothing_rtx_code_label): New function.
9514         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
9515         debug_nothing_rtx to debug_nothing_rtx_code_label.
9516         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
9517         to rtx_insn *.
9518         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
9519         debug_nothing_rtx to debug_nothing_rtx_insn.
9520         (sdbout_label): Strengthen param "insn" from rtx to
9521         rtx_code_label *.
9522         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
9523         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
9524         "var_location" hook from debug_nothing_rtx to
9525         debug_nothing_rtx_insn.
9526
9527 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9528
9529         * recog.h (insn_output_fn): Update this function typedef to match
9530         the changes below to the generated output functions, strengthening
9531         the 2nd param from rtx to rtx_insn *.
9532
9533         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
9534         insn when invoking an output function, to match the new signature
9535         of insn_output_fn with a stronger second param.
9536
9537         * genconditions.c (write_header): In the generated code for
9538         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
9539         to match the other changes in this patch.
9540
9541         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
9542         the generated "gen_" functions from rtx to rtx_insn * within their
9543         implementations.
9544
9545         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
9546         the subfunctions within the generated "recog_", "split", "peephole2"
9547         function trees from rtx to rtx_insn *.  For now, the top-level
9548         generated functions ("recog", "split", "peephole2") continue to
9549         take a plain rtx for "insn", to avoid introducing dependencies on
9550         other patches.  Rename this 2nd param from "insn" to
9551         "uncast_insn", and reintroduce "insn" as a local variable of type
9552         rtx_insn *, initialized at the top of the generated function with
9553         a checked cast on "uncast_insn".
9554         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
9555         the generated "gen_" functions from rtx to rtx_insn * within their
9556         prototypes.
9557
9558         * genoutput.c (process_template): Strengthen the 2nd param within
9559         the generated "output_" functions "insn" from rtx to rtx_insn *.
9560
9561 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
9562
9563         * tree-profile.c (tree_profiling): Skip external functions
9564         when doing coverage instrumentation.
9565         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
9566
9567 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9568
9569         * config/rs6000/altivec.h (vec_cpsgn): New #define.
9570         (vec_mergee): Likewise.
9571         (vec_mergeo): Likewise.
9572         (vec_cntlz): Likewise.
9573         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
9574         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
9575         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
9576         VMRGEW, and VMRGOW.
9577         * doc/extend.texi: Document various forms of vec_cpsgn,
9578         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
9579         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
9580         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
9581         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
9582         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
9583
9584 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9585
9586         * config/rs6000/rs6000.c (context.h): New include.
9587         (tree-pass.h): Likewise.
9588         (make_pass_analyze_swaps): New decl.
9589         (rs6000_option_override): Register pass_analyze_swaps.
9590         (swap_web_entry): New subsclass of web_entry_base (df.h).
9591         (special_handling_values): New enum.
9592         (union_defs): New function.
9593         (union_uses): Likewise.
9594         (insn_is_load_p): Likewise.
9595         (insn_is_store_p): Likewise.
9596         (insn_is_swap_p): Likewise.
9597         (rtx_is_swappable_p): Likewise.
9598         (insn_is_swappable_p): Likewise.
9599         (chain_purpose): New enum.
9600         (chain_contains_only_swaps): New function.
9601         (mark_swaps_for_removal): Likewise.
9602         (swap_const_vector_halves): Likewise.
9603         (adjust_subreg_index): Likewise.
9604         (permute_load): Likewise.
9605         (permute_store): Likewise.
9606         (handle_special_swappables): Likewise.
9607         (replace_swap_with_copy): Likewise.
9608         (dump_swap_insn_table): Likewise.
9609         (rs6000_analyze_swaps): Likewise.
9610         (pass_data_analyze_swaps): New pass_data.
9611         (pass_analyze_swaps): New rtl_opt_pass.
9612         (make_pass_analyze_swaps): New function.
9613         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
9614
9615 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9616
9617         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
9618         type from rtx to rtx_insn *.
9619         (create_copy_of_insn_rtx): Likewise.
9620         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
9621         (create_copy_of_insn_rtx): Likewise, also for local "res".
9622
9623 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9624
9625         * rtl.h (find_first_parameter_load): Strengthen return type from
9626         rtx to rtx_insn *.
9627         * rtlanal.c (find_first_parameter_load): Strengthen return type
9628         from rtx to rtx_insn *.  Add checked cast for now, to postpone
9629         strengthening the params.
9630
9631 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9632
9633         PR fortran/44054
9634         * diagnostic.c: Set default caret.
9635         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
9636         line is needed.
9637         * diagnostic.h (struct diagnostic_context):
9638
9639 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9640
9641         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
9642         (sel_bb_head): Strengthen return type insn_t (currently just an
9643         rtx) to rtx_insn *.
9644         (sel_bb_end): Likewise.
9645
9646         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
9647         (sel_bb_head): Strengthen return type and local "head" from
9648         insn_t (currently just an rtx) to rtx_insn *.
9649         (sel_bb_end): Likewise for return type.
9650         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
9651         working with insn.
9652
9653 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9654
9655         * basic-block.h (get_last_bb_insn): Strengthen return type from
9656         rtx to rtx_insn *.
9657         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
9658         end".
9659
9660 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9661
9662         PR fortran/44054
9663         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
9664          to here ...
9665         (diagnostic_report_diagnostic): ... from here.
9666         * toplev.c (general_init): Move code to c-family.
9667
9668 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9669
9670         * df.h (web_entry_base): Replace existing struct web_entry with a
9671         new class web_entry_base with only the predecessor member.
9672         (unionfind_root): Remove declaration and move to class member.
9673         (unionfind_union): Remove declaration and move to friend
9674         function.
9675         (union_defs): Remove declaration.
9676         * web.c (web_entry_base::unionfind_root): Modify to be member
9677         function and adjust accessors.
9678         (unionfind_union): Modify to be friend function and adjust
9679         accessors.
9680         (web_entry): New subclass of web_entry_base containing the reg
9681         member.
9682         (union_match_dups): Modify for struct -> class changes.
9683         (union_defs): Likewise.
9684         (entry_register): Likewise.
9685         (pass_web::execute): Likewise.
9686
9687 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
9688
9689         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
9690         builtin define __VEC_ELEMENT_REG_ORDER__.
9691
9692 2014-08-20  Martin Jambor  <mjambor@suse.cz>
9693             Wei Mi  <wmi@google.com>
9694
9695         PR ipa/60449
9696         PR middle-end/61776
9697         * tree-ssa-operands.c (update_stmt_operands): Remove
9698         MODIFIED_NORETURN_CALLS.
9699         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
9700         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
9701         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
9702         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
9703         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
9704         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
9705         (gimple_call_set_ctrl_altering): New func.
9706         (gimple_call_ctrl_altering_p): Ditto.
9707         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
9708         (make_blocks): Use gimple_call_initialize_ctrl_altering.
9709         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
9710         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
9711         remove MODIFIED_NORETURN_CALLS.
9712
9713 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
9714
9715         * coverage.c (coverage_compute_profile_id): Return non-0;
9716         also handle symbols with unique name.
9717         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
9718
9719 2014-08-20  Steve Ellcey  <sellcey@mips.com>
9720
9721         PR middle-end/49191
9722         * doc/sourcebuild.texi (non_strict_align): New.
9723
9724 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
9725
9726         * cgraphunit.c (ipa_passes, compile): Reshedule
9727         symtab_remove_unreachable_nodes passes; update comments.
9728         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
9729         TODO_remove_functions before the pass; the functions ought to be
9730         already removed.
9731         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
9732         TODO_remove_functions.
9733         * passes.c (pass_data_early_local_passes): Do not schedule function
9734         removal.
9735         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
9736
9737 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9738
9739         PR c/59304
9740         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
9741         before setting the option.
9742         * diagnostic.c (diagnostic_classify_diagnostic): Record
9743         command-line status.
9744
9745 2014-08-20  Richard Biener  <rguenther@suse.de>
9746
9747         PR lto/62190
9748         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
9749         to build uint{16,32,64}_type_node.
9750
9751 2014-08-20  Terry Guo  <terry.guo@arm.com>
9752
9753         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
9754         with immediate_operand.
9755
9756 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
9757
9758         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
9759         "insn" from an as_a to a safe_as_a, for the case when "insn" is
9760         NULL.
9761
9762 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9763
9764         PR preprocessor/51303
9765         * incpath.c (remove_duplicates): Use cpp_warning.
9766
9767 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9768
9769         PR c/60975
9770         PR c/53063
9771         * doc/options.texi (CPP): Document it.
9772         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
9773         * optc-gen.awk: Handle CPP.
9774         * opth-gen.awk: Likewise.
9775
9776 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9777
9778         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
9779         rtx_insn *.
9780         (duplicate_insn_chain): Likewise.
9781         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
9782         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
9783         checked cast for now (until we can strengthen the params in the
9784         same way).
9785         (duplicate_insn_chain): Likewise.
9786
9787 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9788
9789         * rtl.h (next_cc0_user): Strengthen return type from rtx to
9790         rtx_insn *.
9791         (prev_cc0_setter): Likewise.
9792
9793         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
9794         rtx_insn *, adding checked casts for now as necessary.
9795         (prev_cc0_setter): Likewise.
9796
9797 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9798
9799         * expr.h (emit_move_insn): Strengthen return type from rtx to
9800         rtx_insn *.
9801         (emit_move_insn_1): Likewise.
9802         (emit_move_complex_push): Likewise.
9803         (emit_move_complex_parts): Likewise.
9804
9805         * expr.c (emit_move_via_integer): Strengthen return type from rtx
9806         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
9807         with insns.
9808         (emit_move_complex_push): Strengthen return type from rtx to
9809         rtx_insn *.
9810         (emit_move_complex): Likewise, also for local "ret".
9811         (emit_move_ccmode): Likewise.
9812         (emit_move_multi_word): Likewise for return type and locals
9813         "last_insn", "seq".
9814         (emit_move_insn_1): Likewise for return type and locals "result",
9815         "ret".
9816         (emit_move_insn): Likewise for return type and local "last_insn".
9817         (compress_float_constant): Likewise.
9818
9819 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9820
9821         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
9822         from rtx to rtx_insn *.
9823
9824         * rtl.h (emit_insn_before): Likewise.
9825         (emit_insn_before_noloc): Likewise.
9826         (emit_insn_before_setloc): Likewise.
9827         (emit_jump_insn_before): Likewise.
9828         (emit_jump_insn_before_noloc): Likewise.
9829         (emit_jump_insn_before_setloc): Likewise.
9830         (emit_call_insn_before): Likewise.
9831         (emit_call_insn_before_noloc): Likewise.
9832         (emit_call_insn_before_setloc): Likewise.
9833         (emit_debug_insn_before): Likewise.
9834         (emit_debug_insn_before_noloc): Likewise.
9835         (emit_debug_insn_before_setloc): Likewise.
9836         (emit_label_before): Likewise.
9837         (emit_insn_after): Likewise.
9838         (emit_insn_after_noloc): Likewise.
9839         (emit_insn_after_setloc): Likewise.
9840         (emit_jump_insn_after): Likewise.
9841         (emit_jump_insn_after_noloc): Likewise.
9842         (emit_jump_insn_after_setloc): Likewise.
9843         (emit_call_insn_after): Likewise.
9844         (emit_call_insn_after_noloc): Likewise.
9845         (emit_call_insn_after_setloc): Likewise.
9846         (emit_debug_insn_after): Likewise.
9847         (emit_debug_insn_after_noloc): Likewise.
9848         (emit_debug_insn_after_setloc): Likewise.
9849         (emit_label_after): Likewise.
9850         (emit_insn): Likewise.
9851         (emit_debug_insn): Likewise.
9852         (emit_jump_insn): Likewise.
9853         (emit_call_insn): Likewise.
9854         (emit_label): Likewise.
9855         (gen_clobber): Likewise.
9856         (emit_clobber): Likewise.
9857         (gen_use): Likewise.
9858         (emit_use): Likewise.
9859         (emit): Likewise.
9860
9861         (emit_barrier_before): Strengthen return type from rtx to
9862         rtx_barrier *.
9863         (emit_barrier_after): Likewise.
9864         (emit_barrier): Likewise.
9865
9866         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
9867         from rtx to rtx_insn *.  Add checked casts for now when converting
9868         "last" from rtx to rtx_insn *.
9869         (emit_insn_before_noloc): Likewise for return type.
9870         (emit_jump_insn_before_noloc): Likewise.
9871         (emit_call_insn_before_noloc): Likewise.
9872         (emit_debug_insn_before_noloc): Likewise.
9873         (emit_barrier_before): Strengthen return type and local "insn"
9874         from rtx to rtx_barrier *.
9875         (emit_label_before): Strengthen return type from rtx to
9876         rtx_insn *.  Add checked cast for now when returning param
9877         (emit_pattern_after_noloc): Strengthen return type from rtx to
9878         rtx_insn *.  Add checked casts for now when converting "last" from
9879         rtx to rtx_insn *.
9880         (emit_insn_after_noloc): Strengthen return type from rtx to
9881         rtx_insn *.
9882         (emit_jump_insn_after_noloc): Likewise.
9883         (emit_call_insn_after_noloc): Likewise.
9884         (emit_debug_insn_after_noloc): Likewise.
9885         (emit_barrier_after): Strengthen return type from rtx to
9886         rtx_barrier *.
9887         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
9888         Add checked cast for now when converting "label" from rtx to
9889         rtx_insn *.
9890         (emit_pattern_after_setloc): Strengthen return type from rtx to
9891         rtx_insn *.  Add checked casts for now when converting "last" from
9892         rtx to rtx_insn *.
9893         (emit_pattern_after): Strengthen return type from rtx to
9894         rtx_insn *.
9895         (emit_insn_after_setloc): Likewise.
9896         (emit_insn_after): Likewise.
9897         (emit_jump_insn_after_setloc): Likewise.
9898         (emit_jump_insn_after): Likewise.
9899         (emit_call_insn_after_setloc): Likewise.
9900         (emit_call_insn_after): Likewise.
9901         (emit_debug_insn_after_setloc): Likewise.
9902         (emit_debug_insn_after): Likewise.
9903         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
9904         when converting "last" from rtx to rtx_insn *.
9905         (emit_pattern_before): Strengthen return type from rtx to
9906         rtx_insn *.
9907         (emit_insn_before_setloc): Likewise.
9908         (emit_insn_before): Likewise.
9909         (emit_jump_insn_before_setloc): Likewise.
9910         (emit_jump_insn_before): Likewise.
9911         (emit_call_insn_before_setloc): Likewise.
9912         (emit_call_insn_before): Likewise.
9913         (emit_debug_insn_before_setloc): Likewise.
9914         (emit_debug_insn_before): Likewise.
9915         (emit_insn): Strengthen return type and locals "last", "insn",
9916         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
9917         within cases where we know we have an insn.
9918         (emit_debug_insn): Likewise.
9919         (emit_jump_insn): Likewise.
9920         (emit_call_insn): Strengthen return type and local "insn" from rtx
9921         to rtx_insn *.
9922         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
9923         a checked cast to rtx_insn * for now on "label".
9924         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
9925         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
9926         (emit_use): Likewise.
9927         (gen_use): Likewise, also for local "seq".
9928         (emit): Likewise for return type and local "insn".
9929         (rtx_insn): Likewise for return type and local "new_rtx".
9930
9931         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
9932         from rtx to rtx_barrier *.
9933
9934         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
9935         changed return type from rtx to rtx_insn *, we must update
9936         "emit_fn" type, and this in turn means updating...
9937         (frame_insn): ...this.  Strengthen return type from rtx to
9938         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
9939
9940 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9941
9942         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
9943         rtx to rtx_jump_table_data *.  Also for local.
9944         * rtl.h (emit_jump_table_data): Likewise.
9945
9946 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9947
9948         * basic-block.h (create_basic_block_structure): Strengthen third
9949         param "bb_note" from rtx to rtx_note *.
9950         * rtl.h (emit_note_before): Strengthen return type from rtx to
9951         rtx_note *.
9952         (emit_note_after): Likewise.
9953         (emit_note): Likewise.
9954         (emit_note_copy): Likewise.  Also, strengthen param similarly.
9955         * function.h (struct rtl_data): Strengthen field
9956         "x_stack_check_probe_note" from rtx to rtx_note *.
9957
9958         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
9959         from rtx to rtx_note *.
9960         * cfgrtl.c (create_basic_block_structure): Strengthen third param
9961         "bb_note" from rtx to rtx_note *.
9962         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
9963         when calling emit_note_copy.
9964         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
9965         rtx_note *.
9966         (emit_note_after): Likewise.
9967         (emit_note_before): Likewise.
9968         (emit_note_copy): Likewise.  Also, strengthen param similarly.
9969         (emit_note): Likewise.
9970         * except.c (emit_note_eh_region_end): Likewise for return type.
9971         Strengthen local "next" from rtx to rtx_insn *.
9972         (convert_to_eh_region_ranges): Strengthen local "note"
9973         from rtx to rtx_note *.
9974         * final.c (change_scope): Likewise.
9975         (reemit_insn_block_notes): Likewise, for both locals named "note".
9976         Also, strengthen local "insn" from rtx to rtx_insn *.
9977         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
9978         rtx to rtx_note *.
9979         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
9980         strengthen local "seq" from rtx to rtx_insn *.
9981         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
9982         to rtx_note *.
9983         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
9984         vec<rtx_note *>.
9985         (get_bb_note_from_pool): Strengthen return type from rtx to
9986         rtx_note *.
9987         (sel_create_basic_block): Strengthen local "new_bb_note" from
9988         insn_t to rtx_note *.
9989         * var-tracking.c (emit_note_insn_var_location): Strengthen local
9990         "note" from rtx to rtx_note *.
9991         (emit_notes_in_bb): Likewise.
9992
9993 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9994
9995         * function.h (struct rtl_data): Strengthen field
9996         "x_parm_birth_insn" from rtx to rtx_insn *.
9997         * function.c (struct assign_parm_data_all): Strengthen fields
9998         "first_conversion_insn" and "last_conversion_insn" from rtx to
9999         rtx_insn *.
10000
10001 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10002
10003         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
10004         to rtx_insn *; also for local "var_end_seq".
10005         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
10006         (maybe_cleanup_end_of_block): Likewise for param "last" and local
10007         "insn".
10008         (expand_gimple_cond): Likewise for locals "last2" and "last".
10009         (mark_transaction_restart_calls): Likewise for local "insn".
10010         (expand_gimple_stmt): Likewise for return type and locals "last"
10011         and "insn".
10012         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
10013         (avoid_complex_debug_insns): Likewise for param "insn".
10014         (expand_debug_locations): Likewise for locals "insn", "last",
10015         "prev_insn" and "insn2".
10016         (expand_gimple_basic_block): Likewise for local "last".
10017         (construct_exit_block): Likewise for locals "head", "end",
10018         "orig_end".
10019         (pass_expand::execute): Likewise for locals "var_seq",
10020         "var_ret_seq", "next".
10021
10022 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10023
10024         * asan.h (asan_emit_stack_protection): Strengthen return type from
10025         rtx to rtx_insn *.
10026         * asan.c (asan_emit_stack_protection): Likewise.  Add local
10027         "insns" to hold the return value.
10028
10029 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10030
10031         * basic-block.h (bb_note): Strengthen return type from rtx to
10032         rtx_note *.
10033         * sched-int.h (bb_note): Likewise.
10034         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
10035
10036 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10037
10038         * rtl.h (make_insn_raw): Strengthen return type from rtx to
10039         rtx_insn *.
10040
10041         * emit-rtl.c (make_insn_raw): Strengthen return type and local
10042         "insn" from rtx to rtx_insn *.
10043         (make_debug_insn_raw): Strengthen return type from rtx to
10044         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
10045         (make_jump_insn_raw):  Strengthen return type from rtx to
10046         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
10047         (make_call_insn_raw):  Strengthen return type from rtx to
10048         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
10049         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
10050         callback from rtx to rtx_insn *; likewise for local "insn" and
10051         "next", adding a checked cast to rtx_insn in the relevant cases of
10052         the switch statement.
10053         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
10054         callback from rtx to rtx_insn *.
10055         (emit_pattern_after_setloc): Likewise.
10056         (emit_pattern_after): Likewise.
10057         (emit_pattern_before_setloc): Likewise.
10058         (emit_pattern_before): Likewise.
10059
10060 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10061
10062         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
10063         rtx_call_insn *.
10064         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
10065         accepting an rtx_insn *.
10066         (last_call_insn): Strengthen return type from rtx to
10067         rtx_call_insn *.
10068
10069 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10070
10071         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
10072         "insns" from rtx to rtx_insn *.
10073         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
10074         locals "insn" and "prev".
10075
10076 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10077
10078         * rtl.h (tablejump_p): Strengthen third param from rtx * to
10079         rtx_jump_table_data **.
10080
10081         * cfgbuild.c (make_edges): Introduce local "table", using it in
10082         place of "tmp" for jump table data.
10083         (find_bb_boundaries): Strengthen local "table" from rtx to
10084         rtx_jump_table_data *.
10085         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10086         (outgoing_edges_match): Likewise for locals "table1" and "table2".
10087         (try_crossjump_to_edge): Likewise.
10088         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
10089         "table".
10090         (patch_jump_insn): Introduce local "table", using it in place of
10091         "tmp" for jump table data.
10092         (force_nonfallthru_and_redirect): Introduce local "table", so that
10093         call to tablejump_p can receive an rtx_jump_table_data **.  Update
10094         logic around the call to overwrite "note" appropriately if
10095         tablejump_p returns non-zero.
10096         (get_last_bb_insn): Introduce local "table", using it in place of
10097         "tmp" for jump table data.
10098         * dwarf2cfi.c (create_trace_edges): Likewise.
10099
10100         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
10101         from rtx to rtx_jump_table_data *.
10102         (create_fix_barrier): Strengthen local "tmp" from rtx to
10103         rtx_jump_table_data *.
10104         (arm_reorg): Likewise for local "table".
10105
10106         * config/s390/s390.c (s390_chunkify_start): Likewise.
10107
10108         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
10109
10110         * jump.c (delete_related_insns): Strengthen local "lab_next" from
10111         rtx to rtx_jump_table_data *.
10112
10113         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
10114         rtx_jump_table_data **.  Add a checked cast when writing through
10115         the pointer: we know there that local "table" is non-NULL and that
10116         JUMP_TABLE_DATA_P (table) holds.
10117         (label_is_jump_target_p): Introduce local "table", using it in
10118         place of "tmp" for jump table data.
10119
10120 2014-08-19  Marek Polacek  <polacek@redhat.com>
10121
10122         PR c++/62153
10123         * doc/invoke.texi: Document -Wbool-compare.
10124
10125 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10126
10127         * rtl.h (entry_of_function): Strengthen return type from rtx to
10128         rtx_insn *.
10129         * cfgrtl.c (entry_of_function): Likewise.
10130
10131 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10132
10133         * emit-rtl.h (get_insns): Strengthen return type from rtx to
10134         rtx_insn *, adding a checked cast for now.
10135         (get_last_insn): Likewise.
10136
10137 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10138
10139         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
10140         rtx_code_label *.
10141
10142         * emit-rtl.c (gen_label_rtx): Likewise.
10143
10144 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10145
10146         * rtl.h (previous_insn): Strengthen return type from rtx to
10147         rtx_insn *.
10148         (next_insn): Likewise.
10149         (prev_nonnote_insn): Likewise.
10150         (prev_nonnote_insn_bb): Likewise.
10151         (next_nonnote_insn): Likewise.
10152         (next_nonnote_insn_bb): Likewise.
10153         (prev_nondebug_insn): Likewise.
10154         (next_nondebug_insn): Likewise.
10155         (prev_nonnote_nondebug_insn): Likewise.
10156         (next_nonnote_nondebug_insn): Likewise.
10157         (prev_real_insn): Likewise.
10158         (next_real_insn): Likewise.
10159         (prev_active_insn): Likewise.
10160         (next_active_insn): Likewise.
10161
10162         * emit-rtl.c (next_insn): Strengthen return type from rtx to
10163         rtx_insn *, adding a checked cast.
10164         (previous_insn): Likewise.
10165         (next_nonnote_insn): Likewise.
10166         (next_nonnote_insn_bb): Likewise.
10167         (prev_nonnote_insn): Likewise.
10168         (prev_nonnote_insn_bb): Likewise.
10169         (next_nondebug_insn): Likewise.
10170         (prev_nondebug_insn): Likewise.
10171         (next_nonnote_nondebug_insn): Likewise.
10172         (prev_nonnote_nondebug_insn): Likewise.
10173         (next_real_insn): Likewise.
10174         (prev_real_insn): Likewise.
10175         (next_active_insn): Likewise.
10176         (prev_active_insn): Likewise.
10177
10178         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
10179         param "stepfunc" so that it returns an rtx_insn * rather than an
10180         rtx, to track the change to prev_nonnote_insn_bb, which is the
10181         only function this is called with.
10182         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
10183
10184 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
10185
10186         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
10187         assert.
10188
10189 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10190
10191         * coretypes.h (class rtx_debug_insn): Add forward declaration.
10192         (class rtx_nonjump_insn): Likewise.
10193         (class rtx_jump_insn): Likewise.
10194         (class rtx_call_insn): Likewise.
10195         (class rtx_jump_table_data): Likewise.
10196         (class rtx_barrier): Likewise.
10197         (class rtx_code_label): Likewise.
10198         (class rtx_note): Likewise.
10199
10200         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
10201         adding the invariant DEBUG_INSN_P (X).
10202         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
10203         the invariant NONJUMP_INSN_P (X).
10204         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
10205         the invariant JUMP_P (X).
10206         (class rtx_call_insn): New, a subclass of rtx_insn, adding
10207         the invariant CALL_P (X).
10208         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
10209         invariant JUMP_TABLE_DATA_P (X).
10210         (class rtx_barrier): New, a subclass of rtx_insn, adding the
10211         invariant BARRIER_P (X).
10212         (class rtx_code_label): New, a subclass of rtx_insn, adding
10213         the invariant LABEL_P (X).
10214         (class rtx_note): New, a subclass of rtx_insn, adding
10215         the invariant NOTE_P(X).
10216         (is_a_helper <rtx_debug_insn *>::test): New.
10217         (is_a_helper <rtx_nonjump_insn *>::test): New.
10218         (is_a_helper <rtx_jump_insn *>::test): New.
10219         (is_a_helper <rtx_call_insn *>::test): New.
10220         (is_a_helper <rtx_jump_table_data *>::test): New functions,
10221         overloaded for both rtx and rtx_insn *.
10222         (is_a_helper <rtx_barrier *>::test): New.
10223         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
10224         for both rtx and rtx_insn *.
10225         (is_a_helper <rtx_note *>::test): New.
10226
10227 2014-08-19  Marek Polacek  <polacek@redhat.com>
10228
10229         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
10230         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
10231         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
10232         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
10233
10234 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10235
10236         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
10237         rtx_insn *.  To help with transition, for now, convert from an
10238         access macro into a pair of functions: BND_TO, returning an
10239         rtx_insn *, and...
10240         (SET_BND_TO): New function, for use where BND_TO is used as an
10241         lvalue.
10242
10243         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
10244         SET_BND_TO.
10245         (BND_TO): New function, adding a checked cast.
10246         (SET_BND_TO): New function.
10247
10248         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
10249         SET_BND_TO.
10250         (compute_av_set_on_boundaries): Likewise.
10251
10252 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
10253
10254         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
10255         destination if it is used in source.
10256         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
10257         (*popcount<mode>2_falsedep_1): Likewise.
10258
10259 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
10260
10261         PR other/62168
10262         * configure.ac: Set install_gold_as_default to no first.
10263         * configure: Regenerated.
10264
10265 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10266
10267         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
10268         "note_list" field will eventually be an rtx_insn *.  To help with
10269         transition, for now, convert from an access macro into a pair of
10270         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
10271         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
10272         used as an lvalue.
10273
10274         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
10275         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
10276
10277         * sel-sched-ir.c (init_bb): Likewise.
10278         (sel_restore_notes): Likewise.
10279         (move_bb_info): Likewise.
10280         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
10281         (SET_BB_NOTE_LIST): New function.
10282
10283 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10284
10285         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
10286         field will eventually be an rtx_insn *.  To help with transition,
10287         for now, convert from an access macro into a pair of functions:
10288         VINSN_INSN_RTX, returning an rtx_insn *, and...
10289         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
10290         is used as an lvalue.
10291
10292         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
10293         SET_VINSN_INSN_RTX where it's used as an lvalue.
10294         (VINSN_INSN_RTX): New function.
10295         (SET_VINSN_INSN_RTX): New function.
10296
10297 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10298
10299         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
10300         eventually be rtx_insn *, but to help with transition, for now,
10301         convert from an access macro into a pair of functions: DEP_PRO
10302         returning an rtx_insn * and...
10303         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
10304         lvalue, returning an rtx&.
10305         (DEP_CON): Analogous changes to DEP_PRO above.
10306         (SET_DEP_CON): Likewise.
10307
10308         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
10309         an lvalue to SET_DEP_CON.
10310         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
10311         (sd_copy_back_deps): Likewise for DEP_CON.
10312         (DEP_PRO): New function, adding a checked cast for now.
10313         (DEP_CON): Likewise.
10314         (SET_DEP_PRO): New function.
10315         (SET_DEP_CON): Likewise.
10316
10317 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
10318
10319         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
10320         (extra_options): Add i386/cygwin.opt.
10321         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
10322         (CPP_SPEC): Accept -pthread.
10323         (LINK_SPEC): Ditto.
10324         (GOMP_SELF_SPECS): Update comment.
10325         * config/i386/cygwin.opt: New file for -pthread flag.
10326
10327 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10328
10329         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
10330         * df.h (DF_REF_INSN): Convert from a macro to a function, so
10331         that we can return an rtx_insn *.
10332
10333 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
10334
10335         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
10336         when building executables, not DLLs.  Add --large-address-aware
10337         under the same conditions.
10338         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
10339         when building executables, not DLLs.  Add --large-address-aware
10340         under the same conditions when using -m32.
10341
10342         * config/i386/cygwin-stdint.h: Throughout, make type
10343         definitions dependent on target architecture, not host.
10344
10345 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10346
10347         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
10348         the return type from rtx to rtx_insn *,  which will enable various
10349         conversions in followup patches.  For now this is is done by a
10350         checked cast.
10351         (NEXT_INSN): Likewise.
10352         (SET_PREV_INSN): Convert to an inline function.  This is intended
10353         for use as an lvalue, and so returns an rtx& to allow in-place
10354         modification.
10355         (SET_NEXT_INSN): Likewise.
10356
10357 2014-07-08  Mark Wielaard  <mjw@redhat.com>
10358
10359         PR debug/59051
10360         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
10361
10362 2014-08-19  Marek Polacek  <polacek@redhat.com>
10363
10364         PR c/61271
10365         * cgraphunit.c (handle_alias_pairs): Fix condition.
10366
10367 2014-08-19  Richard Biener  <rguenther@suse.de>
10368
10369         * gimple-fold.c (fold_gimple_assign): Properly build a
10370         null-pointer constant when devirtualizing addresses.
10371
10372 2014-07-07  Mark Wielaard  <mjw@redhat.com>
10373
10374         * dwarf2out.c (decl_quals): New function.
10375         (modified_type_die): Take one cv_quals argument instead of two,
10376         one for const and one for volatile.
10377         (add_type_attribute): Likewise.
10378         (generic_parameter_die): Call add_type_attribute with one modifier
10379         argument.
10380         (base_type_for_mode): Likewise.
10381         (add_bounds_info): Likewise.
10382         (add_subscript_info): Likewise.
10383         (gen_array_type_die): Likewise.
10384         (gen_descr_array_type_die): Likewise.
10385         (gen_entry_point_die): Likewise.
10386         (gen_enumeration_type_die): Likewise.
10387         (gen_formal_parameter_die): Likewise.
10388         (gen_subprogram_die): Likewise.
10389         (gen_variable_die): Likewise.
10390         (gen_const_die): Likewise.
10391         (gen_field_die): Likewise.
10392         (gen_pointer_type_die): Likewise.
10393         (gen_reference_type_die): Likewise.
10394         (gen_ptr_to_mbr_type_die): Likewise.
10395         (gen_inheritance_die): Likewise.
10396         (gen_subroutine_type_die): Likewise.
10397         (gen_typedef_die): Likewise.
10398         (force_type_die): Likewise.
10399
10400 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10401
10402         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
10403         if unset.
10404         * configure: Regenerate.
10405
10406 2014-08-19  Richard Biener  <rguenther@suse.de>
10407
10408         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
10409         DECL_EXTERNALs in BLOCKs as non-references.
10410         * tree-streamer-out.c (streamer_write_chain): Likewise.
10411
10412 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10413             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10414             Anna Tikhonova  <anna.tikhonova@intel.com>
10415             Ilya Tocar  <ilya.tocar@intel.com>
10416             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10417             Ilya Verbin  <ilya.verbin@intel.com>
10418             Kirill Yukhin  <kirill.yukhin@intel.com>
10419             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10420
10421         * config/i386/sse.md
10422         (define_mode_iterator VI48_AVX512F): Delete.
10423         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
10424         (define_mode_iterator VI2_AVX512VL): Ditto.
10425         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
10426         Delete.
10427         (define_insn
10428         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
10429         New.
10430         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
10431         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
10432         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
10433         with VI48_AVX512F_AVX512VL): New.
10434         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
10435         with VI2_AVX512VL): Ditto.
10436
10437 2014-08-19  Marek Polacek  <polacek@redhat.com>
10438
10439         * doc/invoke.texi: Document -Wc99-c11-compat.
10440
10441 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10442
10443         * rtl.h (PREV_INSN): Split macro in two: the existing one,
10444         for rvalues, and...
10445         (SET_PREV_INSN): New macro, for use as an lvalue.
10446         (NEXT_INSN, SET_NEXT_INSN): Likewise.
10447
10448         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
10449         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
10450         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
10451         (fixup_abnormal_edges): Likewise.
10452         (unlink_insn_chain): Likewise.
10453         (fixup_reorder_chain): Likewise.
10454         (cfg_layout_delete_block): Likewise.
10455         (cfg_layout_merge_blocks): Likewise.
10456         * combine.c (update_cfg_for_uncondjump): Likewise.
10457         * emit-rtl.c (link_insn_into_chain): Likewise.
10458         (remove_insn): Likewise.
10459         (delete_insns_since): Likewise.
10460         (reorder_insns_nobb): Likewise.
10461         (emit_insn_after_1): Likewise.
10462         * final.c (rest_of_clean_state): Likewise.
10463         (final_scan_insn): Likewise.
10464         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
10465         * haifa-sched.c (concat_note_lists): Likewise.
10466         (remove_notes): Likewise.
10467         (restore_other_notes): Likewise.
10468         (move_insn): Likewise.
10469         (unlink_bb_notes): Likewise.
10470         (restore_bb_notes): Likewise.
10471         * jump.c (delete_for_peephole): Likewise.
10472         * optabs.c (emit_libcall_block_1): Likewise.
10473         * reorg.c (emit_delay_sequence): Likewise.
10474         (fill_simple_delay_slots): Likewise.
10475         * sel-sched-ir.c (sel_move_insn): Likewise.
10476         (sel_remove_insn): Likewise.
10477         (get_bb_note_from_pool): Likewise.
10478         * sel-sched.c (move_nop_to_previous_block): Likewise.
10479
10480         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
10481         * config/c6x/c6x.c (gen_one_bundle): Likewise.
10482         (c6x_gen_bundles): Likewise.
10483         (hwloop_optimize): Likewise.
10484         * config/frv/frv.c (frv_function_prologue): Likewise.
10485         (frv_register_nop): Likewise.
10486         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
10487         (ia64_reorg): Likewise.
10488         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
10489         (mep_make_bundle): Likewise.
10490         (mep_bundle_insns): Likewise.
10491         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
10492         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
10493         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
10494
10495 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10496
10497         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
10498         return type from rtx to rtx_insn *.
10499         (BB_END): Likewise.
10500         (BB_HEADER): Likewise.
10501         (BB_FOOTER): Likewise.
10502         (SET_BB_HEAD): Convert to a function.
10503         (SET_BB_END): Likewise.
10504         (SET_BB_HEADER): Likewise.
10505         (SET_BB_FOOTER): Likewise.
10506
10507         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
10508         Strengthen the return type from rtx to rtx_insn *.  For now, this
10509         is done by adding a checked cast, but this will eventually
10510         become a field lookup.
10511         (BB_END): Likewise.
10512         (BB_HEADER): Likewise.
10513         (BB_FOOTER): Likewise.
10514         (SET_BB_HEAD): New function, from macro of same name.  This is
10515         intended for use as an lvalue, and so returns an rtx& to allow
10516         in-place modification.
10517         (SET_BB_END): Likewise.
10518         (SET_BB_HEADER): Likewise.
10519         (SET_BB_FOOTER): Likewise.
10520
10521 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10522
10523         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
10524         for rvalues, and...
10525         (SET_BB_HEAD): New macro, for use as a lvalue.
10526         (BB_END, SET_BB_END): Likewise.
10527         (BB_HEADER, SET_BB_HEADER): Likewise.
10528         (BB_FOOTER, SET_BB_FOOTER): Likewise.
10529
10530         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
10531         of BB_* macros into SET_BB_* macros.
10532         (fix_crossing_unconditional_branches): Likewise.
10533         * caller-save.c (save_call_clobbered_regs): Likewise.
10534         (insert_one_insn): Likewise.
10535         * cfgbuild.c (find_bb_boundaries): Likewise.
10536         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10537         (outgoing_edges_match): Likewise.
10538         (try_optimize_cfg): Likewise.
10539         * cfgexpand.c (expand_gimple_cond): Likewise.
10540         (expand_gimple_tailcall): Likewise.
10541         (expand_gimple_basic_block): Likewise.
10542         (construct_exit_block): Likewise.
10543         * cfgrtl.c (delete_insn): Likewise.
10544         (create_basic_block_structure): Likewise.
10545         (rtl_delete_block): Likewise.
10546         (rtl_split_block): Likewise.
10547         (emit_nop_for_unique_locus_between): Likewise.
10548         (rtl_merge_blocks): Likewise.
10549         (block_label): Likewise.
10550         (try_redirect_by_replacing_jump): Likewise.
10551         (emit_barrier_after_bb): Likewise.
10552         (fixup_abnormal_edges): Likewise.
10553         (record_effective_endpoints): Likewise.
10554         (relink_block_chain): Likewise.
10555         (fixup_reorder_chain): Likewise.
10556         (fixup_fallthru_exit_predecessor): Likewise.
10557         (cfg_layout_duplicate_bb): Likewise.
10558         (cfg_layout_split_block): Likewise.
10559         (cfg_layout_delete_block): Likewise.
10560         (cfg_layout_merge_blocks): Likewise.
10561         * combine.c (update_cfg_for_uncondjump): Likewise.
10562         * emit-rtl.c (add_insn_after): Likewise.
10563         (remove_insn): Likewise.
10564         (reorder_insns): Likewise.
10565         (emit_insn_after_1): Likewise.
10566         * haifa-sched.c (get_ebb_head_tail): Likewise.
10567         (restore_other_notes): Likewise.
10568         (move_insn): Likewise.
10569         (sched_extend_bb): Likewise.
10570         (fix_jump_move): Likewise.
10571         * ifcvt.c (noce_process_if_block): Likewise.
10572         (dead_or_predicable): Likewise.
10573         * ira.c (update_equiv_regs): Likewise.
10574         * reg-stack.c (change_stack): Likewise.
10575         * sel-sched-ir.c (sel_move_insn): Likewise.
10576         * sel-sched.c (move_nop_to_previous_block): Likewise.
10577
10578         * config/c6x/c6x.c (hwloop_optimize): Likewise.
10579         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
10580
10581 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10582
10583         * rtl.h (for_each_rtx_in_insn): New function.
10584         * rtlanal.c (for_each_rtx_in_insn): Likewise.
10585
10586 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10587
10588         * coretypes.h (class rtx_insn): Add forward declaration.
10589
10590         * rtl.h: Include is-a.h.
10591         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
10592         workaround to ensure gengtype knows inheritance is occurring,
10593         whilst continuing to use the pre-existing special-casing for
10594         rtx_def.
10595         (class rtx_insn): New subclass of rtx_def, adding the
10596         invariant that we're dealing with something we can sanely use
10597         INSN_UID, NEXT_INSN, PREV_INSN on.
10598         (is_a_helper <rtx_insn *>::test): New.
10599         (is_a_helper <const rtx_insn *>::test): New.
10600
10601 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10602
10603         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
10604
10605 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
10606
10607         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
10608         comdats as extern.
10609
10610 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
10611
10612         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
10613         to BUILT_IN_UNREACHABLE.
10614
10615 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
10616
10617         PR target/62011
10618         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
10619         New tune flag.
10620         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
10621         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
10622         (ffs<mode>2): Do not expand with tzcnt for
10623         TARGET_AVOID_FALSE_DEP_FOR_BMI.
10624         (ffssi2_no_cmove): Ditto.
10625         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
10626         (ctz<mode>2): New expander.
10627         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
10628         (*ctz<mode>2_falsedep): New insn.
10629         (*ctz<mode>2): Rename from ctz<mode>2.
10630         (clz<mode>2_lzcnt): New expander.
10631         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
10632         (*clz<mode>2_lzcnt_falsedep): New insn.
10633         (*clz<mode>2): Rename from ctz<mode>2.
10634         (popcount<mode>2): New expander.
10635         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
10636         (*popcount<mode>2_falsedep): New insn.
10637         (*popcount<mode>2): Rename from ctz<mode>2.
10638         (*popcount<mode>2_cmp): Remove.
10639         (*popcountsi2_cmp_zext): Ditto.
10640
10641 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
10642
10643         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
10644         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
10645         * config/microblaze/microblaze.h
10646         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
10647
10648 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
10649
10650         PR other/62168
10651         * configure.ac: Set install_gold_as_default to no for
10652          --enable-gold=no.
10653          * configure: Regenerated.
10654
10655 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
10656
10657         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
10658         * config.in: Add undef of HAVE_isl.
10659         * configure: Regenerate.
10660         * configure.ac: Add definition of HAVE_isl.
10661         * graphite-blocking.c: Add checking of HAVE_isl.
10662         * graphite-dependences.c: Likewise.
10663         * graphite-interchange.c: Likewise.
10664         * graphite-isl-ast-to-gimple.c: Likewise.
10665         * graphite-optimize-isl.c: Likewise.
10666         * graphite-poly.c: Likewise.
10667         * graphite-scop-detection.c: Likewise.
10668         * graphite-sese-to-poly.c: Likewise.
10669         * graphite.c: Likewise.
10670         * toplev.c: Replace the checking of HAVE_cloog with the checking
10671         of HAVE_isl.
10672
10673 2014-08-18  Richard Biener  <rguenther@suse.de>
10674
10675         PR tree-optimization/62090
10676         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
10677         (fold_builtin_3): Do not fold snprintf.
10678         (fold_builtin_4): Likewise.
10679         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
10680         moved from builtins.c.
10681         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
10682         (gimple_fold_builtin): Do not fold sprintf here.
10683
10684 2014-08-18  Richard Biener  <rguenther@suse.de>
10685
10686         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
10687         code to ...
10688         (maybe_canonicalize_mem_ref_addr): ... this function.
10689         (fold_stmt_1): Apply it here before all simplification.
10690
10691 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
10692
10693         PR ipa/61800
10694         * cgraph.h (cgraph_node::create_indirect_edge): Add
10695         compute_indirect_info param.
10696         * cgraph.c (cgraph_node::create_indirect_edge): Compute
10697         indirect_info only when it is required.
10698         * cgraphclones.c (cgraph_clone_edge): Do not recompute
10699         indirect_info fore cloned indirect edge.
10700
10701 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10702             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10703             Anna Tikhonova  <anna.tikhonova@intel.com>
10704             Ilya Tocar  <ilya.tocar@intel.com>
10705             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10706             Ilya Verbin  <ilya.verbin@intel.com>
10707             Kirill Yukhin  <kirill.yukhin@intel.com>
10708             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10709
10710         * config/i386/sse.md
10711         (define_mode_iterator VI8_AVX2_AVX512BW): New.
10712         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
10713
10714 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10715             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10716             Anna Tikhonova  <anna.tikhonova@intel.com>
10717             Ilya Tocar  <ilya.tocar@intel.com>
10718             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10719             Ilya Verbin  <ilya.verbin@intel.com>
10720             Kirill Yukhin  <kirill.yukhin@intel.com>
10721             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10722
10723         * config/i386/sse.md
10724         (define_mode_iterator VF1_AVX512VL): New.
10725         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
10726         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
10727         New.
10728
10729 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10730             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10731             Anna Tikhonova  <anna.tikhonova@intel.com>
10732             Ilya Tocar  <ilya.tocar@intel.com>
10733             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10734             Ilya Verbin  <ilya.verbin@intel.com>
10735             Kirill Yukhin  <kirill.yukhin@intel.com>
10736             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10737
10738         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
10739         * config/i386/i386.md
10740         (define_code_iterator any_float): New.
10741         (define_code_attr floatsuffix): New.
10742         * config/i386/sse.md
10743         (define_mode_iterator VF1_128_256VL): New.
10744         (define_mode_iterator VF2_512_256VL): New.
10745         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
10746         TARGET check.
10747         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
10748         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
10749         New.
10750         (define_mode_attr qq2pssuff): New.
10751         (define_mode_attr sselongvecmode): New.
10752         (define_mode_attr sselongvecmodelower): New.
10753         (define_mode_attr sseintvecmode3): New.
10754         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
10755         New.
10756         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
10757         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
10758         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
10759         (define_insn "ufloatv2siv2df2<mask_name>"): New.
10760
10761 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10762             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10763             Anna Tikhonova  <anna.tikhonova@intel.com>
10764             Ilya Tocar  <ilya.tocar@intel.com>
10765             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10766             Ilya Verbin  <ilya.verbin@intel.com>
10767             Kirill Yukhin  <kirill.yukhin@intel.com>
10768             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10769
10770         * config/i386/sse.md
10771         (define_mode_iterator VF2_AVX512VL): New.
10772         (define_mode_attr sseintvecmode2): New.
10773         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
10774         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
10775         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
10776         (define_insn
10777         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
10778         Ditto.
10779         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
10780         Ditto.
10781         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
10782         Ditto.
10783
10784 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10785             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10786             Anna Tikhonova  <anna.tikhonova@intel.com>
10787             Ilya Tocar  <ilya.tocar@intel.com>
10788             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10789             Ilya Verbin  <ilya.verbin@intel.com>
10790             Kirill Yukhin  <kirill.yukhin@intel.com>
10791             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10792
10793         * config/i386/i386.md
10794         (define_insn "*movoi_internal_avx"): Add evex version.
10795         (define_insn "*movti_internal"): Ditto.
10796
10797 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10798             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10799             Anna Tikhonova  <anna.tikhonova@intel.com>
10800             Ilya Tocar  <ilya.tocar@intel.com>
10801             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10802             Ilya Verbin  <ilya.verbin@intel.com>
10803             Kirill Yukhin  <kirill.yukhin@intel.com>
10804             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10805
10806         * config/i386/i386.md
10807         (define_attr "isa"): Add avx512dq, noavx512dq.
10808         (define_attr "enabled"): Ditto.
10809         * config/i386/sse.md
10810         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
10811
10812 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10813             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10814             Anna Tikhonova  <anna.tikhonova@intel.com>
10815             Ilya Tocar  <ilya.tocar@intel.com>
10816             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10817             Ilya Verbin  <ilya.verbin@intel.com>
10818             Kirill Yukhin  <kirill.yukhin@intel.com>
10819             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10820
10821         * config/i386/i386.c
10822         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
10823         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
10824         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
10825         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
10826         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
10827         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
10828         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
10829         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
10830         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
10831         * config/i386/sse.md
10832         (define_mode_iterator VMOVE): Allow V4TI mode.
10833         (define_mode_iterator V_AVX512VL): New.
10834         (define_mode_iterator V): New handling for AVX512VL.
10835         (define_insn "avx512f_load<mode>_mask"): Delete.
10836         (define_insn "<avx512>_load<mode>_mask"): New.
10837         (define_insn "avx512f_store<mode>_mask"): Delete.
10838         (define_insn "<avx512>_store<mode>_mask"): New.
10839
10840
10841 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
10842
10843         PR sanitizer/62089
10844         * asan.c (instrument_derefs): Fix bitfield check.
10845
10846 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
10847
10848         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
10849         * config/rs6000/htm.md (ttest): Remove clobber.
10850         * config/rs6000/predicates.md (any_mask_operand): New predicate.
10851         (and_operand): Reformat.
10852         (and_2rld_operand): New predicate.
10853         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
10854         parameter.
10855         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
10856         parameter.  Handle AND directly.
10857         (rs6000_split_logical_di): Remove last parameter.
10858         (rs6000_split_logical): Remove last parameter.  Remove obsolete
10859         comment.
10860         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
10861         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
10862         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
10863         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
10864         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
10865         and 5 anonymous splitters):  Delete.
10866         (and<mode>3): New expander.
10867         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
10868         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
10869         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
10870         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
10871         (floatdisf2_internal1): Remove clobbers.
10872         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
10873         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
10874         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
10875         (and<mode>3 for BOOL_128): Remove clobber.
10876         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
10877         rs6000_split_logical.
10878         (*bool<mode>3_internal for BOOL_128): Adjust call of
10879         rs6000_split_logical.
10880         (*boolc<mode>3_internal1 for BOOL_128,
10881         *boolc<mode>3_internal2 for BOOL_128,
10882         *boolcc<mode>3_internal1 for BOOL_128,
10883         *boolcc<mode>3_internal2 for BOOL_128,
10884         *eqv<mode>3_internal1 for BOOL_128,
10885         *eqv<mode>3_internal2 for BOOL_128,
10886         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
10887         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
10888         clobber.
10889         (*vec_reload_and_reg_<mptrsize>): Delete.
10890
10891 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
10892
10893         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
10894         and split, *boolccsi3_internal3 and split): Delete.
10895         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
10896         *boolccdi3_internal3 and split): Delete.
10897         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
10898         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
10899
10900 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
10901
10902         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
10903         and split, *boolcsi3_internal3 and split): Delete.
10904         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
10905         *boolcdi3_internal3 and split): Delete.
10906         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
10907
10908 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
10909
10910         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
10911         <'u'>: Also support printing the low-order 16 bits.
10912         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
10913         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
10914         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
10915         *booldi3_internal3 and split): Delete.
10916         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
10917         *bool<mode>3_dot2): New.
10918         (two anonymous define_splits for non_logical_cint_operand): Merge.
10919
10920 2014-08-17  Marek Polacek  <polacek@redhat.com>
10921             Manuel López-Ibáñez  <manu@gcc.gnu.org>
10922
10923         PR c/62059
10924         * diagnostic.c (adjust_line): Add gcc_checking_assert.
10925         (diagnostic_show_locus): Don't print caret diagnostic
10926         if a column is larger than the line_width.
10927
10928 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
10929
10930         * common.opt: Make the ISL AST generator to be the main code generator
10931         of Graphite.
10932
10933 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
10934
10935         * wide-int.h (generic_wide_int): Declare as class instead of struct.
10936
10937 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
10938
10939         PR target/61641
10940         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
10941         Declare.
10942         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
10943         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
10944         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
10945         Define.
10946         * config/pa/pa.md (begin_brtab): Delete insn.
10947         (end_brtab): Likewise.
10948
10949 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10950
10951         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
10952
10953 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
10954
10955         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
10956         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
10957         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
10958         (get_dynamic_type): Remove.
10959         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
10960         (clear_speculation): Bring to ipa-deivrt.h
10961         (get_class_context): Rename to ...
10962         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
10963         (contains_type_p): Update.
10964         (get_dynamic_type): Rename to ...
10965         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
10966         (possible_polymorphic_call_targets): UPdate.
10967         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
10968         * ipa-prop.c (ipa_analyze_call_uses): Update.
10969
10970 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
10971
10972         * doc/invoke.texi (SH options): Document missing processor variant
10973         options.  Remove references to Hitachi.  Undocument deprecated mspace
10974         option.
10975
10976 2014-08-15  Jason Merrill  <jason@redhat.com>
10977
10978         * tree.c (type_hash_canon): Uncomment assert.
10979
10980 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10981
10982         * input.h (in_system_header_at): Add comment.
10983
10984 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10985
10986         PR fortran/44054
10987         * diagnostic.c (build_message_string): Make it extern.
10988         * diagnostic.h (build_message_string): Make it extern.
10989
10990 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
10991
10992         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
10993         load/store from/to non-floating class pseudo.
10994
10995 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10996
10997         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
10998
10999 2014-08-15  Richard Biener  <rguenther@suse.de>
11000
11001         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
11002         (get_constraint_for_ssa_var): Remove dead code.
11003         (get_constraint_for_1): Adjust.
11004         (find_what_var_points_to): Likewise.
11005         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
11006
11007 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
11008
11009         PR target/61878
11010         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
11011         (_mm512_mask_cmpge_epu32_mask): Ditto.
11012         (_mm512_cmpge_epu32_mask): Ditto.
11013         (_mm512_mask_cmpge_epi64_mask): Ditto.
11014         (_mm512_cmpge_epi64_mask): Ditto.
11015         (_mm512_mask_cmpge_epu64_mask): Ditto.
11016         (_mm512_cmpge_epu64_mask): Ditto.
11017         (_mm512_mask_cmple_epi32_mask): Ditto.
11018         (_mm512_cmple_epi32_mask): Ditto.
11019         (_mm512_mask_cmple_epu32_mask): Ditto.
11020         (_mm512_cmple_epu32_mask): Ditto.
11021         (_mm512_mask_cmple_epi64_mask): Ditto.
11022         (_mm512_cmple_epi64_mask): Ditto.
11023         (_mm512_mask_cmple_epu64_mask): Ditto.
11024         (_mm512_cmple_epu64_mask): Ditto.
11025         (_mm512_mask_cmplt_epi32_mask): Ditto.
11026         (_mm512_cmplt_epi32_mask): Ditto.
11027         (_mm512_mask_cmplt_epu32_mask): Ditto.
11028         (_mm512_cmplt_epu32_mask): Ditto.
11029         (_mm512_mask_cmplt_epi64_mask): Ditto.
11030         (_mm512_cmplt_epi64_mask): Ditto.
11031         (_mm512_mask_cmplt_epu64_mask): Ditto.
11032         (_mm512_cmplt_epu64_mask): Ditto.
11033         (_mm512_mask_cmpneq_epi32_mask): Ditto.
11034         (_mm512_mask_cmpneq_epu32_mask): Ditto.
11035         (_mm512_cmpneq_epu32_mask): Ditto.
11036         (_mm512_mask_cmpneq_epi64_mask): Ditto.
11037         (_mm512_cmpneq_epi64_mask): Ditto.
11038         (_mm512_mask_cmpneq_epu64_mask): Ditto.
11039         (_mm512_cmpneq_epu64_mask): Ditto.
11040         (_mm512_castpd_ps): Ditto.
11041         (_mm512_castpd_si512): Ditto.
11042         (_mm512_castps_pd): Ditto.
11043         (_mm512_castps_si512): Ditto.
11044         (_mm512_castsi512_ps): Ditto.
11045         (_mm512_castsi512_pd): Ditto.
11046         (_mm512_castpd512_pd128): Ditto.
11047         (_mm512_castps512_ps128): Ditto.
11048         (_mm512_castsi512_si128): Ditto.
11049         (_mm512_castpd512_pd256): Ditto.
11050         (_mm512_castps512_ps256): Ditto.
11051         (_mm512_castsi512_si256): Ditto.
11052         (_mm512_castpd128_pd512): Ditto.
11053         (_mm512_castps128_ps512): Ditto.
11054         (_mm512_castsi128_si512): Ditto.
11055         (_mm512_castpd256_pd512): Ditto.
11056         (_mm512_castps256_ps512): Ditto.
11057         (_mm512_castsi256_si512): Ditto.
11058         (_mm512_cmpeq_epu32_mask): Ditto.
11059         (_mm512_mask_cmpeq_epu32_mask): Ditto.
11060         (_mm512_mask_cmpeq_epu64_mask): Ditto.
11061         (_mm512_cmpeq_epu64_mask): Ditto.
11062         (_mm512_cmpgt_epu32_mask): Ditto.
11063         (_mm512_mask_cmpgt_epu32_mask): Ditto.
11064         (_mm512_mask_cmpgt_epu64_mask): Ditto.
11065         (_mm512_cmpgt_epu64_mask): Ditto.
11066         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
11067         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
11068         * config/i386/i386.c (enum ix86_builtins): Add
11069         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
11070         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
11071         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
11072         (bdesc_args): Add __builtin_ia32_si512_256si,
11073         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
11074         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
11075         __builtin_ia32_pd512_pd.
11076         (ix86_expand_args_builtin): Handle new FTYPEs.
11077         * config/i386/sse.md (castmode): Add 512-bit modes.
11078         (AVX512MODE2P): New.
11079         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
11080         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
11081
11082 2014-08-15  Richard Biener  <rguenther@suse.de>
11083
11084         * fold-const.c (tree_swap_operands_p): Put all constants
11085         last, also strip sign-changing NOPs when considering further
11086         canonicalization.  Canonicalize also when optimizing for size.
11087
11088 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11089
11090         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
11091         one_match > zero_match case to just before simple_sequence.
11092
11093 2014-08-15  Richard Biener  <rguenther@suse.de>
11094
11095         * data-streamer.h (streamer_string_index, string_for_index):
11096         Remove.
11097         * data-streamer-out.c (streamer_string_index): Make static.
11098         * data-streamer-in.c (string_for_index): Likewise.
11099         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
11100         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
11101
11102 2014-08-15  Richard Biener  <rguenther@suse.de>
11103
11104         PR tree-optimization/62031
11105         * tree-data-ref.c (dr_analyze_indices): Do not set
11106         DR_UNCONSTRAINED_BASE.
11107         (dr_may_alias_p): All indirect accesses have to go the
11108         formerly DR_UNCONSTRAINED_BASE path.
11109         * tree-data-ref.h (struct indices): Remove
11110         unconstrained_base member.
11111         (DR_UNCONSTRAINED_BASE): Remove.
11112
11113 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
11114
11115         PR middle-end/62092
11116         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
11117         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
11118         in OMP_CLAUSE_MAP in some outer target region.
11119
11120 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
11121
11122         * tree-ssa-loop-ivopts.c (ivopts_data): New field
11123         name_expansion_cache.
11124         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
11125         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
11126         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
11127         (difference_cannot_overflow_p): New parameter.  Use affine
11128         expansion for equality check.
11129         (iv_elimination_compare_lt): Pass new argument.
11130
11131 2014-08-14  DJ Delorie  <dj@redhat.com>
11132
11133         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
11134         variables to the accumulator.
11135
11136         * config/rl78/predicates.md (rl78_near_mem_operand): New.
11137         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
11138         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
11139         with far-far moves.
11140
11141         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
11142         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
11143         (umulqihi3_virt): Likewise.
11144         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
11145         (umulqihi3_real): Likewise.
11146
11147         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
11148
11149 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
11150
11151         PR tree-optimization/62091
11152         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
11153         function_entry_reached.
11154         (walk_aliased_vdefs): Clear it here.
11155         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
11156
11157 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
11158
11159         * ipa-utils.h (compare_virtual_tables): Declare.
11160         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
11161
11162 2014-08-14  Marek Polacek  <polacek@redhat.com>
11163
11164         DR 458
11165         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
11166         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
11167
11168 2014-08-14  Tom de Vries  <tom@codesourcery.com>
11169
11170         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
11171
11172 2014-08-14  Tom de Vries  <tom@codesourcery.com>
11173
11174         PR rtl-optimization/62004
11175         PR rtl-optimization/62030
11176         * ifcvt.c (rtx_interchangeable_p): New function.
11177         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
11178         * emit-rtl.h (mem_attrs_eq_p): Declare.
11179
11180 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
11181
11182         * graphite-scop-detection.c:
11183         Add inclusion of cp-tree.h.
11184         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
11185         in case they are pointers to object types
11186
11187 2014-08-14  Richard Biener  <rguenther@suse.de>
11188
11189         * BASE-VER: Change to 5.0.0
11190
11191 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11192             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11193             Anna Tikhonova  <anna.tikhonova@intel.com>
11194             Ilya Tocar  <ilya.tocar@intel.com>
11195             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11196             Ilya Verbin  <ilya.verbin@intel.com>
11197             Kirill Yukhin  <kirill.yukhin@intel.com>
11198             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11199
11200         * config/i386/sse.md (define_mode_attr avx512): New.
11201         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
11202         V4DI modes.
11203         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
11204         (define_mode_attr ssse3_avx2): Ditto.
11205         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
11206         (define_mode_attr avx2_avx512bw): New.
11207         (define_mode_attr ssedoublemodelower): New.
11208         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
11209         V32HI, V64QI modes.
11210         (define_mode_attr ssebytemode): Allow V8DI modes.
11211         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
11212         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
11213         (define_mode_attr ssePSmode2): New.
11214         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
11215         V16HI, V32HI modes.
11216         (define_mode_attr dbpsadbwmode): New.
11217         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
11218         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
11219         (vi8_sse4_1_avx2_avx512): New.
11220         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
11221         mode attribute.
11222         (define_mode_attr blendbits): Move before its immediate use.
11223
11224 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11225             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11226             Anna Tikhonova  <anna.tikhonova@intel.com>
11227             Ilya Tocar  <ilya.tocar@intel.com>
11228             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11229             Ilya Verbin  <ilya.verbin@intel.com>
11230             Kirill Yukhin  <kirill.yukhin@intel.com>
11231             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11232
11233         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
11234         * config/i386/subst.md
11235         (define_mode_iterator SUBST_V): Update.
11236         (define_mode_iterator SUBST_A): Ditto.
11237         (define_subst_attr "mask_operand7"): New.
11238         (define_subst_attr "mask_operand10"): New.
11239         (define_subst_attr "mask_operand_arg34") : New.
11240         (define_subst_attr "mask_expand_op3"): New.
11241         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
11242         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
11243         (define_subst_attr "mask_avx512vl_condition"): New.
11244         (define_subst_attr "round_mask_operand4"): Ditto.
11245         (define_subst_attr "round_mask_scalar_op3"): Delete.
11246         (define_subst_attr "round_mask_op4"): New.
11247         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
11248         V16SImode.
11249         (define_subst_attr "round_modev8sf_condition"): New.
11250         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
11251         <MODE>mode.
11252         (define_subst_attr "round_saeonly_mask_operand4"): New.
11253         (define_subst_attr "round_saeonly_mask_op4"): New.
11254         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
11255         V8DImode, V16SImode.
11256         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
11257         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
11258         (define_subst_attr "mask_expand4_args"): New.
11259         (define_subst "mask_expand4"): New.
11260
11261 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11262             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11263             Anna Tikhonova  <anna.tikhonova@intel.com>
11264             Ilya Tocar  <ilya.tocar@intel.com>
11265             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11266             Ilya Verbin  <ilya.verbin@intel.com>
11267             Kirill Yukhin  <kirill.yukhin@intel.com>
11268             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11269
11270         * config/i386/i386.md
11271         (define_attr "isa"): Add avx512bw,noavx512bw.
11272         (define_attr "enabled"): Ditto.
11273         (define_split): Add 32/64-bit mask logic.
11274         (define_insn "*k<logic>qi"): New.
11275         (define_insn "*k<logic>hi"): New.
11276         (define_insn "*anddi_1"): Add mask version.
11277         (define_insn "*andsi_1"): Ditto.
11278         (define_insn "*<code><mode>_1"): Ditto.
11279         (define_insn "*<code>hi_1"): Ditto.
11280         (define_insn "kxnor<mode>"): New.
11281         (define_insn "kunpcksi"): New.
11282         (define_insn "kunpckdi"): New.
11283         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
11284         (define_insn "*one_cmplhi2_1"): Ditto.
11285
11286 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11287             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11288             Anna Tikhonova  <anna.tikhonova@intel.com>
11289             Ilya Tocar  <ilya.tocar@intel.com>
11290             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11291             Ilya Verbin  <ilya.verbin@intel.com>
11292             Kirill Yukhin  <kirill.yukhin@intel.com>
11293             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11294
11295         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
11296         V32HImode.
11297
11298 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11299             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11300             Anna Tikhonova  <anna.tikhonova@intel.com>
11301             Ilya Tocar  <ilya.tocar@intel.com>
11302             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11303             Ilya Verbin  <ilya.verbin@intel.com>
11304             Kirill Yukhin  <kirill.yukhin@intel.com>
11305             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11306
11307         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
11308         registers.
11309         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
11310         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
11311         xmm/ymm16+ when availble.
11312         * config/i386/i386.h
11313         (HARD_REGNO_NREGS): Add mask regs.
11314         (VALID_AVX512F_REG_MODE): Ditto.
11315         (VALID_AVX512F_REG_MODE) : Define.
11316         (VALID_MASK_AVX512BW_MODE): Ditto.
11317         (reg_class) (MASK_REG_P(X)): Define.
11318         * config/i386/i386.md: Do not split long moves with mask register,
11319         use kmovb if avx512bw is availible.
11320         (movdi_internal): Handle mask registers.
11321
11322 2014-08-14  Richard Biener  <rguenther@suse.de>
11323
11324         PR tree-optimization/62081
11325         * tree-ssa-loop.c (pass_fix_loops): New pass.
11326         (pass_tree_loop::gate):  Do not fixup loops here.
11327         * tree-pass.h (make_pass_fix_loops): Declare.
11328         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
11329
11330 2014-08-14  Richard Biener  <rguenther@suse.de>
11331
11332         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
11333         (type_hash_canon): ... this and avoid 2nd lookup for the add.
11334
11335 2014-08-14  Richard Biener  <rguenther@suse.de>
11336
11337         PR tree-optimization/62090
11338         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
11339         (fold_builtin_2): Do not fold sprintf.
11340         (fold_builtin_3): Likewise.
11341         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
11342         moved from builtins.c.
11343         (gimple_fold_builtin): Fold sprintf.
11344
11345 2014-08-14  Richard Biener  <rguenther@suse.de>
11346
11347         PR rtl-optimization/62079
11348         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
11349         run cleanup_cfg.
11350
11351 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
11352
11353         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
11354         current_function_decl.
11355
11356 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
11357
11358         * cgraph.c (cgraph_node::function_symbol): Fix wrong
11359         cgraph_function_node to cgraph_node::function_symbol
11360         refactoring.
11361
11362 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
11363
11364         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
11365         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
11366
11367 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
11368
11369         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
11370         warning.
11371
11372 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
11373
11374         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
11375         generator.
11376
11377 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
11378
11379         PR target/62025
11380         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
11381         any registers that are used in mem_insn.
11382
11383 2014-08-12  Steve Ellcey  <sellcey@mips.com>
11384
11385         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler. 
11386
11387 2014-08-12  Steve Ellcey  <sellcey@mips.com>
11388
11389         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
11390         (MULTILIB_DIRNAMES): Ditto.
11391         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
11392         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
11393         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
11394         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
11395         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
11396         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
11397
11398 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11399
11400         PR target/61413
11401         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
11402         of __ARM_SIZEOF_WCHAR_T.
11403
11404 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11405
11406         PR target/62098
11407         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
11408         Remove unnecessary attributes.
11409
11410 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
11411
11412         * internal-fn.c (init_internal_fns): Fix off-by-one.
11413
11414 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11415             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11416             Anna Tikhonova  <anna.tikhonova@intel.com>
11417             Ilya Tocar  <ilya.tocar@intel.com>
11418             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11419             Ilya Verbin  <ilya.verbin@intel.com>
11420             Kirill Yukhin  <kirill.yukhin@intel.com>
11421             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11422
11423         * config/i386/i386.c (standard_sse_constant_opcode): Use
11424         vpxord/vpternlog if avx512 is availible.
11425
11426 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11427
11428         PR middle-end/62103
11429         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
11430         bitfields, that is when size doesn't match the size of type or the
11431         size of the constructor.
11432
11433 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
11434
11435         * config/rs6000/constraints.md (wh constraint): New constraint,
11436         for FP registers if direct move is available.
11437         (wi constraint): New constraint, for VSX/FP registers that can
11438         handle 64-bit integers.
11439         (wj constraint): New constraint for VSX/FP registers that can
11440         handle 64-bit integers for direct moves.
11441         (wk constraint): New constraint for VSX/FP registers that can
11442         handle 64-bit doubles for direct moves.
11443         (wy constraint): Make documentation match implementation.
11444
11445         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
11446         scalar_in_vmx_p field to simplify tests of whether SFmode or
11447         DFmode can go in the Altivec registers.
11448         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
11449         (rs6000_setup_reg_addr_masks): Likewise.
11450         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
11451         field, and wh/wi/wj/wk constraints.
11452         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
11453         the wh/wi/wj/wk constraints.
11454         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
11455         upper registers, prefer VSX registers unless the operation is a
11456         memory operation with REG+OFFSET addressing.
11457
11458         * config/rs6000/vsx.md (VSr mode attribute): Add support for
11459         DImode.  Change SFmode to use ww constraint instead of d to allow
11460         SF registers in the upper registers.
11461         (VSr2): Likewise.
11462         (VSr3): Likewise.
11463         (VSr5): Fix thinko in comment.
11464         (VSa): New mode attribute that is an alternative to wa, that
11465         returns the VSX register class that a mode can go in, but may not
11466         be the preferred register class.
11467         (VS_64dm): New mode attribute for appropriate register classes for
11468         referencing 64-bit elements of vectors for direct moves and normal
11469         moves.
11470         (VS_64reg): Likewise.
11471         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
11472         register allocator to only registers the data type can handle.
11473         (vsx_le_perm_load_<mode>): Likewise.
11474         (vsx_le_perm_store_<mode>): Likewise.
11475         (vsx_xxpermdi2_le_<mode>): Likewise.
11476         (vsx_xxpermdi4_le_<mode>): Likewise.
11477         (vsx_lxvd2x2_le_<mode>): Likewise.
11478         (vsx_lxvd2x4_le_<mode>): Likewise.
11479         (vsx_stxvd2x2_le_<mode>): Likewise.
11480         (vsx_add<mode>3): Likewise.
11481         (vsx_sub<mode>3): Likewise.
11482         (vsx_mul<mode>3): Likewise.
11483         (vsx_div<mode>3): Likewise.
11484         (vsx_tdiv<mode>3_internal): Likewise.
11485         (vsx_fre<mode>2): Likewise.
11486         (vsx_neg<mode>2): Likewise.
11487         (vsx_abs<mode>2): Likewise.
11488         (vsx_nabs<mode>2): Likewise.
11489         (vsx_smax<mode>3): Likewise.
11490         (vsx_smin<mode>3): Likewise.
11491         (vsx_sqrt<mode>2): Likewise.
11492         (vsx_rsqrte<mode>2): Likewise.
11493         (vsx_tsqrt<mode>2_internal): Likewise.
11494         (vsx_fms<mode>4): Likewise.
11495         (vsx_nfma<mode>4): Likewise.
11496         (vsx_eq<mode>): Likewise.
11497         (vsx_gt<mode>): Likewise.
11498         (vsx_ge<mode>): Likewise.
11499         (vsx_eq<mode>_p): Likewise.
11500         (vsx_gt<mode>_p): Likewise.
11501         (vsx_ge<mode>_p): Likewise.
11502         (vsx_xxsel<mode>): Likewise.
11503         (vsx_xxsel<mode>_uns): Likewise.
11504         (vsx_copysign<mode>3): Likewise.
11505         (vsx_float<VSi><mode>2): Likewise.
11506         (vsx_floatuns<VSi><mode>2): Likewise.
11507         (vsx_fix_trunc<mode><VSi>2): Likewise.
11508         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
11509         (vsx_x<VSv>r<VSs>i): Likewise.
11510         (vsx_x<VSv>r<VSs>ic): Likewise.
11511         (vsx_btrunc<mode>2): Likewise.
11512         (vsx_b2trunc<mode>2): Likewise.
11513         (vsx_floor<mode>2): Likewise.
11514         (vsx_ceil<mode>2): Likewise.
11515         (vsx_<VS_spdp_insn>): Likewise.
11516         (vsx_xscvspdp): Likewise.
11517         (vsx_xvcvspuxds): Likewise.
11518         (vsx_float_fix_<mode>2): Likewise.
11519         (vsx_set_<mode>): Likewise.
11520         (vsx_extract_<mode>_internal1): Likewise.
11521         (vsx_extract_<mode>_internal2): Likewise.
11522         (vsx_extract_<mode>_load): Likewise.
11523         (vsx_extract_<mode>_store): Likewise.
11524         (vsx_splat_<mode>): Likewise.
11525         (vsx_xxspltw_<mode>): Likewise.
11526         (vsx_xxspltw_<mode>_direct): Likewise.
11527         (vsx_xxmrghw_<mode>): Likewise.
11528         (vsx_xxmrglw_<mode>): Likewise.
11529         (vsx_xxsldwi_<mode>): Likewise.
11530         (vsx_xscvdpspn): Tighten constraints to only use register classes
11531         the types use.
11532         (vsx_xscvspdpn): Likewise.
11533         (vsx_xscvdpspn_scalar): Likewise.
11534
11535         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
11536         wj, and wk constraints.
11537         (GPR_REG_CLASS_P): New helper macro for register classes targeting
11538         general purpose registers.
11539
11540         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
11541         direct moves.
11542         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
11543         DImode instead of wm.  Use wk constraint for direct move of DFmode
11544         instead of wm.
11545         (extendsidi2_lfiwax): Likewise.
11546         (lfiwax): Likewise.
11547         (lfiwzx): Likewise.
11548         (movdi_internal64): Likewise.
11549
11550         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
11551         wk constraints. Make the wy constraint documentation match them
11552         implementation.
11553
11554 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
11555
11556         Replacement of isl_int by isl_val
11557         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
11558         (compute_bounds_for_param): use isl_val instead of isl_int
11559         (compute_bounds_for_loop): likewise
11560         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
11561         (build_linearized_memory_access): use isl_val instead of isl_int
11562         (pdr_stride_in_loop): likewise
11563         * graphite-optimize-isl.c:
11564         (getPrevectorMap): use isl_val instead of isl_int
11565         * graphite-poly.c:
11566         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
11567         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
11568         (extern the_isl_ctx): declare
11569         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
11570         (extract_affine_gmp): likewise
11571         (wrap): likewise
11572         (build_loop_iteration_domains): likewise
11573         (add_param_constraints): likewise
11574
11575 2014-08-11  Richard Biener  <rguenther@suse.de>
11576
11577         PR tree-optimization/62075
11578         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
11579         handle uses in patterns.
11580
11581 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11582             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11583             Anna Tikhonova  <anna.tikhonova@intel.com>
11584             Ilya Tocar  <ilya.tocar@intel.com>
11585             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11586             Ilya Verbin  <ilya.verbin@intel.com>
11587             Kirill Yukhin  <kirill.yukhin@intel.com>
11588             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11589
11590         * common/config/i386/i386-common.c
11591         (OPTION_MASK_ISA_AVX512VL_SET): Define.
11592         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
11593         (ix86_handle_option): Handle OPT_mavx512vl.
11594         * config/i386/cpuid.h (bit_AVX512VL): Define.
11595         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
11596         set -mavx512vl accordingly.
11597         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11598         OPTION_MASK_ISA_AVX512VL.
11599         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
11600         (ix86_option_override_internal): Define PTA_AVX512VL, handle
11601         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
11602         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
11603         * config/i386/i386.h (TARGET_AVX512VL): Define.
11604         (TARGET_AVX512VL_P(x)): Ditto.
11605         * config/i386/i386.opt: Add mavx512vl.
11606
11607 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
11608
11609         PR tree-optimization/62073
11610         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
11611         a basic block.
11612
11613 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11614             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11615             Anna Tikhonova  <anna.tikhonova@intel.com>
11616             Ilya Tocar  <ilya.tocar@intel.com>
11617             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11618             Ilya Verbin  <ilya.verbin@intel.com>
11619             Kirill Yukhin  <kirill.yukhin@intel.com>
11620             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11621
11622         * common/config/i386/i386-common.c
11623         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
11624         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
11625         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
11626         (ix86_handle_option): Handle OPT_mavx512bw.
11627         * config/i386/cpuid.h (bit_AVX512BW): Define.
11628         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
11629         set -mavx512bw accordingly.
11630         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11631         OPTION_MASK_ISA_AVX512BW.
11632         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
11633         (ix86_option_override_internal): Define PTA_AVX512BW, handle
11634         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
11635         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
11636         * config/i386/i386.h (TARGET_AVX512BW): Define.
11637         (TARGET_AVX512BW_P(x)): Ditto.
11638         * config/i386/i386.opt: Add mavx512bw.
11639
11640 2014-08-11  Richard Biener  <rguenther@suse.de>
11641
11642         PR tree-optimization/62070
11643         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
11644         Remove SSA checking.
11645
11646 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
11647
11648         * asan.c (asan_check_flags): New enum.
11649         (build_check_stmt_with_calls): Removed function.
11650         (build_check_stmt): Split inlining logic to
11651         asan_expand_check_ifn.
11652         (instrument_derefs): Rename parameter.
11653         (instrument_mem_region_access): Rename parameter.
11654         (instrument_strlen_call): Likewise.
11655         (asan_expand_check_ifn): New function.
11656         (asan_instrument): Remove old code.
11657         (pass_sanopt::execute): Change handling of
11658         asan-instrumentation-with-call-threshold.
11659         (asan_clear_shadow): Fix formatting.
11660         (asan_function_start): Likewise.
11661         (asan_emit_stack_protection): Likewise.
11662         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
11663         Update description.
11664         * internal-fn.c (expand_ASAN_CHECK): New function.
11665         * internal-fn.def (ASAN_CHECK): New internal function.
11666         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
11667         Update description.
11668         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
11669         * tree.c: Small comment fix.
11670
11671 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
11672
11673         * gimple.c (gimple_call_fnspec): Support internal functions.
11674         (gimple_call_return_flags): Use const.
11675         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
11676         * internal-fn.def: Add fnspec information.
11677         * internal-fn.h (internal_fn_fnspec): New function.
11678         (init_internal_fns): Declare new function.
11679         * internal-fn.c (internal_fn_fnspec_array): New global variable.
11680         (init_internal_fns): New function.
11681         * tree-core.h: Update macro call.
11682         * tree.c (build_common_builtin_nodes): Initialize internal fns.
11683
11684 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
11685
11686         * lto-streamer.h (struct output_block::symbol): Change from
11687         struct symtab_node to plain symtab_node.
11688         (referenced_from_this_partition_p): Change first parameter
11689         from struct symtab_node to plain symtab_node.
11690
11691 2014-08-10  Marek Polacek  <polacek@redhat.com>
11692
11693         PR c/51849
11694         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
11695
11696 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
11697
11698         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
11699         DECL correctly; do not give up on types in static storage.
11700
11701 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
11702
11703         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
11704
11705 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
11706
11707         * graphite-isl-ast-to-gimple.c:
11708         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
11709
11710         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
11711
11712 2014-08-08  Guozhi Wei  <carrot@google.com>
11713
11714         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
11715
11716 2014-08-08  Cary Coutant  <ccoutant@google.com>
11717
11718         * dwarf2out.c (get_skeleton_type_unit): Remove.
11719         (output_skeleton_debug_sections): Remove skeleton type units.
11720         (output_comdat_type_unit): Likewise.
11721         (dwarf2out_finish): Likewise.
11722
11723 2014-08-07  Yi Yang  <ahyangyi@google.com>
11724
11725         * predict.c (expr_expected_value_1): Remove the redundant assignment.
11726
11727 2014-08-08  Richard Biener  <rguenther@suse.de>
11728
11729         * lto-streamer.h (struct lto_input_block): Make it a class
11730         with a constructor.
11731         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
11732         (struct lto_function_header, struct lto_simple_header,
11733         struct lto_simple_header_with_strings,
11734         struct lto_decl_header, struct lto_function_header): Make
11735         a simple inheritance hieararchy.  Remove unused fields.
11736         (struct lto_asm_header): Remove.
11737         * lto-streamer-out.c (produce_asm): Adjust.
11738         (lto_output_toplevel_asms): Likewise.
11739         (produce_asm_for_decls): Likewise.
11740         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
11741         * data-streamer-in.c (string_for_index): Likewise.
11742         * ipa-inline-analysis.c (inline_read_section): Likewise.
11743         * ipa-prop.c (ipa_prop_read_section): Likewise.
11744         (read_replacements_section): Likewise.
11745         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
11746         * lto-section-in.c (lto_create_simple_input_block): Likewise.
11747         (lto_destroy_simple_input_block): Likewise.
11748         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
11749         (lto_input_toplevel_asms): Likewise.
11750
11751 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11752             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11753             Anna Tikhonova  <anna.tikhonova@intel.com>
11754             Ilya Tocar  <ilya.tocar@intel.com>
11755             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11756             Ilya Verbin  <ilya.verbin@intel.com>
11757             Kirill Yukhin  <kirill.yukhin@intel.com>
11758             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11759
11760         * common/config/i386/i386-common.c
11761         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
11762         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
11763         (ix86_handle_option): Handle OPT_mavx512dq.
11764         * config/i386/cpuid.h (bit_AVX512DQ): Define.
11765         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
11766         set -mavx512dq accordingly.
11767         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11768         OPTION_MASK_ISA_AVX512DQ.
11769         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
11770         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
11771         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
11772         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
11773         * config/i386/i386.h (TARGET_AVX512DQ): Define.
11774         (TARGET_AVX512DQ_P(x)): Ditto.
11775         * config/i386/i386.opt: Add mavx512dq.
11776
11777 2014-08-08  Richard Biener  <rguenther@suse.de>
11778
11779         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
11780         target_percent, target_percent_s): Export.
11781         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
11782         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
11783         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
11784         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
11785         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
11786         Move to gimple-fold.c.
11787         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
11788         strcat and strcpy.
11789         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
11790         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
11791         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
11792         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
11793         (rewrite_call_expr_array): Remove.
11794         (fold_builtin_sprintf_chk): Likewise.
11795         (fold_builtin_snprintf_chk): Likewise.
11796         (fold_builtin_varargs): Remove handling of sprintf_chk,
11797         vsprintf_chk, snprintf_chk and vsnprintf_chk.
11798         (gimple_fold_builtin_sprintf_chk): Remove.
11799         (gimple_fold_builtin_snprintf_chk): Likewise.
11800         (gimple_fold_builtin_varargs): Likewise.
11801         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
11802         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
11803         * gimple.c (gimple_seq_add_seq_without_update): New function.
11804         * gimple.h (gimple_seq_add_seq_without_update): Declare.
11805         * gimple-fold.c: Include output.h.
11806         (gsi_replace_with_seq_vops): New function, split out from ...
11807         (gimplify_and_update_call_from_tree): ... here.
11808         (replace_call_with_value): New function.
11809         (replace_call_with_call_and_fold): Likewise.
11810         (var_decl_component_p): Moved from builtins.c.
11811         (gimple_fold_builtin_memory_op): Moved from builtins.c
11812         fold_builtin_memory_op and rewritten to GIMPLE.
11813         (gimple_fold_builtin_memset): Likewise.
11814         (gimple_fold_builtin_strcpy): Likewise.
11815         (gimple_fold_builtin_strncpy): Likewise.
11816         (gimple_fold_builtin_strcat): Likewise.
11817         (gimple_fold_builtin_fputs): Likewise.
11818         (gimple_fold_builtin_memory_chk): Likewise.
11819         (gimple_fold_builtin_stxcpy_chk): Likewise.
11820         (gimple_fold_builtin_stxncpy_chk): Likewise.
11821         (gimple_fold_builtin_snprintf_chk): Likewise.
11822         (gimple_fold_builtin_sprintf_chk): Likewise.
11823         (gimple_fold_builtin_strlen): New function.
11824         (gimple_fold_builtin_with_strlen): New function split out from
11825         gimple_fold_builtin.
11826         (gimple_fold_builtin): Change signature and handle
11827         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
11828         here.  Call gimple_fold_builtin_with_strlen.
11829         (gimple_fold_call): Adjust.
11830
11831 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
11832
11833         * calls.c (precompute_arguments): Check
11834          promoted_for_signed_and_unsigned_p and set the promoted mode.
11835         (promoted_for_signed_and_unsigned_p): New function.
11836         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
11837         and set the promoted mode.
11838         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
11839         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
11840         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
11841
11842
11843 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
11844
11845         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
11846         instead of SUBREG_PROMOTED_UNSIGNED_SET.
11847         (expand_call): Likewise.
11848         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
11849         to get promoted mode.
11850         * combine.c (record_promoted_value): Skip > 0 comparison with
11851         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
11852         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
11853         of SUBREG_PROMOTED_UNSIGNED_P.
11854         (convert_modes): Likewise.
11855         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
11856         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
11857         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
11858         SUBREG_PROMOTED_UNSIGNED_SET.
11859         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
11860         instead of SUBREG_PROMOTED_UNSIGNED_SET.
11861         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
11862         SUBREG_PROMOTED_SET.
11863         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
11864         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
11865         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
11866         of SUBREG_PROMOTED_UNSIGNED_P.
11867         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
11868         (SUBREG_PROMOTED_SET): New define.
11869         (SUBREG_PROMOTED_GET): Likewise.
11870         (SUBREG_PROMOTED_SIGN): Likewise.
11871         (SUBREG_PROMOTED_SIGNED_P): Likewise.
11872         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
11873         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
11874         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
11875         instead of SUBREG_PROMOTED_UNSIGNED_GET.
11876         (nonzero_bits1): Skip > 0 comparison with the results as
11877         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
11878         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
11879         of !SUBREG_PROMOTED_UNSIGNED_P.
11880         * simplify-rtx.c (simplify_unary_operation_1): Use new
11881         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
11882         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
11883         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
11884         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
11885
11886 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
11887
11888         * ipa-devirt.c: Include gimple-pretty-print.h
11889         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
11890         further tests.
11891         (decl_maybe_in_construction_p): Fix conditional on cdtor check
11892         (get_polymorphic_call_info): Fix return value
11893         (type_change_info): New sturcture based on ipa-prop
11894         variant.
11895         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
11896         based on ipa-prop variant.
11897         (extr_type_from_vtbl_ptr_store): New function
11898         based on ipa-prop variant.
11899         (record_known_type): New function.
11900         (check_stmt_for_type_change): New function.
11901         (get_dynamic_type): New function.
11902         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
11903         * tree-ssa-pre.c: ipa-utils.h
11904         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
11905         machinery; sanity check with ipa-prop devirtualization.
11906         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
11907         polymorphic flag.
11908
11909 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
11910
11911         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
11912         * alias.c, cfgexpand.c, cgraphbuild.c,
11913         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
11914         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
11915         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
11916         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
11917         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
11918         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
11919         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
11920         dse.c, except.c, gengtype.c, gimple-expr.c,
11921         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
11922         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
11923         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
11924         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
11925         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
11926         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
11927         pointer-set.h.
11928         * pointer-set.c: Remove file.
11929         * pointer-set.h: Remove file.
11930
11931 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11932
11933         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
11934         * config/arm/types.md (f_sels, f_seld): Delete.
11935
11936 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11937
11938         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
11939         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
11940         (aarch64_movdi_<mode>high): Likewise.
11941         (aarch64_mov<mode>high_di): Likewise.
11942         (aarch64_movdi_<mode>low): Likewise.
11943         (aarch64_mov<mode>low_di): Likewise.
11944         (aarch64_movtilow_tilow): Likewise.
11945         Add comment explaining usage of fp,simd attributes and of
11946         TARGET_FLOAT and TARGET_SIMD.
11947
11948 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
11949             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11950
11951         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
11952         Use MOVN when one of the half-words is 0xffff.
11953
11954 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
11955
11956         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
11957
11958 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
11959
11960         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
11961         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
11962         (rfs_str): String corresponding to RFS_* constants.
11963         (rank_for_schedule_stats_t): New typedef.
11964         (rank_for_schedule_stats): New static variable.
11965         (rfs_result): New static function.
11966         (rank_for_schedule): Track statistics for deciding heuristics.
11967         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
11968         static functions.
11969         (ready_sort): Use them for debug printouts.
11970         (schedule_block): Init statistics state.  Print statistics on
11971         rank_for_schedule decisions.
11972
11973 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
11974
11975         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
11976
11977 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
11978
11979         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
11980         constraint.
11981
11982 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
11983
11984         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
11985         function to not conflict.
11986         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
11987         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
11988         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
11989         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
11990         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
11991         of pointer_map.
11992
11993 2014-08-07  Marek Polacek  <polacek@redhat.com>
11994
11995         * fold-const.c (fold_binary_loc): Add folding of
11996         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
11997
11998 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
11999
12000         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
12001         instead of type size.
12002         (ASM_FINISH_DECLARE_OBJECT): Likewise.
12003
12004 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
12005
12006         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
12007         (*thumb1_movqi_insn): Likewise.
12008         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
12009
12010 2014-08-07  Tom de Vries  <tom@codesourcery.com>
12011
12012         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
12013         (glibc_2_11_or_earlier): Remove effective-target keywords.
12014
12015 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
12016
12017         * config/arm/arm.c (bdesc_2arg): Fix typo.
12018         (arm_atomic_assign_expand_fenv): Remove The default implementation.
12019
12020 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
12021
12022         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
12023
12024 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
12025
12026         PR debug/61923
12027         * haifa-sched.c (advance_one_cycle): Fix dump.
12028         (schedule_block): Don't advance cycle if we are already at the
12029         beginning of the cycle.
12030
12031 2014-08-06  Martin Jambor  <mjambor@suse.cz>
12032
12033         PR ipa/61393
12034         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
12035
12036 2014-08-06  Richard Biener  <rguenther@suse.de>
12037
12038         PR lto/62034
12039         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
12040         SCCs here.
12041         (lto_input_tree): Pop SCCs here.
12042
12043 2014-08-06  Richard Biener  <rguenther@suse.de>
12044
12045         PR tree-optimization/61320
12046         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
12047         handle misaligned loads.
12048
12049 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
12050
12051         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
12052         (aarch64_expand_vec_perm_const): Check for dup before zip.
12053
12054 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12055
12056         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
12057         CONST_INT_P instead of GET_CODE and compare.
12058         (aarch64_select_cc_mode): Likewise.
12059         (aarch64_print_operand): Likewise.
12060         (aarch64_rtx_costs): Likewise.
12061         (aarch64_simd_valid_immediate): Likewise.
12062         (aarch64_simd_check_vect_par_cnst_half): Likewise.
12063         (aarch64_simd_emit_pair_result_insn): Likewise.
12064
12065 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
12066
12067         * gdbhooks.py (find_gcc_source_dir): New helper function.
12068         (class PassNames): New class, locating and parsing passes.def.
12069         (class BreakOnPass): New command "break-on-pass".
12070
12071 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
12072
12073         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
12074         getting olde.
12075
12076 2014-08-05  Richard Biener  <rguenther@suse.de>
12077
12078         PR rtl-optimization/61672
12079         * emit-rtl.h (mem_attrs_eq_p): Declare.
12080         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
12081         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
12082         * cfgcleanup.c (merge_memattrs): Likewise.
12083         Include emit-rtl.h.
12084
12085 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12086
12087         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
12088         rather than singleton vectors.
12089         (vqdmlsls_lane_s32): Likewise.
12090
12091 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12092
12093         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
12094         Use VSDQ_HSI mode iterator.
12095         (aarch64_sqrdmulh_laneq<mode>): Likewise.
12096         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
12097         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
12098         Use BUILTIN_VDQHS macro.
12099         (sqrdmulh_laneq): Likewise.
12100         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
12101         (vqdmlals_laneq_s32): Likewise.
12102         (vqdmlslh_laneq_s16): Likewise.
12103         (vqdmlsls_laneq_s32): Likewise.
12104         (vqdmulhh_laneq_s16): Likewise.
12105         (vqdmulhs_laneq_s32): Likewise.
12106         (vqrdmulhh_laneq_s16): Likewise.
12107         (vqrdmulhs_laneq_s32): Likewise.
12108
12109 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12110
12111         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
12112         (vmuld_laneq_f64): Likewise.
12113         (vmuls_laneq_f32): Likewise.
12114         (vmul_n_f64): Likewise.
12115         (vmuld_lane_f64): Reimplement in C.
12116         (vmuls_lane_f32): Likewise.
12117
12118 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12119
12120         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
12121         to reservation.
12122         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
12123
12124 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12125
12126         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
12127         (rbitsi2): Likewise.
12128         (*arm_rev): Set predicable and predicable_short_it attributes.
12129
12130 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12131
12132         * convert.c (convert_to_integer): Guard transformation to lrint by
12133         -fno-math-errno.
12134
12135 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
12136
12137         * config/aarch64/aarch64-builtins.c
12138         (aarch64_simd_builtin_type_mode): Delete.
12139         (v8qi_UP): Remap to V8QImode.
12140         (v4hi_UP): Remap to V4HImode.
12141         (v2si_UP): Remap to V2SImode.
12142         (v2sf_UP): Remap to V2SFmode.
12143         (v1df_UP): Remap to V1DFmode.
12144         (di_UP): Remap to DImode.
12145         (df_UP): Remap to DFmode.
12146         (v16qi_UP):V16QImode.
12147         (v8hi_UP): Remap to V8HImode.
12148         (v4si_UP): Remap to V4SImode.
12149         (v4sf_UP): Remap to V4SFmode.
12150         (v2di_UP): Remap to V2DImode.
12151         (v2df_UP): Remap to V2DFmode.
12152         (ti_UP): Remap to TImode.
12153         (ei_UP): Remap to EImode.
12154         (oi_UP): Remap to OImode.
12155         (ci_UP): Map to CImode.
12156         (xi_UP): Remap to XImode.
12157         (si_UP): Remap to SImode.
12158         (sf_UP): Remap to SFmode.
12159         (hi_UP): Remap to HImode.
12160         (qi_UP): Remap to QImode.
12161         (aarch64_simd_builtin_datum): Make mode a machine_mode.
12162         (VAR1): Build builtin name.
12163         (aarch64_init_simd_builtins): Remove dead code.
12164
12165 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
12166
12167         * graphite-isl-ast-to-gimple.c:
12168         (set_options): New function.
12169         (scop_to_isl_ast): Add calling of set_options.
12170
12171 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
12172
12173         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
12174         (analyze_iv_to_split_insn): Don't initialize them.
12175         (get_ivts_expr): Removed.
12176         (allocate_basic_variable, insert_base_initialization): Use
12177         SET_SRC instead of *get_ivts_expr.
12178         (split_iv): Use &SET_SRC instead of get_ivts_expr.
12179
12180 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
12181
12182         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
12183         (translate_isl_ast_for_loop): Add checking of the
12184         flag_loop_parallelize_all.
12185         (ast_build_before_for): New function.
12186         (scop_to_isl_ast): Add checking of the
12187         flag_loop_parallelize_all.
12188         * graphite-dependences.c: Move the defenition of the
12189         scop_get_dependences from graphite-optimize-isl.c to this file.
12190         (apply_schedule_on_deps): Add checking of the ux's emptiness.
12191         (carries_deps): Add checking of the x's value.
12192         * graphite-optimize-isl.c: Move the defenition of the
12193         scop_get_dependences to graphite-dependences.c.
12194         * graphite-poly.h: Add declarations of scop_get_dependences
12195         and carries_deps.
12196
12197 2014-08-04  Rohit  <rohitarulraj@freescale.com>
12198
12199         PR target/60102
12200         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
12201         names.
12202         (alt_reg_names): Likewise.
12203         (rs6000_dwarf_register_span): For SPE high registers, replace
12204         dwarf register numbers with GCC hard register numbers.
12205         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
12206         (rs6000_dbx_register_number): For SPE high registers, return dwarf
12207         register number for the corresponding GCC hard register number.
12208         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
12209         newly added GCC hard register numbers for SPE high registers.
12210         (DWARF_FRAME_REGISTERS):  Likewise.
12211         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
12212         (DWARF_FRAME_REGNUM): Likewise.
12213         (FIXED_REGISTERS): Likewise.
12214         (CALL_USED_REGISTERS): Likewise.
12215         (CALL_REALLY_USED_REGISTERS): Likewise.
12216         (REG_ALLOC_ORDER): Likewise.
12217         (enum reg_class): Likewise.
12218         (REG_CLASS_NAMES): Likewise.
12219         (REG_CLASS_CONTENTS): Likewise.
12220         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
12221
12222 2014-08-04  Richard Biener  <rguenther@suse.de>
12223
12224         * gimple-fold.h (gimple_fold_builtin): Remove.
12225         * gimple-fold.c (gimple_fold_builtin): Make static.
12226         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
12227         fold_stmt, not gimple_fold_builtin.
12228
12229 2014-08-04  Martin Liska <mliska@suse.cz>
12230
12231         * cgraph.h (csi_end_p): Removed.
12232         (csi_next): Likewise.
12233         (csi_node): Likewise.
12234         (csi_start): Likewise.
12235         (cgraph_node_in_set_p): Likewise.
12236         (cgraph_node_set_size): Likewise.
12237         (vsi_end_p): Likewise.
12238         (vsi_next): Likewise.
12239         (vsi_node): Likewise.
12240         (vsi_start): Likewise.
12241         (varpool_node_set_size): Likewise.
12242         (cgraph_node_set_nonempty_p): Likewise.
12243         (varpool_node_set_nonempty_p): Likewise.
12244         * cgraphunit.c (cgraph_process_new_functions): vec replaces
12245         cgraph_node_set.
12246         * ipa-inline-transform.c: Likewise.
12247         * ipa-utils.c (cgraph_node_set_new): Removed.
12248         (cgraph_node_set_add): Likewise.
12249         (cgraph_node_set_remove): Likewise.
12250         (cgraph_node_set_find): Likewise.
12251         (dump_cgraph_node_set): Likewise.
12252         (debug_cgraph_node_set): Likewise.
12253         (free_cgraph_node_set): Likewise.
12254         (varpool_node_set_new): Likewise.
12255         (varpool_node_set_add): Likewise.
12256         (varpool_node_set_remove): Likewise.
12257         (varpool_node_set_find): Likewise.
12258         (dump_varpool_node_set): Likewise.
12259         (free_varpool_node_set): Likewise.
12260         (debug_varpool_node_set): Likewise.
12261         * tree-emutls.c (struct tls_var_data):
12262         (emutls_index): Removed.
12263         (emutls_decl): Likewise.
12264         (gen_emutls_addr): Function implementation uses newly added
12265         hash_map<varpool_node *, tls_var_data>.
12266         (clear_access_vars): Likewise.
12267         (create_emultls_var): Likewise.
12268         (ipa_lower_emutls): Likewise.
12269         (reset_access): New function.
12270
12271 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
12272
12273         * config/i386/i386.c (ix86_option_override_internal): Add
12274         PTA_RDRND and PTA_MOVBE for bdver4.
12275
12276 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12277             James Greenhalgh  <james.greenhalgh@arm.com>
12278
12279         * doc/md.texi (clrsb): Document.
12280         (clz): Change reference to x into operand 1.
12281         (ctz): Likewise.
12282         (popcount): Likewise.
12283
12284 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12285
12286         PR target/61713
12287         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
12288         move to subtarget in serial version if result is ignored.
12289
12290 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12291             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12292
12293         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
12294         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
12295         (sched_analyze_insn): Update use of try_group_insn to
12296         sched_macro_fuse_insns.
12297         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
12298         arguments that are not conditional jumps.
12299
12300 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
12301
12302         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
12303         family information. Handle BTVER2 cpu with cpuid family value.
12304
12305 2014-08-04  Tom de Vries  <tom@codesourcery.com>
12306
12307         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
12308         (glibc_2_11_or_earlier): Document effective-target keywords.
12309
12310 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
12311
12312         * ipa-devirt.c (odr_type_warn_count): Add type.
12313         (possible_polymorphic_call_targets): Set it.
12314         (ipa_devirt): Use it.
12315
12316 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
12317
12318         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
12319         Document.
12320         * ipa-devirt.c: Include hash-map.h
12321         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
12322         (clear_speculation): Break out of ...
12323         (get_class_context): ... here; speed up handling obviously useless
12324         speculations.
12325         (odr_type_warn_count, decl_warn_count): New structures.
12326         (final_warning_record): New structure.
12327         (final_warning_records): New static variable.
12328         (possible_polymorphic_call_targets): Cleanup handling of
12329         speculative info; do not build speculation when user do not care;
12330         record info about warnings when asked for.
12331         (add_decl_warning): New function.
12332         (type_warning_cmp): New function.
12333         (decl_warning_cmp): New function.
12334         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
12335         (gate): Enable pass when warnings are requested.
12336         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
12337         options.
12338
12339 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
12340
12341         * hash-map.h (default_hashmap_traits::mark_key_deleted):
12342         Fix cast.
12343         (hash_map::remove): New method.
12344         (hash_map::traverse): New method.
12345         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
12346         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
12347         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
12348         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
12349         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
12350         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
12351         pointer_map.
12352
12353 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
12354
12355         * hash-set.h: new File.
12356         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
12357         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
12358         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
12359         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
12360         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
12361         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
12362         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
12363         varpool.c: Use hash_set instead of pointer_set.
12364
12365 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
12366
12367         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
12368
12369 2014-08-01  Jiong Wang <jiong.wang@arm.com>
12370
12371         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
12372         for frame access when strict_p is false.
12373
12374 2014-08-01  Renlin Li <renlin.li@arm.com>
12375 2014-08-01  Jiong Wang <jiong.wang@arm.com>
12376
12377         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
12378         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
12379         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
12380         Declaration.
12381         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
12382         predicate.
12383         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
12384         aarch64_mem_pair_offset.
12385
12386 2014-08-01  Jiong Wang <jiong.wang@arm.com>
12387
12388         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
12389         offset.
12390         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
12391         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
12392
12393 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
12394
12395         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
12396
12397 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
12398
12399         PR regression/61510
12400         * cgraphunit.c (analyze_functions): Use get_create rather than get
12401         for decls which are clones of abstract functions.
12402
12403 2014-08-01  Martin Liska  <mliska@suse.cz>
12404
12405         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
12406         * ipa-prop.h (count_formal_params): Global function created from static.
12407         * ipa-prop.c (count_formal_params): Likewise.
12408         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
12409         profiles for semantically equivalent functions.
12410         * passes.c (do_per_function): If we load body of a function
12411         during WPA, this condition should behave same.
12412         * varpool.c (ctor_for_folding): More tolerant assert for variable
12413         aliases created during WPA.
12414
12415 2014-08-01  Martin Liska  <mliska@suse.cz>
12416
12417         * doc/invoke.texi (Options That Control Optimization): Documentation
12418         for -foptimize-strlen introduced. Optimization levels default options
12419         fixed.
12420
12421 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
12422
12423         * opts.c (common_handle_option): Handle -fsanitize=alignment.
12424         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
12425         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
12426         type to bool.
12427         * stor-layout.h (min_align_of_type): New prototype.
12428         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
12429         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
12430         check.
12431         * ubsan.c: Include builtins.h.
12432         (ubsan_expand_bounds_ifn): Change return type to bool,
12433         always return true.
12434         (ubsan_expand_null_ifn): Change return type to bool, change
12435         argument to gimple_stmt_iterator *.  Handle both null and alignment
12436         sanitization, take type from ckind argument's type rather than
12437         first argument.
12438         (instrument_member_call): Removed.
12439         (instrument_mem_ref): Remove t argument, add mem and base arguments.
12440         Handle both null and alignment sanitization, don't say whole
12441         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
12442         call instead of 2 argument.
12443         (instrument_null): Adjust instrument_mem_ref caller.  Don't
12444         instrument calls here.
12445         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
12446         like SANITIZE_NULL.
12447         * stor-layout.c (min_align_of_type): New function.
12448         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
12449         Or it into SANITIZE_UNDEFINED.
12450         * doc/invoke.texi (-fsanitize=alignment): Document.
12451
12452 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12453
12454         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
12455
12456 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12457
12458         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
12459         inchash.
12460         (vn_reference_compute_hash): Dito.
12461         (vn_nary_op_compute_hash): Dito.
12462         (vn_phi_compute_hash): Dito.
12463         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
12464
12465 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12466
12467         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
12468         Rename to inchash:add_expr_commutative. Convert to inchash.
12469         (iterative_hash_hashable_expr): Rename to
12470         inchash:add_hashable_expr. Convert to inchash.
12471         (avail_expr_hash): Dito.
12472
12473 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12474
12475         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
12476         Convert to inchash.
12477
12478 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12479
12480         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
12481
12482 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12483
12484         * Makefile.in (OBJS): Add rtlhash.o
12485         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
12486         (loc_checksum): Dito.
12487         (loc_checksum_ordered): Dito.
12488         (hash_loc_operands): Dito.
12489         (hash_locs): Dito.
12490         (hash_loc_list): Dito.
12491         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
12492         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
12493         * rtlhash.c: New file.
12494         * rtlhash.h: New file.
12495
12496 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12497
12498         * inchash.h (inchash): Change inchash class to namespace.
12499         (class hash): ... Rename from inchash.
12500         (add_object): Move from macro to class template.
12501         * lto-streamer-out.c (hash_tree): Change inchash
12502         to inchash::hash.
12503         * tree.c (build_type_attribute_qual_variant): Dito.
12504         (type_hash_list): Dito.
12505         (attribute_hash_list): Dito.
12506         (iterative_hstate_expr): Rename to inchash::add_expr
12507         (build_range_type_1): Change inchash to inchash::hash
12508         and use hash::add_expr.
12509         (build_array_type_1): Dito.
12510         (build_function_type): Dito
12511         (build_method_type_directly): Dito.
12512         (build_offset_type): Dito.
12513         (build_complex_type): Dito.
12514         (make_vector_type): Dito.
12515         * tree.h (iterative_hash_expr): Dito.
12516
12517 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
12518
12519         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
12520
12521 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
12522
12523         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
12524         correct alphabetical position.
12525         (vpaddd_f64): Rewrite using builtins.
12526         (vpaddd_s64): Move to correct alphabetical position.
12527         (vpaddd_u64): New.
12528
12529 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
12530
12531         PR target/61844
12532         * config/sh/sh.c (sh_legitimate_address_p,
12533         sh_legitimize_reload_address): Handle reg+reg address modes when
12534         ALLOW_INDEXED_ADDRESS is false.
12535         * config/sh/predicates.md (general_movsrc_operand,
12536         general_movdst_operand): Likewise.
12537
12538 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
12539
12540         * config/aarch64/aarch64-builtins.c
12541         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
12542         BYTES_BIG_ENDIAN.
12543
12544 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
12545
12546         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
12547         the generated mask based on BYTES_BIG_ENDIAN.
12548         (aarch64_simd_check_vect_par_cnst_half): New.
12549         * config/aarch64/aarch64-protos.h
12550         (aarch64_simd_check_vect_par_cnst_half): New.
12551         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
12552         the check out to aarch64_simd_check_vect_par_cnst_half.
12553         (vect_par_cnst_lo_half): Likewise.
12554         * config/aarch64/aarch64-simd.md
12555         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
12556         (move_hi_quad_<mode>): Always generate a low mask.
12557
12558 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
12559
12560         * doc/invoke.texi (AVR Options): Add documentation about
12561         __AVR_DEVICE_NAME__ built-in macro.
12562
12563 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
12564
12565         PR target/61948
12566         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
12567         constraints are satisfied.
12568         (<shift>di3_neon): Likewise.
12569
12570 2014-07-31  Richard Biener  <rguenther@suse.de>
12571
12572         PR tree-optimization/61964
12573         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
12574         by structural equality.
12575
12576 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
12577
12578         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
12579         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
12580         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
12581         New enums.
12582         * gcc.c (sanitize_spec_function): Support new option.
12583         (SANITIZER_SPEC): Remove now redundant check.
12584         * opts.c (common_handle_option): Support new option.
12585         (finish_options): Check for incompatibilities.
12586         * toplev.c (process_options): Split userspace-specific checks.
12587
12588 2014-07-31  Richard Biener  <rguenther@suse.de>
12589
12590         * lto-streamer.h (struct output_block): Remove global.
12591         (struct data_in): Remove labels, num_named_labels and
12592         num_unnamed_labels.
12593         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
12594         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
12595
12596 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
12597
12598         PR c++/60517
12599         * common.opt (-Wreturn-local-addr): Moved from c.opt.
12600         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
12601         (isolate_path): New argument to avoid inserting a trap.
12602         (find_implicit_erroneous_behaviour): Handle returning the address
12603         of a local variable.
12604         (find_explicit_erroneous_behaviour): Likewise.
12605
12606 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
12607
12608         PR lto/61868
12609         * toplev.c (init_random_seed): Move piece of code never called to
12610         set_random_seed.
12611         (set_random_seed): see above.
12612
12613 2014-07-31  Tom de Vries  <tom@codesourcery.com>
12614
12615         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
12616
12617 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
12618
12619         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
12620         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
12621
12622 2014-07-31  Richard Biener  <rguenther@suse.de>
12623
12624         * data-streamer.h (streamer_write_data_stream): Declare here,
12625         renamed from ...
12626         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
12627         * lto-cgraph.c (lto_output_node): Adjust.
12628         (lto_output_varpool_node): Likewise.
12629         * data-streamer-out.c (streamer_string_index): Likewise.
12630         (streamer_write_data_stream, lto_append_block): Move from ...
12631         * lto-section-out.c (lto_output_data_stream,
12632         lto_append_block): ... here.
12633
12634 2014-07-30  Mike Stump  <mikestump@comcast.net>
12635
12636         * configure.ac: Also check for popen.
12637         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
12638         * configure: Regenerate.
12639         * config.in:  Regenerate.
12640
12641 2014-07-30  Martin Jambor  <mjambor@suse.cz>
12642
12643         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
12644         parameter to gimple.
12645
12646 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12647
12648         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
12649         address as second parameter to __tpf_eh_return routine.
12650
12651 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
12652
12653         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
12654         Thumb2.
12655
12656 2014-07-30  Tom Tromey  <tromey@redhat.com>
12657
12658         PR c/59855
12659         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
12660         * doc/extend.texi (Type Attributes): Document designated_init
12661         attribute.
12662
12663 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
12664
12665         * graphite-isl-ast-to-gimple.c:
12666         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
12667         (gcc_expression_from_isl_expression): Pass type to
12668         gcc_expression_from_isl_ast_expr_id.
12669
12670 2014-07-30  Richard Biener  <rguenther@suse.de>
12671
12672         * lto-streamer.h (lto_write_data): New function.
12673         * langhooks.c (lhd_append_data): Do not free block.
12674         * lto-section-out.c (lto_write_data): New function writing
12675         raw data to the current section.
12676         (lto_write_stream): Adjust for langhook semantic change.
12677         (lto_destroy_simple_output_block): Write header directly.
12678         * lto-opts.c (lto_write_options): Write options directly.
12679         * lto-streamer-out.c (produce_asm): Write heaeder directly.
12680         (lto_output_toplevel_asms): Likewise.
12681         (copy_function_or_variable): Copy data directly.
12682         (write_global_references): Output index table directly.
12683         (lto_output_decl_state_refs): Likewise.
12684         (write_symbol): Write data directly.
12685         (produce_symtab): Adjust.
12686         (produce_asm_for_decls): Output header and refs directly.
12687
12688 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
12689
12690         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
12691         to speculative_targets
12692         (get_class_context): Fix handling of contextes without outer type;
12693         avoid matching non-polymorphic types in LTO.
12694         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
12695         parameter to speculative_targetsp; handle speculation.
12696         (dump_possible_polymorphic_call_targets): Update dumping.
12697
12698 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
12699
12700         * common.opt (Wodr): Enable by default.
12701
12702 2014-07-29  Olivier Hainque  <hainque@adacore.com>
12703
12704         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
12705
12706 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
12707
12708         PR bootstrap/61914
12709         * gengtype.c (strtoken): New function.
12710         (create_user_defined_type): Replace strtok with strtoken.
12711
12712 2014-07-29  Nathan Sidwell  <nathan@acm.org>
12713
12714         * gcov-io.c (gcov_var): Make hidden.
12715         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
12716         (gcov_do_dump): Declare.
12717         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
12718
12719 2014-07-29  Martin Jambor  <mjambor@suse.cz>
12720
12721         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
12722         parameter to gimple.
12723         (sra_modify_assign): Likewise.
12724
12725 2014-07-29  Richard Biener  <rguenther@suse.de>
12726
12727         PR middle-end/52478
12728         * expr.c (expand_expr_real_2): Revert last change.
12729
12730 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
12731
12732         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
12733         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
12734         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
12735         call.
12736         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
12737         (contains_type_p): Forward declare.
12738         (polymorphic_call_target_hasher::hash): Hash speculative info.
12739         (polymorphic_call_target_hasher::equal): Compare speculative info.
12740         (get_class_context): Handle speuclation.
12741         (contains_type_p): Update.
12742         (get_polymorphic_call_info_for_decl): Update.
12743         (walk_ssa_copies): Break out from ...
12744         (get_polymorphic_call_info): ... here; set speculative context
12745         before giving up.
12746         * ipa-prop.c (ipa_write_indirect_edge_info,
12747         ipa_read_indirect_edge_info): Stream speculative context.
12748         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
12749         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
12750         SPECULATIVE_MAYBE_DERIVED_TYPE).
12751         (possible_polymorphic_call_targets overriders): Update.
12752         (dump_possible_polymorphic_call_targets overriders): Update.
12753         (dump_possible_polymorphic_call_target_p overriders): Update.
12754
12755 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
12756
12757         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
12758         ipa-devirt path; fix thinko there.
12759
12760 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
12761
12762         * config/i386/i386.c (ix86_return_in_memory): Replace one
12763         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
12764
12765 2014-07-28  Marek Polacek  <polacek@redhat.com>
12766
12767         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
12768
12769 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
12770
12771         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
12772         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
12773         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
12774         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
12775         (USE_LD_AS_NEEDED): Likewise.
12776         (ASM_APP_ON): Likewise.
12777         (ASM_APP_OFF): Likewise.
12778         (TARGET_POSIX_IO): Likewise.
12779         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
12780         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
12781         (USE_LD_AS_NEEDED): Likewise.
12782         (ASM_APP_ON): Likewise.
12783         (ASM_APP_OFF): Likewise.
12784         (TARGET_POSIX_IO): Likewise.
12785
12786 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
12787
12788         PR middle-end/61734
12789         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
12790         operators other than the equality operators.
12791
12792 2014-07-28  Richard Biener  <rguenther@suse.de>
12793
12794         PR middle-end/52478
12795         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
12796         sure to register SImode ones, not only >= word_mode ones.
12797         * expr.c (expand_expr_real_2): When expanding -ftrapv
12798         binops do not use OPTAB_LIB_WIDEN.
12799
12800 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
12801
12802         PR middle-end/61919
12803         * tree-outof-ssa.c (insert_partition_copy_on_edge)
12804         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
12805         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
12806         inserting them in the insn stream.
12807
12808 2014-07-28  Marek Polacek  <polacek@redhat.com>
12809
12810         PR middle-end/61913
12811         * common.opt (Wodr): Add Var.
12812
12813 2014-07-28  Richard Biener  <rguenther@suse.de>
12814
12815         PR tree-optimization/61921
12816         * tree-ssa-structalias.c (create_variable_info_for_1): Check
12817         if there is a varpool node before dereferencing it.
12818
12819 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
12820
12821         * graphite-sese-to-poly.c:
12822         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
12823         id of the pbb), which contains pointer to the pbb1.
12824
12825         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
12826
12827 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
12828
12829         * graphite-isl-ast-to-gimple.c:
12830         (graphite_create_new_guard): New function.
12831         (translate_isl_ast_node_if): New function.
12832         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
12833
12834         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
12835
12836 2014-07-27  Anthony Green  <green@moxielogic.com>
12837
12838         * config.gcc: Add moxie-*-moxiebox* configuration.
12839         * config/moxie/moxiebox.h: New file.
12840
12841 2014-07-26  Andrew Pinski  <apinski@cavium.com>
12842
12843         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
12844         from the read only register.
12845
12846 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
12847
12848         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
12849         as the allocation class if it isn't likely to be spilled.
12850
12851 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
12852
12853         * rtl.h (tls_referenced_p): Declare.
12854         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
12855         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
12856         (mips_cannot_force_const_mem): Use tls_referenced_p.
12857         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
12858         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
12859         instead of pa_tls_referenced_p.
12860         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
12861         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
12862         (pa_legitimate_constant_p): Likewise.
12863         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
12864         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
12865         (rs6000_cannot_force_const_mem, rs6000_emit_move)
12866         (rs6000_address_for_altivec): Use tls_referenced_p instead of
12867         rs6000_tls_referenced_p.
12868         (rs6000_tls_symbol_ref_1): Delete.
12869
12870 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
12871
12872         PR target/44551
12873         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
12874         Optimize inverse of a VEC_CONCAT.
12875
12876 2014-07-25  Xinliang David Li  <davidxl@google.com>
12877
12878         * params.def: New parameter.
12879         * coverage.c (get_coverage_counts): Check new flag.
12880         (coverage_compute_profile_id): Check new flag.
12881         (coverage_begin_function): Check new flag.
12882         (coverage_end_function): Check new flag.
12883         * value-prof.c (coverage_node_map_initialized_p): New function.
12884         (init_node_map): Populate map with all functions.
12885         * doc/invoke.texi: Document new parameter.
12886
12887 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
12888             Richard Biener <rguenther@suse.de>
12889
12890         * lto-streamer-out.c (struct sccs): Turn to ...
12891         (class DFS): ... this one; refactor the DFS walk so it can
12892         be re-done on per-SCC basis.
12893         (DFS::DFS): New constructor.
12894         (DFS::~DFS): New destructor.
12895         (hash_tree): Add new MAP argument holding in-SCC hash values;
12896         remove POINTER_TYPE hashing hack.
12897         (scc_entry_compare): Rename to ...
12898         (DFS::scc_entry_compare): ... this one.
12899         (hash_scc): Rename to ...
12900         (DFS::hash_scc): ... this one; pass output_block instead
12901         of streamer_cache; work harder to get unique and stable SCC
12902         hashes.
12903         (DFS_write_tree): Rename to ...
12904         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
12905         (lto_output_tree): Update.
12906
12907 2014-07-25  Andi Kleen  <ak@linux.intel.com>
12908
12909         * lto-streamer-out.c (hash_tree): Convert to inchash.
12910
12911 2014-07-25  Andi Kleen  <ak@linux.intel.com>
12912
12913         * tree.c (build_type_attribute_qual_variant): Use inchash.
12914         (type_hash_list): Dito.
12915         (attribute_hash_list): Dito
12916         (iterative_hstate_expr): Dito.
12917         (iterative_hash_expr): Dito.
12918         (build_range_type_1): Dito.
12919         (build_array_type_1): Dito.
12920         (build_function_type): Dito.
12921         (build_method_type_directly): Dito.
12922         (build_offset_type): Dito.
12923         (build_complex_type): Dito.
12924         (make_vector_type): Dito.
12925         * tree.h (iterative_hash_expr): Add compat wrapper.
12926         (iterative_hstate_expr): Add.
12927
12928 2014-07-25  Andi Kleen  <ak@linux.intel.com>
12929
12930         * Makefile.in (OBJS): Add inchash.o.
12931         (PLUGIN_HEADERS): Add inchash.h.
12932         * ipa-devirt.c: Include inchash.h.
12933         * lto-streamer-out.c: Dito.
12934         * tree-ssa-dom.c: Dito.
12935         * tree-ssa-pre.c: Dito.
12936         * tree-ssa-sccvn.c: Dito.
12937         * tree-ssa-tail-merge.c: Dito.
12938         * asan.c: Dito.
12939         * tree.c (iterative_hash_hashval_t): Move to ...
12940         (iterative_hash_host_wide_int): Move to ...
12941         * inchash.c: Here. New file.
12942         * tree.h (iterative_hash_hashval_t): Move to ...
12943         (iterative_hash_host_wide_int): Move to ...
12944         * inchash.h: Here. New file.
12945
12946 2014-07-25  Richard Biener  <rguenther@suse.de>
12947
12948         PR middle-end/61762
12949         PR middle-end/61894
12950         * fold-const.c (native_encode_int): Add and handle offset
12951         parameter to do partial encodings of expr.
12952         (native_encode_fixed): Likewise.
12953         (native_encode_real): Likewise.
12954         (native_encode_complex): Likewise.
12955         (native_encode_vector): Likewise.
12956         (native_encode_string): Likewise.
12957         (native_encode_expr): Likewise.
12958         * fold-const.c (native_encode_expr): Add offset parameter
12959         defaulting to -1.
12960         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
12961         (fold_ctor_reference): Handle all reads from tcc_constant
12962         ctors.
12963
12964 2014-07-25  Richard Biener  <rguenther@suse.de>
12965
12966         * tree-inline.c (estimate_move_cost): Mark speed_p argument
12967         as possibly unused.
12968
12969 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
12970
12971         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
12972
12973 2014-07-24  Kyle McMartin  <kyle@redhat.com>
12974
12975         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
12976
12977 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12978
12979         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
12980         Add prototype.
12981         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
12982         function.
12983         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
12984         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
12985         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
12986
12987 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12988
12989         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
12990         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
12991         aggregate types.  Instead, *all* aggregate types, except for single-
12992         element or homogeneous float/vector aggregates, are quadword-aligned
12993         if required by their type alignment.  Issue -Wpsabi note when a type
12994         is now treated differently than before.
12995
12996 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12997
12998         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
12999         does not fit fully into floating-point registers, and there is still
13000         space in the register parameter area, use GPRs to pass those parts
13001         of the argument.  Issue -Wpsabi note if any parameter is now treated
13002         differently than before.
13003         (rs6000_arg_partial_bytes): Update.
13004
13005 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
13006
13007         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
13008
13009 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
13010
13011         * rtl.h (target_rtl): Remove lang_dependent_initialized.
13012         * toplev.c (initialize_rtl): Don't use it.  Move previously
13013         "language-dependent" calls to...
13014         (backend_init): ...here.
13015         (lang_dependent_init_target): Don't set lang_dependent_initialized.
13016         Assert that RTL initialization hasn't happend yet.
13017
13018 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
13019
13020         PR rtl-optimization/61629
13021         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
13022         they have already been initialized.
13023
13024 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
13025
13026         PR middle-end/61268
13027         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
13028         DECL_INCOMING_RTL and entry_parm.
13029         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
13030         * calls.c (load_register_parameters): Likewise argument values.
13031         (emit_library_call_value_1, store_one_arg): Likewise argument
13032         save areas.
13033         * config/i386/i386.c (assign_386_stack_local): Likewise the local
13034         stack slot.
13035         * explow.c (validize_mem): Modify the argument in-place.
13036
13037 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13038
13039         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
13040         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
13041
13042 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13043
13044         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
13045         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
13046
13047 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13048
13049         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
13050         (aarch64_save_callee_saves): New parameter "skip_wb".
13051         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
13052
13053 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13054
13055         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
13056         "wb_candidate2".
13057         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
13058
13059 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
13060
13061         * graphite-isl-ast-to-gimple.c:
13062         (graphite_create_new_loop): Add calling of isl_id_free to properly
13063         decrement reference counts.
13064
13065         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
13066
13067 2014-07-24  Martin Liska  <mliska@suse.cz>
13068         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
13069         function used.
13070         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
13071         (rs6000_code_end): Likewise.
13072
13073 2014-07-24  Martin Liska  <mliska@suse.cz>
13074
13075         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
13076         symtab_node funtion used.
13077         (rs6000_xcoff_declare_object_name): Likewise.
13078
13079 2014-07-24  Martin Liska  <mliska@suse.cz>
13080
13081         * cgraphunit.c (compile): Correct function used.
13082
13083 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
13084
13085         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
13086         as non-indexable.
13087
13088 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
13089
13090         PR lto/61802
13091         * varasm.c (bss_initializer_p): Handle offlined ctors.
13092         (align_variable, get_variable_align): Likewise.
13093         (make_decl_one_only): Likewise.
13094         (default_binds_local_p_1): Likewise.
13095         (decl_binds_to_current_def_p): Likewise.
13096         (get_variable_section): Get constructor if it is offlined.
13097         (assemble_variable_contents): Sanity check that the caller
13098         streamed in the ctor in LTO.
13099
13100 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
13101
13102         * graphite-isl-ast-to-gimple.c:
13103         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
13104         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
13105         isl_ast_op_pdiv_r to the different case.
13106
13107         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
13108
13109 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13110
13111         PR middle-end/61876
13112         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
13113         when flag_errno_math is on.
13114
13115 2014-07-24  Martin Liska  <mliska@suse.cz>
13116
13117         * cgraph.h (varpool_node):
13118         (availability get_availability (void)):
13119         created from cgraph_variable_initializer_availability
13120         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
13121         created from: cgraph_variable_initializer_availability
13122         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
13123         (void finalize_named_section_flags (void)):
13124         created from varpool_finalize_named_section_flags
13125         (bool assemble_decl (void)): created from varpool_assemble_decl
13126         (void analyze (void)): created from varpool_analyze_node
13127         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
13128         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
13129         (void remove_initializer (void)): created from varpool_remove_initializer
13130         (tree get_constructor (void)): created from varpool_get_constructor
13131         (bool externally_visible_p (void)): created from varpool_externally_visible_p
13132         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
13133         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
13134         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
13135         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
13136         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
13137         (static bool output_variables (void)): created from varpool_output_variables
13138         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
13139         created from varpool_extra_name_alias
13140         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
13141         (static void dump_varpool (FILE *f)): created from dump_varpool
13142         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
13143         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
13144         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
13145         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
13146         (void assemble_aliases (void)): created from assemble_aliases
13147
13148 2014-07-24  Martin Liska  <mliska@suse.cz>
13149
13150         * cgraph.h (symtab_node):
13151         (void register_symbol (void)): created from symtab_register_node
13152         (void remove (void)): created from symtab_remove_node
13153         (void dump (FILE *f)): created from dump_symtab_node
13154         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
13155         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
13156         (struct ipa_ref *add_reference (symtab_node *referred_node,
13157         enum ipa_ref_use use_type)): created from add_reference 
13158         (struct ipa_ref *add_reference (symtab_node *referred_node,
13159         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
13160         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
13161         gimple stmt)): created from maybe_add_reference
13162         (bool semantically_equivalent_p (symtab_node *target)): created from
13163         symtab_semantically_equivalent_p
13164         (void remove_from_same_comdat_group (void)): created from
13165         remove_from_same_comdat_group
13166         (void add_to_same_comdat_group (symtab_node *old_node)): created from
13167         symtab_add_to_same_comdat_group
13168         (void dissolve_same_comdat_group_list (void)): created from
13169         symtab_dissolve_same_comdat_group_list
13170         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
13171         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
13172         created from symtab_alias_ultimate_target
13173         (inline symtab_node *next_defined_symbol (void)): created from
13174         symtab_next_defined_symbol
13175         (bool resolve_alias (symtab_node *target)): created from
13176         symtab_resolve_alias
13177         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
13178         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
13179         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
13180         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
13181         (void set_section (const char *section)): created from set_section_1 
13182         (enum availability get_availability (void)): created from symtab_node_availability
13183         (void make_decl_local (void)): created from symtab_make_decl_local
13184         (bool real_symbol_p (void)): created from symtab_read_node
13185         (can_be_discarded_p (void)): created from symtab_can_be_discarded
13186         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
13187         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
13188         symtab_in_same_comdat_p;
13189         (bool address_taken_from_non_vtable_p (void)): created from
13190         address_taken_from_non_vtable_p
13191         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
13192         (static void dump_table (FILE *)): created from dump_symtab
13193         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
13194         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
13195         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
13196         symtab_used_from_object_file_p 
13197         (void dump_base (FILE *)): created from dump_symtab_base
13198         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
13199         (void unregister (void)): created from symtab_unregister_node
13200         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
13201         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
13202         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
13203         symtab_nonoverwritable_alias_1
13204         * cgraph.h (cgraph_node):
13205         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
13206         created from cgraph_remove_node_and_inline_clones
13207         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
13208         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
13209         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
13210         (cgraph_node *function_symbol (enum availability *avail = NULL)):
13211         created from cgraph_function_node
13212         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
13213         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
13214         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
13215         created from cgraph_create_clone 
13216         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
13217         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
13218         created from cgraph_create_virtual_clone
13219         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
13220         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
13221         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
13222         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
13223         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
13224         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
13225         created from cgraph_function_version_info
13226         (struct cgraph_function_version_info *insert_new_function_version (void)):
13227         created from insert_new_cgraph_node_version
13228         (struct cgraph_function_version_info *function_version (void)): created from
13229         get_cgraph_node_version
13230         (void analyze (void)): created from analyze_function
13231         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
13232         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
13233         tree real_alias) cgraph_add_thunk
13234         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
13235         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
13236         created from cgraph_function_or_thunk_node
13237         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
13238         created from expand_thunk
13239         (void reset (void)): created from cgraph_reset_node
13240         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
13241         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
13242         (void remove (void)): created from cgraph_remove_node
13243         (void dump (FILE *f)): created from dump_cgraph_node
13244         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
13245         (bool get_body (void)): created from cgraph_get_body
13246         (void release_body (void)): created from cgraph_release_function_body
13247         (void unnest (void)): created from cgraph_unnest_node
13248         (void make_local (void)): created from cgraph_make_node_local
13249         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
13250         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
13251         gcov_type count, int freq)): created from cgraph_create_edge
13252         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
13253         gcov_type count, int freq)): created from cgraph_create_indirect_edge
13254         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
13255         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
13256         created from cgraph_create_edge_including_clones
13257         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
13258         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
13259         (void remove_callers (void)): created from cgraph_node_remove_callers
13260         (void remove_callees (void)): created from cgraph_node_remove_callees
13261         (enum availability get_availability (void)): created from cgraph_function_body_availability
13262         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
13263         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
13264         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
13265         (void call_duplication_hooks (cgraph_node *node2)): created from
13266         cgraph_call_node_duplication_hooks
13267         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
13268         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
13269         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
13270         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
13271         (void call_function_insertion_hooks (void)):
13272         created from cgraph_call_function_insertion_hooks
13273         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
13274         (bool local_p (void)): created from cgraph_local_node
13275         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
13276         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
13277         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
13278         (inline bool only_called_directly_or_aliased_p (void)):
13279         created from cgraph_only_called_directly_or_aliased_p
13280         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
13281         created from cgraph_will_be_removed_from_program_if_no_direct_calls
13282         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
13283         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
13284         (bool can_remove_if_no_direct_calls_p (void)):
13285         created from cgraph_can_remove_if_no_direct_calls_p
13286         (inline bool has_gimple_body_p (void)):
13287         created from cgraph_function_with_gimple_body_p
13288         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
13289         (static void dump_cgraph (FILE *f)): created from dump_cgraph
13290         (static inline void debug_cgraph (void)): created from debug_cgraph
13291         (static void record_function_versions (tree decl1, tree decl2)):
13292         created from record_function_versions
13293         (static void delete_function_version (tree decl)):
13294         created from delete_function_version
13295         (static void add_new_function (tree fndecl, bool lowered)):
13296         created from cgraph_add_new_function
13297         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
13298         (static cgraph_node * create (tree decl)): created from cgraph_create_node
13299         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
13300         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
13301         (static cgraph_node *get_for_asmname (tree asmname)):
13302         created from cgraph_node_for_asm
13303         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
13304         created from cgraph_same_body_alias 
13305         (static bool used_from_object_file_p_worker (cgraph_node *node,
13306         void *): new function
13307         (static bool non_local_p (cgraph_node *node, void *)):
13308         created from cgraph_non_local_node_p_1
13309         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
13310         created from verify_cgraph
13311         (static bool make_local (cgraph_node *node, void *)):
13312         created from cgraph_make_node_local
13313         (static cgraph_node *create_alias (tree alias, tree target)):
13314         created from cgraph_create_function_alias
13315         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
13316         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
13317         created from cgraph_create_edge_1
13318         * cgraph.h (varpool_node):
13319         (void remove (void)): created from varpool_remove_node
13320         (void dump (FILE *f)): created from dump_varpool_node
13321
13322 2014-07-24  Richard Biener  <rguenther@suse.de>
13323
13324         PR ipa/61823
13325         * tree-ssa-structalias.c (create_variable_info_for_1):
13326         Use varpool_get_constructor.
13327         (create_variable_info_for): Likewise.
13328
13329 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13330
13331         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
13332         subtract outgoing area size when restoring stack_pointer_rtx.
13333
13334 2014-07-24  Nick Clifton  <nickc@redhat.com>
13335
13336         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
13337         that operations are taking place in parallel.
13338         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
13339
13340 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
13341
13342         * omp-low.c (extract_omp_for_data): Add missing break statement.
13343
13344 2014-07-24  Richard Biener  <rguenther@suse.de>
13345
13346         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
13347         * tree-inline.c (estimate_move_cost): Add speed_p parameter
13348         and adjust MOVE_RATIO query accordingly.
13349         (estimate_num_insns): Adjust callers.
13350         * ipa-prop.c (ipa_populate_param_decls): Likewise.
13351         * ipa-cp.c (gather_context_independent_values,
13352         estimate_local_effects): Likewise.
13353         * ipa-split.c (consider_split): Likewise.
13354
13355 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
13356
13357         * config/i386/driver-i386.c: Remove names of unused arguments and
13358         unnecessary unused attributes.
13359         * config/i386/host-mingw32.c: Likewise.
13360         * config/i386/i386.c: Likewise.
13361         * config/i386/winnt-stubs.c: Likewise.
13362         * config/i386/winnt.c: Likewise.
13363
13364 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13365
13366         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
13367         (aarch64_gen_loadwb_pair): New helper function.
13368         (aarch64_expand_epilogue): Simplify code using new helper functions.
13369         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
13370
13371 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13372
13373         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
13374         (aarch64_gen_storewb_pair): New helper function.
13375         (aarch64_expand_prologue): Simplify code using new helper functions.
13376         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
13377
13378 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13379
13380         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
13381         Rename to aarch64_save_callee_saves, remove restore code.
13382         (aarch64_restore_callee_saves): New function.
13383
13384 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13385
13386         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
13387         (aarch64_save_callee_saves): New function to handle reg save
13388         for both core and vectore regs.
13389
13390 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13391
13392         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
13393         (aarch64_gen_store_pair): New helper function.
13394         (aarch64_save_or_restore_callee_save_registers)
13395         (aarch64_save_or_restore_fprs): Use new helper functions.
13396
13397 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13398
13399         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
13400         (aarch64_save_or_restore_callee_save_registers)
13401         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
13402
13403 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13404
13405         * config/aarch64/aarch64.c
13406         (aarch64_save_or_restore_callee_save_registers)
13407         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
13408
13409 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13410
13411         * config/aarch64/aarch64.c
13412         (aarch64_save_or_restore_callee_save_registers)
13413         (aarch64_save_or_restore_fprs): Remove 'increment'.
13414
13415 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13416
13417         * config/aarch64/aarch64.c
13418         (aarch64_save_or_restore_callee_save_registers)
13419         (aarch64_save_or_restore_fprs): Use register offset in
13420         cfun->machine->frame.reg_offset.
13421
13422 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13423
13424         * config/aarch64/aarch64.c
13425         (aarch64_save_or_restore_callee_save_registers)
13426         (aarch64_save_or_restore_fprs): Remove base_rtx.
13427
13428 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13429
13430         * config/aarch64/aarch64.c
13431         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
13432         to 'start_offset'.  Remove local variable 'start_offset'.
13433
13434 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13435
13436         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
13437         type to HOST_WIDE_INT.
13438
13439 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13440
13441         * config/aarch64/aarch64.c (aarch64_expand_prologue)
13442         (aarch64_save_or_restore_fprs)
13443         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
13444
13445 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13446
13447         * config/arm/t-rtems-eabi: Add
13448         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
13449         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
13450         mbig-endian/mthumb/march=armv7-r, and
13451         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
13452         multilibs.
13453
13454 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13455             Chris Johns <chrisj@rtems.org>
13456             Joel Sherrill <joel.sherrill@oarcorp.com>
13457
13458         * config.gcc: Add nios2-*-rtems*.
13459         * config/nios2/rtems.h: New file.
13460         * gcc/config/nios2/t-rtems: New file.
13461
13462 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
13463
13464         PR target/61396
13465         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
13466         constant numbers, not general constants.
13467         (rs6000_expand_vector_init): Ditto.
13468
13469 2014-07-23  Nathan Sidwell  <nathan@acm.org>
13470
13471         * gcov-tool.c (gcov_list): Declare here.
13472         (set_gcov_list): Remove.
13473         (gcov_output_files): Set gcov_list directly.
13474
13475 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
13476
13477         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
13478
13479 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13480
13481         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
13482         callee-saved registers are available for padding purpose
13483         and r3 is not mandatory, then prefer use those callee-saved
13484         instead of r3.
13485
13486 2014-07-23  Richard Biener  <rguenther@suse.de>
13487
13488         * params.def (PARAM_MAX_COMBINE_INSNS): New.
13489         * combine.c: Include statistics.h and params.h.
13490         (combine_instructions): Guard three and four insn combines
13491         with max-combine-insns value.  Record statistics for combines
13492         performed.
13493         * doc/invoke.texi (max-combine-insns): Document new param.
13494
13495 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
13496
13497         * graphite-isl-ast-to-gimple.c:
13498         (translate_isl_ast_node_block): New function.
13499         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
13500
13501         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
13502         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
13503
13504 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
13505
13506         * graphite-isl-ast-to-gimple.c:
13507         (get_max_schedule_dimensions): New function.
13508         (extend_schedule): Likewise.
13509         (generate_isl_schedule): Add calling of extend_schedule and
13510         get_max_schedule_dimensions.
13511
13512 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13513
13514         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
13515         (case UNSPEC): Handle UNSPEC_RBIT.
13516
13517 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13518
13519         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
13520         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
13521
13522 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13523
13524         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
13525
13526 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
13527
13528         * graphite-isl-ast-to-gimple.c:
13529         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
13530         (ivs_params_clear):
13531         (build_iv_mapping): New function.
13532         (translate_isl_ast_node_user): Likewise.
13533         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
13534
13535         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
13536         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
13537         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
13538
13539 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
13540
13541         PR target/55701
13542         * config/arm/arm.md (setmem): New pattern.
13543         * config/arm/arm-protos.h (struct tune_params): New fields.
13544         (arm_gen_setmem): New prototype.
13545         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
13546         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
13547         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
13548         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
13549         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
13550         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
13551         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
13552         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
13553         (arm_const_inline_cost): New function.
13554         (arm_block_set_max_insns): New function.
13555         (arm_block_set_non_vect_profit_p): New function.
13556         (arm_block_set_vect_profit_p): New function.
13557         (arm_block_set_unaligned_vect): New function.
13558         (arm_block_set_aligned_vect): New function.
13559         (arm_block_set_unaligned_non_vect): New function.
13560         (arm_block_set_aligned_non_vect): New function.
13561         (arm_block_set_vect, arm_gen_setmem): New functions.
13562
13563 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
13564
13565         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
13566
13567 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
13568
13569         PR target/61855
13570         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
13571         out of #ifdef __OPTIMIZE__.
13572
13573 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
13574
13575         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
13576         different trapping status if -fnon-call-exceptions is enabled.
13577
13578 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
13579
13580         * expr.c (store_field): Handle VOIDmode for calls that return values
13581         in multiple locations.
13582
13583 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13584
13585         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
13586         (altivec_vsldoi_<mode>): Likewise.
13587
13588 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
13589
13590         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
13591         to the number of characters in the line.
13592
13593 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
13594
13595         * graphite-isl-ast-to-gimple.c: Add using of
13596         build_nonstandard_integer_type instead of int128_integer_type_node.
13597
13598 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
13599
13600         * toplev.c (output_stack_usage): Adjust the location of the warning.
13601
13602 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
13603
13604         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
13605         (*membar_storeload): Disable for LEON3.
13606
13607 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13608
13609         PR rtl-optimization/61461
13610         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
13611
13612 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
13613
13614         PR target/61794
13615         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
13616         Fix instruction constraint.
13617         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
13618
13619 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
13620
13621         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
13622
13623 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
13624
13625         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
13626         GNU coding standards.
13627         (nds32_register_move_cost): Likewise.
13628         (nds32_memory_move_cost): Likewise.
13629         (nds32_address_cost): Likewise.
13630
13631 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13632
13633         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
13634
13635 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
13636
13637         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
13638         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
13639         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
13640         (HAVE_sync_compare_and_swapqi): Define.
13641         (HAVE_sync_compare_and_swaphi): Likewise.
13642         (HAVE_sync_compare_and_swapsi): Likewise.
13643
13644 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
13645
13646         * config/mips/p5600.md: Add missing cpu tests.
13647
13648 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13649
13650         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
13651         (vmla_f64): Likewise.
13652         (vfms_f64): Likewise.
13653         (vmls_f64): Likewise.
13654
13655 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13656
13657         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
13658         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
13659
13660 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13661
13662         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
13663         (vmlal_high_lane_s32): Likewise.
13664         (vmlal_high_lane_u16): Likewise.
13665         (vmlal_high_lane_u32): Likewise.
13666         (vmlsl_high_lane_s16): Likewise.
13667         (vmlsl_high_lane_s32): Likewise.
13668         (vmlsl_high_lane_u16): Likewise.
13669         (vmlsl_high_lane_u32): Likewise.
13670
13671 2014-07-17  Terry Guo  <terry.guo@arm.com>
13672
13673         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
13674         (alus_reg): Renamed to alus_sreg.
13675         * config/arm/arm-fixed.md: Change type of non-dsp instructions
13676         from alu_reg to alu_sreg.  Change type of dsp instructions from
13677         alu_reg to alu_dsp_reg.
13678         * config/arm/thumb1.md: Likewise.
13679         * config/arm/thumb2.md: Likewise.
13680         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
13681         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
13682         with alu_sreg and alus_sreg.
13683         * config/arm/arm1026ejs.md (alu_op): Likewise.
13684         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
13685         * config/arm/arm926ejs.md (9_alu_op): Likewise.
13686         * config/arm/fa526.md (526_alu_op): Likewise.
13687         * config/arm/fa606te.md (606te_alu_op): Likewise.
13688         * config/arm/fa626te.md (626te_alu_op): Likewise.
13689         * config/arm/fa726te.md (726te_alu_op): Likewise.
13690         * config/arm/fmp626.md (mp626_alu_op): Likewise.
13691         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
13692         alu_sreg, alu_dsp_reg and alus_sreg.
13693         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
13694         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
13695         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
13696         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
13697         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
13698         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
13699         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
13700         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
13701         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
13702         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
13703         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
13704         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
13705         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
13706         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
13707         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
13708         alus_reg to alus_sreg.
13709
13710 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
13711
13712         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
13713         infinity format.
13714
13715 2014-07-17  Richard Biener  <rguenther@suse.de>
13716
13717         PR rtl-optimization/61801
13718         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
13719         don't set reg_pending_barrier if it appears in a debug-insn.
13720
13721 2014-07-16  DJ Delorie  <dj@redhat.com>
13722
13723         * config/rx/rx.c (rx_option_override): Fix alignment values.
13724         (rx_align_for_label): Likewise.
13725
13726 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
13727
13728         PR target/61737.
13729         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
13730         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
13731         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
13732         functions.
13733         (cris_print_index, cris_print_operand, cris_constant_index_p)
13734         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
13735         (cris_address_cost): Ditto last CONSTANT_P.
13736         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
13737         callers changed.  Yield cris_offsettable_symbol for non-PIC
13738         constant symbolic expressions including labels.  Yield cris_unspec
13739         for all unspecs.
13740         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
13741         target to pic_offset_table_rtx for calls that will likely go
13742         through PLT, const0_rtx when they can't.  All callers changed.
13743         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
13744         symbolic expressions to be PICified.  Remove second, redundant,
13745         assert on can_create_pseudo_p returning non-zero.  Use
13746         replace_equiv_address_nv, not replace_equiv_address, for final
13747         operand update.
13748         * config/cris/cris.md ("movsi"): Move variable t to pattern
13749         toplevel. Adjust assert for new cris_symbol_type member.  Use
13750         CONSTANT_P instead of CONSTANT_ADDRESS_P.
13751         ("*movsi_internal") <case 9>: Make check for valid unspec operands
13752         for lapc stricter.
13753         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
13754         ("call", "call_value"): Use second incoming operand as a marker
13755         for pic-offset-table-register being used.
13756         ("*expanded_call_non_v32", "*expanded_call_v32")
13757         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
13758         second incoming operand to CALL, match cris_call_type_marker.
13759         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
13760         ("*expanded_call_side"): Ditto.  Fix typo in comment.
13761         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
13762         CONSTANT_P.
13763         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
13764         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
13765         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
13766         users changed.  Add members cris_offsettable_symbol and cris_unspec.
13767         (cris_symbol_type): Rename from cris_pic_symbol_type.
13768         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
13769         just CONSTANT_P.
13770         * config/cris/cris-protos.h (cris_symbol_type_of,
13771         cris_expand_pic_call_address): Adjust prototypes.
13772         (cris_legitimate_constant_p): New prototype.
13773
13774         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
13775         an existing tmake_file.  Don't add t-slibgcc and t-linux.
13776
13777 2014-07-17  Jason Merrill  <jason@redhat.com>
13778
13779         PR c++/61623
13780         * symtab.c (symtab_remove_from_same_comdat_group): Also
13781         set_comdat_group to NULL_TREE.
13782         (verify_symtab): Fix diagnostic.
13783
13784 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
13785
13786         PR target/61662
13787         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
13788
13789 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
13790
13791         Support location tracking for built-in macro tokens
13792         * input.h (is_location_from_builtin_token): New function declaration.
13793         * input.c (is_location_from_builtin_token): New function definition.
13794         * toplev.c (general_init): Tell libcpp what the pre-defined
13795         spelling location for built-in tokens is.
13796
13797 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
13798
13799         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
13800         on the FUNCTION_DECL.
13801
13802 2014-07-16  Richard Biener  <rguenther@suse.de>
13803
13804         PR other/61782
13805         * doc/extend.texi (always_inline): Clarify.
13806
13807 2014-07-15  Eric Christopher  <echristo@gmail.com>
13808
13809         * doc/invoke.texi (Link Options): Document -z option.
13810
13811 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
13812
13813         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
13814         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
13815
13816 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
13817
13818         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
13819
13820 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
13821
13822         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
13823         varpool_assemble_decl.
13824         * varpool.c (varpool_assemble_decl): Assert that node->definition is
13825         true.
13826
13827 2014-07-15  Michael Matz  <matz@suse.de>
13828
13829         PR rtl-optimization/61772
13830         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
13831
13832 2014-07-15  Richard Biener  <rguenther@suse.de>
13833
13834         * opts.c (default_options_table): Disable bit-ccp at -Og.
13835
13836 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
13837
13838         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
13839
13840 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
13841
13842         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
13843         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
13844         call langhook for unknown declaration.
13845         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
13846         * tree.h (DECL_ARGUMENTS): Update.
13847         * print-tree.c (print_node): Update.
13848         * tree-core.h (tree_decl_non_common): Remove arguments.
13849         (tree_function_decl): Add arguments.
13850
13851 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
13852
13853         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
13854
13855 2014-07-14  Richard Biener  <rguenther@suse.de>
13856
13857         PR tree-optimization/61779
13858         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
13859         simplifying a condition.
13860
13861 2014-07-14  Richard Biener  <rguenther@suse.de>
13862
13863         * builtins.c (c_strlen): Make only_value == 2 really only
13864         affect warning generation.
13865
13866 2014-07-14  Richard Biener  <rguenther@suse.de>
13867
13868         PR tree-optimization/61757
13869         PR tree-optimization/61783
13870         PR tree-optimization/61787
13871         * tree-ssa-dom.c (record_equality): Revert canonicalization
13872         change and add comment.
13873         (propagate_rhs_into_lhs): Revert previous fix, removing
13874         loop depth restriction again.
13875
13876 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13877
13878         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
13879         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
13880         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
13881         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
13882         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
13883         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
13884         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
13885
13886 2014-07-14  Richard Biener  <rguenther@suse.de>
13887
13888         * cgraph.h (decl_in_symtab_p): Make inline.
13889
13890 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
13891
13892         PR middle-end/61294
13893         * doc/invoke.texi (-Wmemset-transposed-args): Document.
13894
13895         PR target/61656
13896         * config/i386/i386.c (classify_argument): Don't merge classes above
13897         number of words.
13898
13899 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
13900
13901         * cgraph.h (symtab_node): Add nonzero_address.
13902         (decl_in_symtab_p): Break out from ...
13903         (symtab_get_node): ... here.
13904         * fold-const.c: Include cgraph.h
13905         (tree_single_nonzero_warnv_p): Use symtab to determine
13906         if symbol is non-zero.
13907         * symtab.c (symtab_node::nonzero_address): New method.
13908
13909 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
13910
13911         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
13912         forgotten in previous commit.
13913
13914 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
13915
13916         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
13917         on builtin types.
13918         * ipa-devirt.c: Include stor-layout.h and intl.h
13919         (odr_subtypes_equivalent_p): New function.
13920         (warn_odr): New function.
13921         (warn_type_mismatch): New function.
13922         (odr_types_equivalent_p): New function.
13923         (add_type_duplicate): Use it.
13924         * common.opt (Wodr): New flag.
13925         * doc/invoke.texi (Wodr): Document new warning.
13926
13927 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
13928
13929         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
13930         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
13931         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
13932         (varpool_get_constructor): Push CTORS_IN timevar.
13933         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
13934
13935 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
13936
13937         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
13938         Remove VOID_FTYPE_PUSHORT.
13939         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
13940         Change code to USHORT_FTYPE_VOID.
13941         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
13942         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
13943         (ix86_atomic_assign_expand_fenv): Update for
13944         __builtin_ia32_fnstsw changes.
13945         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
13946         (fnstsw): Change operand 0 to nonimmediate operand.
13947
13948 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
13949
13950         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
13951         (varpool_get_constructor): New function.
13952         (varpool_ctor_useable_for_folding_p): Break out from ...
13953         (ctor_for_folding): ... here; use varpool_get_constructor.
13954         (varpool_assemble_decl): Likewise.
13955         * lto-streamer.h (struct output_block): Turn cgraph_node
13956         to symbol filed.
13957         (lto_input_variable_constructor): Declare.
13958         * ipa-visibility.c (function_and_variable_visibility): Use
13959         varpool_get_constructor.
13960         * cgraph.h (varpool_get_constructor): Declare.
13961         (varpool_ctor_useable_for_folding_p): New function.
13962         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
13963         parameter; return error_mark_node for non-trivial constructors.
13964         (lto_write_tree_1, DFS_write_tree): Update use of
13965         get_symbol_initial_value.
13966         (output_function): Update initialization of symbol.
13967         (output_constructor): New function.
13968         (copy_function): Rename to ..
13969         (copy_function_or_variable): ... this one; handle vars too.
13970         (lto_output): Output variable sections.
13971         * lto-streamer-in.c (input_constructor): New function.
13972         (lto_read_body): Rename from ...
13973         (lto_read_body_or_constructor): ... this one; handle vars too.
13974         (lto_input_variable_constructor): New function.
13975         * ipa-prop.c (ipa_prop_write_jump_functions,
13976         ipa_prop_write_all_agg_replacement): Update.
13977         * lto-cgraph.c (compute_ltrans_boundary): Use it.
13978         (output_cgraph_opt_summary): Set symbol to NULL.
13979
13980 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
13981
13982         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
13983         non-polymorphic types.
13984         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
13985         * ipa-devirt.c (types_same_for_odr): Do not explode when one
13986         of types is not polymorphic.
13987
13988 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
13989
13990         * lra-constraints.c (remove_inheritance_pseudos): Process
13991         destination pseudo too.
13992
13993 2014-07-11  Rong Xu  <xur@google.com>
13994
13995         * gcov-tool.c (gcov_output_files): Fix build error introduced in
13996         commit r212448.
13997
13998 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
13999
14000         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
14001         * config/avr/avr-devices.c (AVR_MCU): Same.
14002         (avr_mcu_types): add text start value to end of device list.
14003         * config/avr/avr-mcus.def: Add text section start for all devices.
14004         (ata5782): Add new avr5 device.
14005         (ata5831): Same.
14006         * config/avr/avr-tables.opt: Regenerate.
14007         * config/avr/avr.h: Add declaration for text section start handler.
14008         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
14009         SPEC functions.
14010         (LINK_SPEC): Include text section start handler to linker spec.
14011         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
14012         pass -Ttext option to linker if the text section start for the device
14013         is not zero.
14014         * config/avr/t-multilib: Regenerate.
14015         * doc/avr-mmcu.texi: Regenerate.
14016
14017 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
14018
14019         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
14020         * config/rs6000/aix52.h (LINK_SPEC): Same.
14021         * config/rs6000/aix53.h (LINK_SPEC): Same.
14022         * config/rs6000/aix61.h (LINK_SPEC): Same.
14023         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
14024
14025 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
14026
14027         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
14028         (graphite_verify): New function.
14029         (ivs_params_clear): New function.
14030         (gcc_expression_from_isl_ast_expr_id): New function.
14031         (gcc_expression_from_isl_expr_int): New function.
14032         (binary_op_to_tree): New function.
14033         (ternary_op_to_tree): New function.
14034         (unary_op_to_tree): New function.
14035         (nary_op_to_tree): New function.
14036         (gcc_expression_from_isl_expr_op): New function.
14037         (gcc_expression_from_isl_expression): New function.
14038         (graphite_create_new_loop): New function.
14039         (translate_isl_ast_for_loop): New function.
14040         (get_upper_bound): New function.
14041         (graphite_create_new_loop_guard): New function.
14042         (translate_isl_ast_node_for): New function.
14043         (translate_isl_ast): New function.
14044         (add_parameters_to_ivs_params): New function.
14045         (scop_to_isl_ast): New parameter ip.
14046         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
14047
14048 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
14049
14050         * config/xtensa/predicates.md (call expander): Update for
14051         DECL_SECTION_NAME being string.
14052
14053 2014-07-11  Richard Biener  <rguenther@suse.de>
14054
14055         PR middle-end/61473
14056         * builtins.c (fold_builtin_memory_op): Inline memory moves that
14057         can be implemented with a single load followed by a single store.
14058         (c_strlen): Only warn when only_value is not 2.
14059
14060 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
14061
14062         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
14063
14064 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
14065
14066         PR target/61561
14067         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
14068         (*movhi_bytes): Likewise.
14069         (*arm_movqi_insn): Likewise.
14070
14071 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
14072
14073         PR target/56858
14074         * config/alpha/alpha.c: Include tree-pass.h, context.h
14075         and pass_manager.h.
14076         (pass_data_handle_trap_shadows): New pass.
14077         (pass_handle_trap_shadows::gate): New pass gate function.
14078         (make_pass_handle_trap_shadows): New function.
14079         (rest_of_handle_trap_shadows): Ditto.
14080
14081         (alpha_align_insns_1): Rename from alpha_align_insns.
14082         (pass_data_align_insns): New pass.
14083         (pass_align_insns::gate): New pass gate function.
14084         (make_pass_aling_insns): New function.
14085         (rest_of_align_insns): Ditto.
14086         (alpha_align_insns): Ditto.
14087
14088         (alpha_option_override): Declare handle_trap_shadows info
14089         and align_insns_info.  Register handle_trap_shadows and align_insns
14090         passes here.
14091         (alpha_reorg): Do not call alpha_trap_shadows and
14092         alpha_align_insn from here.
14093
14094         (alpha_pad_function_end): Do not skip BARRIERs.
14095
14096 2014-07-10  Rong Xu  <xur@google.com>
14097
14098         Add gcov-tool: an offline gcda profile processing tool support.
14099         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
14100         (gcov_is_error): Ditto.
14101         (gcov_read_string): Ditto.
14102         (gcov_read_sync): Ditto.
14103         * gcov-io.h: Move counter defines to gcov-counter.def.
14104         * gcov-dump.c (tag_counters): Use gcov-counter.def.
14105         * coverage.c: Ditto.
14106         * gcov-tool.c: Offline gcda profile processing tool.
14107         (unlink_gcda_file): Remove one gcda file.
14108         (unlink_profile_dir): Remove gcda files from the profile path.
14109         (gcov_output_files): Output gcda files to an output dir.
14110         (profile_merge): Merge two profiles in directory.
14111         (print_merge_usage_message): Print merge usage.
14112         (merge_usage): Print merge usage and exit.
14113         (do_merge): Driver for profile merge sub-command.
14114         (profile_rewrite): Rewrite profile.
14115         (print_rewrite_usage_message): Print rewrite usage.
14116         (rewrite_usage): Print rewrite usage and exit.
14117         (do_rewrite): Driver for profile rewrite sub-command.
14118         (print_usage): Print gcov-info usage and exit.
14119         (print_version): Print gcov-info version.
14120         (process_args): Process arguments.
14121         (main): Main routine for gcov-tool.
14122         * Makefile.in: Build and install gcov-tool.
14123         * gcov-counter.def: New file split from gcov-io.h.
14124         * doc/gcc.texi: Include gcov-tool.texi.
14125         * doc/gcov-tool.texi: Document for gcov-tool.
14126
14127 2014-07-10  Richard Biener  <rguenther@suse.de>
14128
14129         PR tree-optimization/61757
14130         * tree-ssa-dom.c (loop_depth_of_name): Restore.
14131         (propagate_rhs_into_lhs): Revert part of last change.
14132
14133 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
14134
14135         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
14136         FUNCTION_DECLs.
14137
14138 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
14139
14140         PR middle-end/53590
14141         * function.c (allocate_struct_function): Revert r188667 change.
14142
14143         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
14144
14145 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
14146
14147         * doc/install.texi: Remove links to defunct package providers for
14148         Solaris.
14149
14150 2014-07-09  Tom de Vries  <tom@codesourcery.com>
14151
14152         * final.c (get_call_fndecl): Declare.
14153         (self_recursive_call_p): New function.
14154         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
14155
14156 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14157
14158         * ipa-devirt.c (record_node): Walk through aliases.
14159
14160 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14161
14162         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
14163
14164 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14165
14166         Revert:
14167         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
14168
14169 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14170
14171         * ipa-visibility.c (function_and_variable_visibility): Remove
14172         temporary hack disabling local aliases on AIX.
14173
14174 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14175
14176         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
14177         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
14178
14179 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14180
14181         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
14182         * rs6000/rs6000.c: Inline output of .set instruction.
14183         (declare_alias_data): New struct.
14184         (rs6000_declare_alias): New function.
14185         (rs6000_xcoff_declare_function_name): Use it.
14186         (rs6000_xcoff_declare_object_name): New function.
14187         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
14188         (ASM_OUTPUT_DEF): Turn to empty definition.
14189
14190 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
14191
14192         PR bootstrap/61679
14193         * hash-table.h: use hash_table::value_type instead of
14194         Descriptor::value_type in the return types of several methods.
14195
14196 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
14197
14198         * tree-pass.h (pass_data): Remove has_execute member.
14199         * passes.c (execute_one_pass): Don't check pass->has_execute.
14200         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
14201         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
14202         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
14203         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
14204         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
14205         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
14206         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
14207         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
14208         gimple-low.c, gimple-ssa-isolate-paths.c,
14209         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
14210         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
14211         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
14212         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
14213         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
14214         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
14215         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
14216         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
14217         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
14218         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
14219         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
14220         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
14221         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
14222         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
14223         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
14224         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
14225         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
14226         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
14227         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
14228         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
14229         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
14230         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
14231         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
14232         web.c: Remove initializer for pass_data::has_execute.
14233
14234 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
14235
14236         * graphite-htab.h: Use hash_map instead of hash_table.
14237         * graphite-clast-to-gimple.c: Adjust.
14238         * passes.c: Use hash_map instead of hash_table.
14239         * sese.c: Likewise.
14240         * sese.h: Remove now unused code.
14241
14242 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
14243
14244         PR target/61599
14245         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
14246         than zero.
14247
14248 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
14249
14250         PR rtl-optimization/61673
14251         * combine.c (simplify_comparison): Test just mode's sign bit
14252         in tmode rather than the sign bit and any bits above it.
14253
14254 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
14255
14256         * graphite-isl-ast-to-gimple.c (generate_isl_context):
14257         Add __isl_give to the declaration.
14258         (generate_isl_schedule): Likewise.
14259         (scop_to_isl_ast): Likewise.
14260
14261 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14262
14263         * config/arm/arm.c (cortexa5_extra_costs): New table.
14264         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
14265
14266 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
14267
14268         PR tree-optimization/61725
14269         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
14270         range, use range_includes_zerop_p instead of integer_zerop on
14271         vr0->min, only use log2 of max if min is not negative.
14272
14273 2014-07-08  Richard Biener  <rguenther@suse.de>
14274
14275         * tree-ssa-dom.h (loop_depth_of_name): Remove.
14276         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
14277         restriction on loop depth difference.
14278         (record_equality): Likewise.
14279         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
14280         (loop_depth_of_name): Remove.
14281         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
14282         restriction on loop depth difference.
14283         (init_copy_prop): Likewise.
14284
14285 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14286
14287         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
14288         parameter.
14289         (walk_aliased_vdefs): Likewise.
14290         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
14291         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
14292         (detect_type_change_from_memory_writes): Check if entry was reached.
14293
14294 2014-07-08  Richard Biener  <rguenther@suse.de>
14295
14296         PR tree-optimization/61681
14297         * tree-ssa-structalias.c (find_what_var_points_to): Expand
14298         NONLOCAL inside ESCAPED.
14299
14300 2014-07-08  Richard Biener  <rguenther@suse.de>
14301
14302         PR tree-optimization/61680
14303         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
14304         Handle properly all read-write dependences with group accesses.
14305
14306 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
14307
14308         PR tree-optimization/61576
14309         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
14310         block containing reduction statement is predecessor of phi basi block.
14311
14312 2014-07-08  Marek Polacek  <polacek@redhat.com>
14313
14314         PR c/60226
14315         * fold-const.c (round_up_loc): Change the parameter type.
14316         Remove assert.
14317         * fold-const.h (round_up_loc): Adjust declaration.
14318         * stor-layout.c (finalize_record_size): Check for too large types.
14319
14320 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
14321
14322         * symtab.c: Include calls.h.
14323         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
14324
14325 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
14326
14327         * config/rs6000/rs6000.c (output_vec_const_move): Handle
14328         little-endian code generation.
14329         * config/rs6000/spe.md (spe_evmergehi): Rename to...
14330         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
14331         (spe_evmergehilo): Rename to...
14332         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
14333         (spe_evmergelo): Rename to...
14334         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
14335         (spe_evmergelohi): Rename to...
14336         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
14337         (spe_evmergehi, spe_evmergehilo): New expanders.
14338         (spe_evmergelo, spe_evmergelohi): Likewise.
14339         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
14340         (*frob_tf_ti): Likewise.
14341         (*frob_<mode>_di_2): Likewise.
14342         (*frob_tf_di_8_2): Likewise.
14343         (*frob_di_<mode>): Likewise.
14344         (*frob_ti_tf): Likewise.
14345         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
14346         (*frob_ti_<mode>_8_2): Likewise.
14347         (*frob_ti_tf_2): Likewise.
14348         (mov_si<mode>_e500_subreg0): Rename to...
14349         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
14350         endianness only.
14351         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
14352         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
14353         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
14354         the big endianness only.
14355         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
14356         (*mov_si<mode>_e500_subreg0_2): Rename to...
14357         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
14358         big big endianness only.
14359         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
14360         (*mov_si<mode>_e500_subreg4): Rename to...
14361         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
14362         endianness only.
14363         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
14364         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
14365         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
14366         the big endianness only.
14367         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
14368         pattern.
14369         (*mov_si<mode>_e500_subreg4_2): Rename to...
14370         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
14371         endianness only.
14372         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
14373         (*mov_sitf_e500_subreg8): Rename to...
14374         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
14375         endianness only.
14376         (*mov_sitf_e500_subreg8_le): New instruction pattern.
14377         (*mov_sitf_e500_subreg8_2): Rename to...
14378         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
14379         endianness only.
14380         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
14381         (*mov_sitf_e500_subreg12): Rename to...
14382         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
14383         endianness only.
14384         (*mov_sitf_e500_subreg12_le): New instruction pattern.
14385         (*mov_sitf_e500_subreg12_2): Rename to...
14386         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
14387         endianness only.
14388         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
14389
14390 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
14391
14392         * asan.c (instrument_strlen_call): Do not instrument first byte
14393         in strlen if already instrumented.
14394
14395 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14396
14397         * config/arm/arm.opt (mwords-little-endian): Delete.
14398         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
14399         of TARGET_LITTLE_WORDS.
14400         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
14401         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
14402         warning.
14403         * doc/invoke.texi: Remove references to -mwords-little-endian.
14404
14405 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
14406
14407         * expmed.c (struct init_expmed_rtl): Change all fields but
14408         pow2 and cint from struct rtx_def to rtx.
14409         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
14410         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
14411         at the end again.
14412
14413 2014-07-06  Marek Polacek  <polacek@redhat.com>
14414
14415         PR c/6940
14416         * doc/invoke.texi: Document -Wsizeof-array-argument.
14417
14418 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
14419
14420         * wide-int.h (wide_int_storage): Change declaration from struct
14421         to class.
14422
14423 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
14424
14425         * cgraph.c (cgraph_create_indirect_edge): Update call of
14426         get_polymorphic_call_info.
14427         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
14428         (possible_polymorphic_call_targets): Add parameter call.
14429         (decl_maybe_in_construction_p): New predicate.
14430         (get_polymorphic_call_info): Add parameter call;
14431         use decl_maybe_in_construction_p.
14432         * gimple-fold.c (fold_gimple_assign): Update use of
14433         possible_polymorphic_call_targets.
14434         (gimple_fold_call): Likewise.
14435         * ipa-prop.c: Inlcude calls.h
14436         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
14437         (param_type_may_change_p): New predicate.
14438         (detect_type_change_from_memory_writes): Break out from ...
14439         (detect_type_change): ... this one; use param_type_may_change_p.
14440         (detect_type_change_ssa): Use param_type_may_change_p.
14441         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
14442
14443 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
14444
14445         PR target/49423
14446         * config/arm/arm-protos.h (arm_legitimate_address_p,
14447         arm_is_constant_pool_ref): Add prototypes.
14448         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
14449         (arm_is_constant_pool_ref) New function.
14450         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
14451         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
14452         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
14453         operand. Remove pool_range and neg_pool_range attributes.
14454         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
14455         pool_range and neg_pool_range attributes.
14456         * config/arm/constraints.md (Uh): New constraint.
14457         (Uq): Don't allow constant pool references.
14458
14459 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
14460
14461         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
14462         (move_lo_quad_internal_be_<mode>): Likewise.
14463         (move_lo_quad_<mode>): Convert to define_expand.
14464         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
14465         (aarch64_simd_move_hi_quad_be_<mode>): New.
14466         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
14467         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
14468         (aarch64_combinez_be<mode>): New.
14469         (aarch64_combine<mode>): Convert to define_expand.
14470         (aarch64_combine_internal<mode>): New.
14471         (aarch64_simd_combine<mode>): Remove bogus RTL description.
14472
14473 2014-07-04  Tom de Vries  <tom@codesourcery.com>
14474
14475         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
14476         combination of earlyclobber and read/write modifiers.
14477
14478 2014-07-04  Tom de Vries  <tom@codesourcery.com>
14479
14480         * config/aarch64/aarch64-simd.md
14481         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
14482
14483 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
14484
14485         PR target/61714
14486         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
14487
14488 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
14489
14490         PR middle-end/61654
14491         * cgraphunit.c (expand_thunk): Call free_dominance_info.
14492
14493         PR tree-optimization/61684
14494         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
14495         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
14496
14497 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14498             Kito Cheng  <kito@0xlab.org>
14499             Monk Chiang  <sh.chiang04@gmail.com>
14500
14501         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
14502         (nds32_symbol_load_store_p): Move to ...
14503         (nds32_fp_as_gp_check_available): Move to ...
14504         * config/nds32/nds32-fp-as-gp.c: ... here.
14505         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
14506         extern declaration.
14507
14508 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14509             Kito Cheng  <kito@0xlab.org>
14510             Monk Chiang  <sh.chiang04@gmail.com>
14511
14512         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
14513         (nds32_expand_store_multiple): Move to ...
14514         (nds32_expand_movmemqi): Move to ...
14515         * config/nds32/nds32-memory-manipulation.c: ... here.
14516
14517 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14518             Kito Cheng  <kito@0xlab.org>
14519             Monk Chiang  <sh.chiang04@gmail.com>
14520
14521         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
14522         (nds32_output_casesi_pc_relative): Move to ...
14523         (nds32_output_casesi): Move to ...
14524         (nds32_mem_format): Move to ...
14525         (nds32_output_16bit_store): Move to ...
14526         (nds32_output_16bit_load): Move to ...
14527         (nds32_output_32bit_store): Move to ...
14528         (nds32_output_32bit_load): Move to ...
14529         (nds32_output_32bit_load_s): Move to ...
14530         (nds32_output_stack_push): Move to ...
14531         (nds32_output_stack_pop): Move to ...
14532         * config/nds32/nds32-md-auxiliary.c: ... here.
14533
14534 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14535             Ling-Hua Tseng  <uranus@tinlans.org>
14536
14537         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
14538         the purpose of this file.
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_rtx_costs): Move implementation to ...
14545         (nds32_address_cost): Move implementation to ...
14546         * config/nds32/nds32-cost.c: ... here.
14547         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
14548         (nds32_address_cost_impl): Declare.
14549
14550 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14551             Kito Cheng  <kito@0xlab.org>
14552             Monk Chiang  <sh.chiang04@gmail.com>
14553
14554         * config/nds32/nds32.c
14555         (nds32_consecutive_registers_load_store_p): Move to ...
14556         (nds32_valid_multiple_load_store): Move to ...
14557         (nds32_valid_stack_push_pop): Move to ...
14558         (nds32_can_use_bclr_p): Move to ...
14559         (nds32_can_use_bset_p): Move to ...
14560         (nds32_can_use_btgl_p): Move to ...
14561         (nds32_can_use_bitci_p): Move to ...
14562         * config/nds32/nds32-predicates.c: ... here.
14563
14564 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14565             Kito Cheng  <kito@0xlab.org>
14566             Monk Chiang  <sh.chiang04@gmail.com>
14567
14568         * config/nds32/nds32.c
14569         (nds32_expand_builtin_null_ftype_reg): Move to ...
14570         (nds32_expand_builtin_reg_ftype_imm): Move to ...
14571         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
14572         (nds32_init_builtins): Move implementation to ...
14573         (nds32_expand_builtin): Move implementation to ...
14574         * config/nds32/nds32-intrinsic.c: ... here.
14575         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
14576         (nds32_expand_builtin_impl): Declare.
14577
14578 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14579             Kito Cheng  <kito@0xlab.org>
14580             Monk Chiang  <sh.chiang04@gmail.com>
14581
14582         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
14583         (nds32_emit_section_tail_template): Move to ...
14584         (nds32_emit_isr_jmptbl_section): Move to ...
14585         (nds32_emit_isr_vector_section): Move to ...
14586         (nds32_emit_isr_reset_conten): Move to ...
14587         (nds32_check_isr_attrs_conflict): Move to ...
14588         (nds32_construct_isr_vectors_information): Move to ...
14589         (nds32_asm_file_start): Move implementation to ...
14590         (nds32_asm_file_end): Move implementation to ...
14591         * config/nds32/nds32-isr.c: ... here.
14592         * config/nds32/nds32-protos.h
14593         (nds32_check_isr_attrs_conflict): Declare.
14594         (nds32_construct_isr_vectors_information): Declare.
14595         (nds32_asm_file_start_for_isr): Declare.
14596         (nds32_asm_file_end_for_isr): Declare.
14597
14598 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14599             Kito Cheng  <kito@0xlab.org>
14600             Monk Chiang  <sh.chiang04@gmail.com>
14601
14602         * config.gcc (nds32*): Add new modules to extra_objs.
14603         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
14604         (nds32be-*-*): Likewise.
14605         * config/nds32/nds32-cost.c: New file.
14606         * config/nds32/nds32-fp-as-gp.c: New file.
14607         * config/nds32/nds32-intrinsic.c: New file.
14608         * config/nds32/nds32-isr.c: New file.
14609         * config/nds32/nds32-md-auxiliary.c: New file.
14610         * config/nds32/nds32-memory-manipulation.c: New file.
14611         * config/nds32/nds32-pipelines-auxiliary.c: New file.
14612         * config/nds32/nds32-predicates.c: New file.
14613         * config/nds32/t-nds32: New file.
14614
14615 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
14616
14617         PR tree-optimization/61682
14618         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
14619         using cases and when one of the operands is equal to 1.
14620
14621 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
14622
14623         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
14624         ashr<mode>3): Correct mode of operands[2].
14625         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
14626         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
14627         Correct mode of operands[2].  Fix split condition.
14628
14629 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
14630
14631         * arm.md (arch): Add armv6_or_vfpv3.
14632         (arch_enabled): Add test for the above.
14633         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
14634         on VFP9.
14635         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
14636
14637 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
14638
14639         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
14640         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
14641         HWI 1 and negate the unsigned value.
14642         * expmed.c (expand_sdiv_pow2): For modes wider than word always
14643         use AND instead of shift.
14644         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
14645
14646 2014-07-03  Marek Polacek  <polacek@redhat.com>
14647
14648         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
14649         (-fsanitize=float-divide-by-zero): Move to the table with
14650         -fsanitize=undefined suboptions.
14651         (-fsanitize=float-cast-overflow): Likewise.
14652
14653 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
14654
14655         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
14656         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
14657         endianness.
14658
14659 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
14660
14661         * loop-invariant.c (struct invariant): Add a new member: eqno;
14662         (find_identical_invariants): Update eqno;
14663         (create_new_invariant): Init eqno;
14664         (get_inv_cost): Compute comp_cost with eqno;
14665
14666 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
14667
14668         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
14669         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
14670         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
14671         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
14672         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
14673
14674 2014-07-02  Christian Bruel  <christian.bruel@st.com>
14675
14676         PR target/29349
14677         PR target/53513
14678         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
14679         (make_preds_opaque): Delete.
14680         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
14681         (commit_mode_sets): New function.
14682         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
14683         Process all modes at once.
14684         * basic-block.h (pre_edge_lcm_avs): Declare.
14685         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
14686         Call clear_aux_for_edges. Fix comments.
14687         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
14688         (pre_edge_rev_lcm): Idem.
14689         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
14690         parameter.
14691         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
14692         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
14693         Idem.
14694         * config/i386/i386.c (x96_emit_mode_set): Idem.
14695         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
14696         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
14697         (fpscr_toggle) Disallow from delay slot.
14698         * target.def (emit_mode_set): Add prev_mode parameter.
14699         * doc/tm.texi: Regenerate.
14700
14701 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14702
14703         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
14704         variable i.
14705
14706 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
14707
14708         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
14709         vtable_pointer_value_to_vtable): Constify.
14710         (contains_polymorphic_type_p): Declare.
14711         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
14712         vtable_pointer_value_to_vtable): Constify.
14713         (contains_polymorphic_type_p): New predicate.
14714         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
14715         polymorphic types.
14716         (ipa_set_ancestor_jf): Likewise.
14717         (detect_type_change): Return false in easy cases.
14718         (compute_complex_assign_jump_func): Require type to contain
14719         polymorphic type.
14720         (compute_known_type_jump_func): Likewise.
14721
14722 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
14723
14724         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
14725         Remove.
14726         (type_in_anonymous_namespace_p): Constify argument.
14727         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
14728         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
14729         (main_odr_variant): New function.
14730         (hash_type_name): Make static; update assert; do not ICE on
14731         non-records.
14732         (types_same_for_odr): Bring here from tree.c; simplify and remove
14733         old structural comparing code that doesn't work for templates.
14734         (odr_hasher::equal): Update assert.
14735         (add_type_duplicate): Return true when bases should be computed;
14736         replace incomplete loader by complete; do not output duplicated
14737         warnings; do not ICE on non-records; set odr_violated flag.
14738         (get_odr_type): Be ready to replace incomplete type by complete
14739         one; work on ODR variants instead of main variants; reorder item
14740         in array so bases have still smaller indexes.
14741         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
14742         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
14743
14744 2014-07-01  Cary Coutant  <ccoutant@google.com>
14745
14746         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
14747         lookup.
14748         (resolve_addr_in_expr): When replacing the rtx in a location list
14749         entry, get a new address table entry.
14750         (dwarf2out_finish): Call index_location_lists even if there are no
14751         addr_index_table entries yet.
14752
14753 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
14754
14755         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
14756         change for not being obvious.
14757
14758 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
14759
14760         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
14761         unused argument.
14762
14763 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14764
14765         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
14766         (vcagt_f64): Likewise.
14767         (vcale_f64): Likewise.
14768         (vcaled_f64): Likewise.
14769         (vcales_f32): Likewise.
14770         (vcalt_f64): Likewise.
14771         (vcaltd_f64): Likewise.
14772         (vcalts_f32): Likewise.
14773
14774 2014-07-01  Marek Polacek  <polacek@redhat.com>
14775
14776         * doc/invoke.texi: Document -Wint-conversion.
14777
14778 2014-07-01  Marek Polacek  <polacek@redhat.com>
14779
14780         PR c/58286
14781         * doc/invoke.texi: Document -Wincompatible-pointer-types.
14782
14783 2014-07-01  Martin Liska  <mliska@suse.cz>
14784
14785         IPA REF alias refactoring
14786         * cgraph.h (iterate_direct_aliases): New function.
14787         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
14788         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
14789         FOR_EACH_ALIAS added.
14790         (cgraph_for_node_and_aliases): Likewise.
14791         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
14792         * ipa-inline.c (reset_edge_caches): Likewise.
14793         (update_caller_keys): Likewise.
14794         * trans-mem.c (ipa_tm_execute): Likewise.
14795         *varpool.c (varpool_analyze_node): Likewise.
14796         (varpool_for_node_and_aliases): Likewise.
14797         * ipa-ref.h (first_alias): New function.
14798         (last_alias): Likewise.
14799         (has_aliases_p): Likewise.
14800         * ipa-ref.c (ipa_ref::remove_reference): Removal function
14801         is sensitive to IPA_REF_ALIASes.
14802         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
14803         are put at the beginning of the list.
14804         (symtab_node::iterate_direct_aliases): New function.
14805
14806 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14807
14808         Revert:
14809         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
14810         type is complete.
14811         (write_ts_type_common_tree_pointers): Do not stream fields not set
14812         for incomplete types; do not stream duplicated fields for variants;
14813         sanity check that variant and type match.
14814         (write_ts_type_non_common_tree_pointers): Likewise.
14815         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
14816         TYPE_SIZE whether type is complete.
14817         (lto_input_ts_type_common_tree_pointers): Do same changes as in
14818         write_ts_type_common_tree_pointers
14819         (lto_input_ts_type_non_common_tree_pointers): Likewise.
14820
14821 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
14822
14823         * var-tracking.c (add_stores): Return instead of asserting if old
14824         and new values for conditional store are the same.
14825
14826 2014-06-30  Richard Henderson  <rth@redhat.com>
14827
14828         PR rtl-opt/61608
14829         PR target/39284
14830         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
14831         the cfg if there were any changes.
14832         * passes.def: Revert move of peephole2 after reorder_blocks;
14833         move duplicate_computed_gotos before peephole2.
14834
14835 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
14836
14837         * except.c (emit_note_eh_region_end): New helper function.
14838         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
14839         emit EH_REGION_END note.
14840         * jump.c (cleanup_barriers): Do not split a call and its
14841         corresponding CALL_ARG_LOCATION note.
14842
14843 2014-06-30  Jeff Law  <law@redhat.com>
14844
14845         PR tree-optimization/61607
14846         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
14847         deeper into the SSA_NAME_VALUE chain.
14848
14849 2014-06-30  Marek Polacek  <polacek@redhat.com>
14850
14851         * convert.c (convert_to_integer): Don't instrument conversions if the
14852         function has no_sanitize_undefined attribute.
14853         * ubsan.c: Don't run the ubsan pass if the function has
14854         no_sanitize_undefined attribute.
14855
14856 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
14857
14858         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
14859         -fsanitize=undefined suboptions.
14860
14861 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
14862
14863         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
14864         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
14865         against bigendian and adjust indices.
14866
14867 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
14868
14869         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
14870
14871 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14872
14873         PR target/61633
14874         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
14875         Add alternative; make early clobber.  Adjust both split patterns
14876         to use operand 0 as the working register.
14877
14878 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
14879
14880         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
14881         as ira_object_id_map might be NULL, or 1.
14882
14883 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
14884
14885         * loop-invariant.c (get_inv_cost): Handle register class.
14886         (gain_for_invariant): Check the register pressure of the inv
14887         and its overlapped register class, other than all.
14888
14889 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
14890
14891         * doc/invoke.texi (Optimize Options): Fix descriptions of
14892         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
14893
14894 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
14895
14896         * doc/extend.texi (Function Attributes): Update 'naked' attribute
14897         documentation.
14898
14899 2014-06-29  Tobias Grosser <tobias@grosser.es>
14900
14901         PR bootstrap/61650
14902         * graphite-isl-ast-to-gimple.c: Add missing guards.
14903
14904 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
14905
14906         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
14907         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
14908         * flag-types.h: Add new enum fgraphite_generator.
14909         * graphite-isl-ast-to-gimple.c: New.
14910         * graphite-isl-ast-to-gimple.h: New.
14911         * graphite.c (graphite_transform_loops): Add choice of Graphite
14912         code generator, which depends on flag_graphite_code_gen.
14913
14914 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
14915
14916         * graphite-dependences.c (subtract_commutative_associative_deps):
14917         Add NULL checking of the following variables: must_raw_no_source,
14918         may_raw_no_source, must_war_no_source, may_war_no_source,
14919         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
14920         must_war, may_war, must_waw, may_waw.
14921
14922 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
14923
14924         * graphite-clast-to-gimple.c: gloog is renamed to
14925         graphite_regenerate_ast_cloog.  gloog_error is renamed to
14926         graphite_regenerate_error.
14927         * graphite-clast-to-gimple.h: The definition of the struct
14928         bb_pbb_def is moved to graphite-htab.h.
14929         Add inclusion of the hash-table.h.
14930         * graphite-htab.h: The declaration of the function gloog is moved
14931         to graphite-clast-to-gimple.h and renamed to
14932         graphite_regenerate_ast_cloog.
14933         * graphite.c (graphite_transform_loops): gloog is renamed
14934         to graphite_regenerate_ast_cloog.
14935
14936 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14937
14938         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
14939         type is complete.
14940         (write_ts_type_common_tree_pointers): Do not stream fields not set
14941         for incomplete types; do not stream duplicated fields for variants;
14942         sanity check that variant and type match.
14943         (write_ts_type_non_common_tree_pointers): Likewise.
14944         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
14945         TYPE_SIZE whether type is complete.
14946         (lto_input_ts_type_common_tree_pointers): Do same changes as in
14947         write_ts_type_common_tree_pointers
14948         (lto_input_ts_type_non_common_tree_pointers): Likewise.
14949
14950 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14951
14952         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
14953
14954 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14955
14956         * tree-inline.c (remap_type_1): Do not duplicate fields
14957         that are shared in between type and its main variant.
14958
14959 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14960
14961         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
14962         of the type.
14963         (ipa_set_ancestor_jf) Likewise.
14964         (check_stmt_for_type_change): Check that we work on main variant.
14965         (detect_type_change): Look into main variant.
14966         (compute_known_type_jump_func): Check that main variant has BINFO.
14967
14968 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14969
14970         * ipa-devirt.c (set_type_binfo): New function.
14971         (add_type_duplicate): Use it.
14972         (get_odr_type): Sanity check that binfos points to main variants.
14973         (get_class_context): Be sure the context's outer_type is main variant.
14974         (contains_type_p): Walk main variant.
14975         (get_polymorphic_call_info_for_decl): Set outer_type to be
14976         main variant.
14977         (get_polymorphic_call_info): Likewise.
14978         (possible_polymorphic_call_targets): Sanity check that we operate
14979         on main variant.
14980
14981 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14982
14983         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
14984
14985 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14986
14987         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
14988         accidental change due to wide-int branch merge.
14989
14990 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14991
14992         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
14993         compressed debug support.
14994         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
14995         * configure: Regenerate.
14996         * config.in: Regenerate.
14997         * common.opt (compressed_debug_sections): New enum.
14998         (gz, gz=): New options.
14999         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
15000         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
15001         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
15002         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
15003         LINK_COMPRESS_DEBUG_SPEC.
15004         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
15005         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
15006         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
15007         (Debugging Options): Document -gz[=type].
15008
15009 2014-06-27  Martin Jambor  <mjambor@suse.cz>
15010
15011         PR ipa/61160
15012         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
15013         args_to_skip, use those from node instead.  Copy args_to_skip and
15014         combined_args_to_skip from node to the new thunk.
15015         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
15016         (cgraph_create_virtual_clone): Moved computation of
15017         combined_args_to_skip...
15018         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
15019
15020 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
15021
15022         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
15023         redundant diagnostic machinary.
15024
15025 2014-06-27  Richard Biener  <rguenther@suse.de>
15026
15027         * tree-ssa-math-opts.c (bswap_replace): Fix
15028         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
15029
15030 2014-06-27  Martin Liska  <mliska@suse.cz>
15031
15032         * gimple.h (gimple_location_safe): New function introduced.
15033         * cgraphunit.c (walk_polymorphic_call_targets): Usage
15034         of gimple_location_safe replaces gimple_location.
15035         (gimple_fold_call): Likewise.
15036         * ipa-devirt.c (ipa_devirt): Likewise.
15037         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
15038         * ipa.c (walk_polymorphic_call_targets): Likewise.
15039         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
15040
15041 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
15042
15043         PR tree-optimization/57233
15044         PR tree-optimization/61299
15045         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
15046         functions.
15047         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
15048         would be lowered to scalar shifts, check if corresponding
15049         shifts and vector BIT_IOR_EXPR are supported and don't lower
15050         or lower just to narrower vector type in that case.
15051         * expmed.c (expand_shift_1): Fix up handling of vector
15052         shifts and rotates.
15053
15054 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
15055
15056         PR target/61586
15057         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
15058
15059 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
15060
15061         * doc/invoke.texi (-fsemantic-interposition): Document.
15062         * common.opt (fsemantic-interposition): New flag.
15063         * varasm.c (decl_replaceable_p): Use it.
15064
15065 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15066
15067         PR target/61542
15068         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
15069         extraction other than index 3.
15070
15071 2014-06-26  Teresa Johnson  <tejohnson@google.com>
15072
15073         * doc/invoke.texi: Fix typo.
15074         * dumpfile.c: Add support for documented -fdump-* options
15075         optimized/missed/note/optall.
15076
15077 2014-06-26  Martin Jambor  <mjambor@suse.cz>
15078
15079         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
15080         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
15081         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
15082         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
15083         * opts.c (default_options_optimization): Set
15084         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
15085         * doc/invoke.texi (allow-load-data-races)
15086         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
15087         (allow-store-data-races): Document the new default.
15088
15089 2014-06-26  Martin Jambor  <mjambor@suse.cz>
15090
15091         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
15092         renamed to ipa_impossible_devirt_target.  Fix typo.
15093         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
15094         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
15095         ipa_impossible_devirt_target.
15096
15097 2014-06-26  Richard Biener  <rguenther@suse.de>
15098
15099         PR tree-optimization/61607
15100         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
15101         explaining why we restrict copies on loop depth.
15102         * tree-ssa-dom.c (cprop_operand): Remove restriction on
15103         on loop depth.
15104         (record_equivalences_from_phis): Instead add it here.
15105
15106 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
15107
15108         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
15109         (LTO_WRAPPER_OBJS): New variable.
15110         (lto-wrapper$(exeext)): Use it.
15111         * collect2.c: Include "collect-utils.h".
15112         (verbose, debug): Remove variables.
15113         (at_file_supplied): No longer static.
15114         (tool_name): New variable.
15115         (do_wait, fork_execute, maybe_unlink): Don't declare.
15116         (tool_cleanup): No longer static.
15117         (notice): Remove function.
15118         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
15119         fork_execute calls.
15120         (collect_wait, do_wait, collect_execute): Remove functions.
15121         (maybe_unlink): No longer static.
15122         * collect2.h (verbose, debug): Don't declare.
15123         (at_file_supplied): Declare.
15124         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
15125         changed.
15126         (collect_execute): Replace with implementation from collect2, plus a
15127         new arg use_atfile.  All callers changed.
15128         (collect_wait): Replace with implementation from collect2.
15129         (maybe_unlink_file): Remove function.
15130         (fork_execute): Replace with implementation from collect2, plus a
15131         new arg use_atfile.  All callers changed.
15132         (do_wait): Add call to utils_cleanup to the error path.
15133         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
15134         (tool_cleanup): Adjust declarations.
15135         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
15136         * tlink.c: Include "collect-utils.h".
15137         (tlink_execute): New arg use_atfile.  All callers changed.
15138         (tlink_init, tlink_execute): Remove declarations.
15139
15140         * collect-utils.c (save_temps): New variable.
15141         (do_wait): Use it instead of debug.  Use fatal_error.
15142         * collect-utils.h (save_temps): Declare.
15143         * collect2.c (verbose): Rename from vflag.  All uses changed.
15144         (tool_cleanup): New function, copied from collect_atexit.
15145         (collect_atexit, handler): Just call it.
15146         * collect2.h (verbose): Declaration renamed from vflag.
15147         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
15148         debug.
15149
15150         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
15151         (lto-wrapper$(exeext)): Link with collect-utils.o.
15152         * collect-utils.c: New file.
15153         * collect-utils.h: New file.
15154         * lto-wrapper.c: Include "collect-utils.h".
15155         (args_name): Delete variable.
15156         (tool_name): New variable.
15157         (tool_cleanup): New function.
15158         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
15159         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
15160         (fork_execute): Remove functions.
15161
15162 2014-06-26  Nick Clifton  <nickc@redhat.com>
15163
15164         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
15165
15166         * doc/extend.texi (Function Attributes): Fix typo in description
15167         of RX vector attribute.
15168
15169 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15170
15171         * config.gcc (supported_defaults): Error when passing either
15172         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
15173
15174 2014-06-26  Richard Biener  <rguenther@suse.de>
15175
15176         * tree-ssa-dom.c (cprop_operand): Remove restriction on
15177         propagating volatile pointers.
15178
15179 2014-06-26  Richard Biener  <rguenther@suse.de>
15180
15181         PR tree-optimization/61607
15182         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
15183         loop if we redirected its latch edge.
15184         (thread_block_1): Do not cancel loops prematurely.
15185
15186 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
15187
15188         * toplev.c (backend_init_target): Move init_emit_regs and
15189         init_regs to...
15190         (backend_init) ... here; skip ira_init_once and backend_init_target.
15191         (target_reinit) ... and here; clear
15192         this_target_rtl->lang_dependent_initialized.
15193         (lang_dependent_init_target): Clear
15194         this_target_rtl->lang_dependent_initialized;
15195         break out rtl initialization to ...
15196         (initialize_rtl): ... here; call also backend_init_target
15197         and ira_init_once.
15198         * toplev.h (initialize_rtl): New function.
15199         * function.c: Include toplev.h
15200         (init_function_start): Call initialize_rtl.
15201         * rtl.h (target_rtl): Add target_specific_initialized,
15202         lang_dependent_initialized.
15203
15204 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
15205             Jakub Jelinek  <jakub@redhat.com>
15206
15207         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
15208
15209 2014-06-25  Tom de Vries  <tom@codesourcery.com>
15210
15211         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
15212
15213 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15214
15215         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
15216         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
15217         Issue a strict overflow warning if appropriate.
15218
15219 2014-06-25  Martin Liska  <mliska@suse.cz>
15220
15221         IPA REF refactoring
15222         * Makefile.in: Removed header file (ipa-ref-inline.h).
15223         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
15224         called.
15225         (cgraph_speculative_call_info): Likewise.
15226         (cgraph_for_node_thunks_and_aliases): Likewise.
15227         (cgraph_for_node_and_aliases): Likewise.
15228         (verify_cgraph_node): Likewise.
15229         * cgraph.h: Batch of IPA REF functions become member functions of
15230         symtab_node: add_reference, maybe_add_reference, clone_references,
15231         clone_referring, clone_reference, find_reference,
15232         remove_stmt_references, remove_all_references,
15233         remove_all_referring, dump_references, dump_referring,
15234         has_alias_p, iterate_reference, iterate_referring.
15235         * cgraphbuild.c (record_reference): New IPA REF function used.
15236         (record_type_list): Likewise.
15237         (record_eh_tables): Likewise.
15238         (mark_address): Likewise.
15239         (mark_load): Likewise.
15240         (mark_store): Likewise.
15241         (pass_build_cgraph_edges): Likewise.
15242         (rebuild_cgraph_edge): Likewise.
15243         (cgraph_rebuild_references): Likewise.
15244         (pass_remove_cgraph_callee_edges): Likewise.
15245         * cgraphclones.c (cgraph_clone_node): Likewise.
15246         (cgraph_create_virtual_clone): Likewise.
15247         (cgraph_materialize_clone): Likewise.
15248         (cgraph_materialize_all_clones): Likewise.
15249         * cgraphunit.c (cgraph_reset_node): Likewise.
15250         (cgraph_reset_node): Likewise.
15251         (analyze_function): Likewise.
15252         (assemble_thunks_and_aliases): Likewise.
15253         (expand_function): Likewise.
15254         * ipa-comdats.c (propagate_comdat_group): Likewise.
15255         (enqueue_references): Likewise.
15256         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
15257         (create_specialized_node): Likewise.
15258         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
15259         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
15260         * ipa-inline.c (reset_edge_caches): Likewise.
15261         (update_caller_keys): Likewise.
15262         (execute): Likewise.
15263         * ipa-prop.c (remove_described_reference): Likewise.
15264         (propagate_controlled_uses): Likewise.
15265         (ipa_edge_duplication_hook): Likewise.
15266         (ipa_modify_call_arguments): Likewise.
15267         * ipa-pure-const.c (propagate_pure_const): Likewise.
15268         * ipa-ref-inline.h: Header file removed, functions moved
15269         to symtab_node class.
15270         * ipa-ref.c (remove_reference): New class member function.
15271         (cannot_lead_to_return): New class member function.
15272         (referring_ref_list): Likewise.
15273         (referred_ref_list): Likewise.
15274         Rest of functions moved to symtab_node class.
15275         * ipa-ref.h: New member functions remove_reference,
15276         cannot_lead_to_return, referring_ref_list, referred_ref_list added
15277         to ipa_ref class.
15278         ipa_ref_list class has new member functions: first_reference,
15279         first_referring, clear, nreferences.
15280         * ipa-reference.c (analyze_function): New IPA REF function used.
15281         (write_node_summary_p): Likewise.
15282         (ipa_reference_write_optimization_summary): Likewise.
15283         * ipa-split.c (split_function): Likewise.
15284         * ipa-utils.c (ipa_reverse_postorder): Likewise.
15285         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
15286         (function_and_variable_visibility): Likewise.
15287         * ipa.c (has_addr_references_p): Likewise.
15288         (process_references): Argument type changed.
15289         (symtab_remove_unreachable_nodes): New IPA REF function used.
15290         (process_references): Likewise.
15291         (set_writeonly_bit): Likewise.
15292         * lto-cgraph.c: Implementation of new symtab_node member functions
15293         that uses new IPA REF functions.
15294         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
15295         function used.
15296         * lto-streamer-out.c (output_symbol_p): Likewise.
15297         * lto-streamer.h (referenced_from_this_partition_p): Argument type
15298         changed.
15299         * symtab.c: Implementation of new IPA REF API.
15300         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
15301         (ipa_tm_create_version): Likewise.
15302         (ipa_tm_execute): Likewise.
15303         * tree-emutls.c (gen_emutls_addr): Likewise.
15304         * tree-inline.c (copy_bb): Likewise.
15305         (delete_unreachable_blocks_update_callgraph): Likewise.
15306         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
15307         (varpool_for_node_and_aliases): Likewise.
15308
15309 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
15310
15311         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
15312
15313 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
15314
15315         PR bootstrap/61598
15316         * fold-const.c (fold_checksum_tree): Use a hash_table of const
15317         tree_node * instead of tree_node *.
15318         (fold): Adjust.
15319         (print_fold_checksum): Likewise.
15320         (fold_check_failed): Likewise.
15321         (debug_fold_checksum): Likewise.
15322         (fold_build1_stat_loc): Likewise.
15323         (fold_build2_stat_loc): Likewise.
15324         (fold_build3_stat_loc): Likewise.
15325         (fold_build_call_array_loc): Likewise.
15326
15327 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
15328
15329         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
15330         implementation with call to...
15331         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
15332         function.
15333         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
15334         Declare.
15335
15336 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
15337
15338         PR tree-optimization/57742
15339         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
15340         after replacing the statement.
15341
15342 2014-06-25  Nick Clifton  <nickc@redhat.com>
15343
15344         * config/v850/v850.c (GHS_default_section_names): Change to const
15345         char * type.
15346         (GHS_current_section_names): Likewise.
15347         (v850_insert_attributes): Do not build strings, just assign the
15348         names directly.  Change the type of 'chosen_section' to const
15349         char*.
15350         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
15351         directly to the array entry.
15352         * config/v850/v850.h (GHS_default_section_names): Change to const
15353         char * type.
15354         (GHS_current_section_names): Likewise.
15355
15356 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
15357
15358         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
15359         (LANG_HOOKS_DECLS): Add it.
15360         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
15361         has correct type.
15362         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
15363         * langhooks.h (struct lang_hooks_for_decls): Add
15364         omp_clause_linear_ctor hook.
15365         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
15366         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
15367         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
15368         combined simd loop use omp_clause_linear_ctor hook.
15369
15370 2014-06-24  Cong Hou  <congh@google.com>
15371
15372         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
15373         pattern recognition.
15374         (type_conversion_p): PROMOTION is true if it's a type promotion
15375         conversion, and false otherwise.  Return true if the given expression
15376         is a type conversion one.
15377         * tree-vectorizer.h: Adjust the number of patterns.
15378         * tree.def: Add SAD_EXPR.
15379         * optabs.def: Add sad_optab.
15380         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
15381         * expr.c (expand_expr_real_2): Likewise.
15382         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
15383         * gimple.c (get_gimple_rhs_num_ops): Likewise.
15384         * optabs.c (optab_for_tree_code): Likewise.
15385         * tree-cfg.c (estimate_operator_cost): Likewise.
15386         * tree-ssa-operands.c (get_expr_operands): Likewise.
15387         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
15388         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
15389         * doc/generic.texi: Add document for SAD_EXPR.
15390         * doc/md.texi: Add document for ssad and usad.
15391
15392 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15393
15394         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
15395         qualification in cast.
15396
15397 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
15398
15399         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
15400         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
15401         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
15402         (tree_function_decl): ... here.
15403         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
15404         streaming of vindex to ...
15405         (write_ts_function_decl_tree_pointers): ... here.
15406         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
15407         Do not stream DECL_VINDEX.
15408         (lto_input_ts_function_decl_tree_pointers): Stream it here.
15409
15410 2014-06-24  Catherine Moore  <clm@codesourcery.com>
15411             Sandra Loosemore  <sandra@codesourcery.com>
15412
15413         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
15414         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
15415         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
15416
15417 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
15418
15419         * doc/invoke.texi (Warning Options): Remove duplicated
15420         -Wmaybe-uninitialized.
15421
15422 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
15423
15424         PR tree-optimization/57742
15425         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
15426         (handle_builtin_malloc, handle_builtin_memset): New functions.
15427         (strlen_optimize_stmt): Call them.
15428         * passes.def: Move strlen after loop+dom but before vrp.
15429
15430 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
15431
15432         PR target/61570
15433         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
15434         model family 6 CPU with has_longmode never use a CPU without
15435         64-bit support.
15436
15437 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
15438
15439         PR target/61570
15440         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
15441         the last change.
15442
15443 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15444
15445         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
15446         * dominance.c (iterate_fix_dominators): Use hash_map instead of
15447         pointer_map.
15448         * hash-map.h: New file.
15449         * ipa-comdats.c: Use hash_map instead of pointer_map.
15450         * ipa.c: Likewise.
15451         * lto-section-out.c: Adjust.
15452         * lto-streamer.h: Replace pointer_map with hash_map.
15453         * symtab.c (verify_symtab): Likewise.
15454         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
15455         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
15456         * tree-streamer.h: Likewise.
15457         * tree-streamer.c: Adjust.
15458         * pointer-set.h: Remove pointer_map.
15459
15460 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15461
15462         * hash-table.h: Add a template arg to choose between storing values
15463         and storing pointers to values, and then provide partial
15464         specializations for both.
15465         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
15466         should store, not the type values should point to.
15467         * tree-into-ssa.c (var_info_hasher): Likewise.
15468         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
15469         * tree-complex.c: Adjust.
15470         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
15471         table instead of int_tree_map *.
15472         * tree-parloops.c: Adjust.
15473         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
15474         type is being stored.
15475         * tree-vectorizer.c: Adjust.
15476
15477 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15478
15479         * hash-table.h: Remove a layer of indirection from hash_table so that
15480         it contains the hash table's data instead of a pointer to the data.
15481         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
15482         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
15483         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
15484         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
15485         fold-const.c, gcse.c, ggc-common.c,
15486         gimple-ssa-strength-reduction.c, gimplify.c,
15487         graphite-clast-to-gimple.c, graphite-dependences.c,
15488         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
15489         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
15490         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
15491         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
15492         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
15493         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
15494         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
15495         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
15496         tree-ssa-live.c, tree-ssa-loop-im.c,
15497         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
15498         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
15499         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
15500         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
15501         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
15502         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
15503         vtable-verify.c, vtable-verify.h: Adjust.
15504
15505 2014-06-24  Richard Biener  <rguenther@suse.de>
15506
15507         PR tree-optimization/61572
15508         * tree-ssa-sink.c (statement_sink_location): Do not sink
15509         loads from hard registers.
15510
15511 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
15512
15513         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
15514         not mentioned in clauses use private clause if the iterator is
15515         declared in #pragma omp for simd, and when adding lastprivate
15516         instead, add it to the outer #pragma omp for too.  Diagnose
15517         if the variable is private in outer context.  For simd collapse > 1
15518         loops, replace all iterators with temporaries.
15519         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
15520         same even in collapse > 1 loops.
15521
15522         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
15523         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
15524         non-NULL.
15525         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
15526         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
15527         non-NULL.
15528         (gimplify_adjust_omp_clauses): Likewise.
15529         * omp-low.c (lower_rec_simd_input_clauses,
15530         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
15531         safelen the same as safelen(1).
15532         * tree-nested.c (convert_nonlocal_omp_clauses,
15533         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
15534         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
15535         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
15536         Fixup handling of GIMPLE_OMP_TARGET.
15537         (convert_tramp_reference_stmt, convert_gimple_call): Handle
15538         GIMPLE_OMP_TARGET.
15539
15540 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
15541
15542         PR tree-optimization/61554
15543         * tree-ssa-propagate.c: Include "bitmap.h".
15544         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
15545         properly update constructor/destructor.
15546         (substitute_and_fold_dom_walker::before_dom_children):
15547         Remove call to gimple_purge_dead_eh_edges, add bb->index to
15548         need_eh_cleaup instead.
15549         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
15550         need_eh_cleanup.
15551
15552 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
15553
15554         * varpool.c (dump_varpool_node): Dump used_by_single_function.
15555         * tree-pass.h (make_pass_ipa_single_use): New pass.
15556         * cgraph.h (used_by_single_function): New flag.
15557         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
15558         Stream it.
15559         * passes.def (pass_ipa_single_use): Scedule.
15560         * ipa.c (BOTTOM): New macro.
15561         (meet): New function
15562         (propagate_single_user): New function.
15563         (ipa_single_use): New function.
15564         (pass_data_ipa_single_use): New pass.
15565         (pass_ipa_single_use): New pass.
15566         (pass_ipa_single_use::gate): New gate.
15567         (make_pass_ipa_single_use): New function.
15568
15569 2014-06-23  Kai Tietz  <ktietz@redhat.com>
15570
15571         PR target/39284
15572         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
15573         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
15574
15575 2014-06-23  Richard Biener  <rguenther@suse.de>
15576
15577         * tree-ssa-loop.c (gate_loop): New function.
15578         (pass_tree_loop::gate): Call it.
15579         (pass_data_tree_no_loop, pass_tree_no_loop,
15580         make_pass_tree_no_loop): New.
15581         * tree-vectorizer.c: Include tree-scalar-evolution.c
15582         (pass_slp_vectorize::execute): Initialize loops and SCEV if
15583         required.
15584         (pass_slp_vectorize::clone): New method.
15585         * timevar.def (TV_TREE_NOLOOP): New.
15586         * tree-pass.h (make_pass_tree_no_loop): Declare.
15587         * passes.def (pass_tree_no_loop): New pass group with
15588         SLP vectorizer.
15589
15590 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
15591
15592         PR target/61570
15593         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
15594         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
15595
15596 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
15597
15598         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
15599         "yes" where needed.
15600
15601 2014-06-23  Alan Modra  <amodra@gmail.com>
15602
15603         PR bootstrap/61583
15604         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
15605         to zero on debug statements.
15606
15607 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
15608
15609         PR target/60825
15610         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
15611         Ignore third operand if present by marking qualifier_internal.
15612
15613         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
15614
15615         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
15616         vector extension.
15617         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
15618         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
15619         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
15620         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
15621         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
15622         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
15623         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
15624         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
15625         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
15626         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
15627         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
15628         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
15629         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
15630         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
15631         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
15632         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
15633         logic in GCC vector extensions
15634
15635         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
15636         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
15637         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
15638         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
15639         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
15640         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
15641         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
15642         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
15643         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
15644         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
15645
15646         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
15647
15648         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
15649         extensions.
15650
15651         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
15652         (vget_low_s64): Use __GET_LOW macro.
15653         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
15654         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
15655         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
15656         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
15657         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
15658
15659         (vcombine_s64): Use GCC vector extensions; remove cast.
15660         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
15661         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
15662         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
15663         Fix type signature; remove cast.
15664
15665 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
15666
15667         PR target/60825
15668         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
15669         V1DFmode.
15670         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
15671         add V1DFmode
15672         (BUILTIN_VD1): New.
15673         (BUILTIN_VD_RE): Remove.
15674         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
15675         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
15676         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
15677         variant but not df.
15678         (vreinterpretv1df*, vreinterpret*v1df): New.
15679         (vreinterpretdf*, vreinterpret*df): Remove.
15680         * config/aarch64/aarch64-simd.md (aarch64_create,
15681         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
15682         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
15683         (VD1): New.
15684         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
15685         (vcreate_f64): Remove cast, use v1df builtin.
15686         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
15687         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
15688         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
15689         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
15690         vmov_n_f64, vst1_f64): Use gcc vector extensions.
15691         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
15692         add range check using __builtin_aarch64_im_lane_boundsi.
15693         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
15694         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
15695         type signature, use gcc vector extensions.
15696         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
15697         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
15698         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
15699         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
15700         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
15701         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
15702         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
15703         vreinterpret_u64_f64): Use v1df builtin not df.
15704
15705 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
15706
15707         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
15708         vector registers.
15709
15710 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
15711
15712         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
15713         priority directly.
15714
15715 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
15716
15717         * loop-invariant.c (pre_check_invariant_p): New function.
15718         (find_invariant_insn): Call pre_check_invariant_p.
15719
15720 2014-06-22  Richard Henderson  <rth@redhat.com>
15721
15722         PR target/61565
15723         * compare-elim.c (struct comparison): Add eh_note.
15724         (find_comparison_dom_walker::before_dom_children): Don't eliminate
15725         a redundant comparison in a different EH region.  Purge EH edges if
15726         necessary.
15727
15728 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15729
15730         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
15731         (var_shift): Use it.
15732         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
15733         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
15734         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
15735         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
15736         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
15737         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
15738         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
15739         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
15740         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
15741         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
15742         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
15743         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
15744         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
15745         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
15746         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
15747         *rotldi3_internal15be): Use the new attribute.  Merge register and
15748         integer alternatives.
15749
15750 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15751
15752         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
15753         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
15754         split, *ashrdi3_internal3 and split): Delete, merge into...
15755         (ashr<mode>3): New expander.
15756         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
15757         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
15758
15759 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15760
15761         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
15762         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
15763         *rotldi3_internal3 and split): Delete, merge into...
15764         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
15765         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
15766         Use "rotlw" extended mnemonic.
15767
15768 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15769
15770         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
15771         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
15772         and split, *ashldi3_internal3 and split): Delete, merge into...
15773         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
15774         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
15775
15776 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15777
15778         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
15779         (lshrsi3, two anonymous define_insns and define_splits,
15780         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
15781         *lshrdi3_internal3 and split): Delete, merge into...
15782         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
15783         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
15784
15785 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15786
15787         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
15788         Remove "O" alternative.
15789
15790 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
15791
15792         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
15793         (mips_move_from_gpr_cost): Likewise.
15794         (mips_register_move_cost): Update accordingly.
15795         (mips_secondary_reload_class): Remove name of in_p.
15796
15797 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
15798
15799         PR target/61503
15800         * config/i386/i386.md (x86_64_shrd, x86_shrd,
15801         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
15802
15803 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
15804
15805         * config/nios2/nios2.c: Include "builtins.h".
15806
15807 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
15808
15809         * cgraph.h (tls_model_names): New variable.
15810         * print-tree.c (print_node): Simplify.
15811         * varpool.c (tls_model_names): New variable.
15812         (dump_varpool_node): Output tls model.
15813
15814 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
15815
15816         * ipa-visibility.c (function_and_variable_visibility): Disable
15817         temporarily local aliases for some targets.
15818
15819 2014-06-20  Marek Polacek  <polacek@redhat.com>
15820
15821         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
15822         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
15823         into SANITIZE_UNDEFINED.
15824         * doc/invoke.texi: Describe -fsanitize=bounds.
15825         * gimplify.c (gimplify_call_expr): Add gimplification of internal
15826         functions created in the FEs.
15827         * internal-fn.c: Move "internal-fn.h" after "tree.h".
15828         (expand_UBSAN_BOUNDS): New function.
15829         * internal-fn.def (UBSAN_BOUNDS): New internal function.
15830         * internal-fn.h: Don't define internal functions here.
15831         * opts.c (common_handle_option): Add -fsanitize=bounds.
15832         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
15833         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
15834         * tree-core.h: Define internal functions here.
15835         (struct tree_base): Add ifn field.
15836         * tree-pretty-print.c: Include "internal-fn.h".
15837         (dump_generic_node): Handle functions without CALL_EXPR_FN.
15838         * tree.c (get_callee_fndecl): Likewise.
15839         (build_call_expr_internal_loc): New function.
15840         * tree.def (CALL_EXPR): Update description.
15841         * tree.h (CALL_EXPR_IFN): Define.
15842         (build_call_expr_internal_loc): Declare.
15843         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
15844         types.
15845         (ubsan_type_descriptor): Change bool parameter to enum
15846         ubsan_print_style.  Adjust the code.  Add handling of
15847         UBSAN_PRINT_ARRAY.
15848         (ubsan_expand_bounds_ifn): New function.
15849         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
15850         (ubsan_build_overflow_builtin): Likewise.
15851         (instrument_bool_enum_load): Likewise.
15852         (ubsan_instrument_float_cast): Likewise.
15853         * ubsan.h (enum ubsan_print_style): New enum.
15854         (ubsan_expand_bounds_ifn): Declare.
15855         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
15856
15857 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
15858
15859         * config/rs6000/rs6000.md: Append `DONE' to preparation
15860         statements of `bswap' pattern splitters.
15861
15862 2014-06-20  Tom de Vries  <tom@codesourcery.com>
15863
15864         * target.def (call_fusage_contains_non_callee_clobbers): Update
15865         definition.
15866         * doc/tm.texi: Regenerate.
15867
15868 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
15869             Max Ostapenko  <m.ostapenko@partner.samsung.com>
15870
15871         PR sanitizer/61547
15872         * asan.c (instrument_strlen_call): Fixed instrumentation of
15873         trailing byte.
15874
15875 2014-06-20  Martin Jambor  <mjambor@suse.cz>
15876
15877         PR ipa/61540
15878         * ipa-prop.c (impossible_devirt_target): New function.
15879         (try_make_edge_direct_virtual_call): Use it, also instead of
15880         asserting.
15881
15882 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
15883             Max Ostapenko  <m.ostapenko@partner.samsung.com>
15884
15885         PR sanitizer/61530
15886         * asan.c (build_check_stmt): Add condition.
15887
15888 2014-06-20  Martin Jambor  <mjambor@suse.cz>
15889
15890         PR ipa/61211
15891         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
15892         expanded clones.
15893
15894 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15895
15896         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
15897         Update comments.
15898         (VCONQ): Make comment more helpful.
15899         (VCON): Delete.
15900         * config/aarch64/aarch64-simd.md
15901         (aarch64_sqdmulh_lane<mode>):
15902         Use VCOND for operands 2.  Update lane checking and flipping logic.
15903         (aarch64_sqrdmulh_lane<mode>): Likewise.
15904         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
15905         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
15906         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
15907         attribute of operand 3 to VCOND.
15908         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
15909         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
15910         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
15911         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
15912         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
15913         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
15914         define_insn.
15915         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
15916         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
15917         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
15918         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
15919         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
15920         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
15921         operand to VCOND.  Update lane flipping and bounds checking logic.
15922         (aarch64_sqdmlal2_lane<mode>): Likewise.
15923         (aarch64_sqdmlsl_lane<mode>): Likewise.
15924         (aarch64_sqdmull_lane<mode>): Likewise.
15925         (aarch64_sqdmull2_lane<mode>): Likewise.
15926         (aarch64_sqdmlal_laneq<mode>):
15927         Replace VCON usage with VCONQ.
15928         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
15929         (aarch64_sqdmlal2_laneq<mode>): Emit
15930         aarch64_sqdmlal2_laneq<mode>_internal insn.
15931         Replace VCON with VCONQ.
15932         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
15933         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
15934         (aarch64_sqdmull_laneq<mode>): Emit
15935         aarch64_sqdmull_laneq<mode>_internal insn.
15936         Replace VCON with VCONQ.
15937         (aarch64_sqdmull2_laneq<mode>): Emit
15938         aarch64_sqdmull2_laneq<mode>_internal insn.
15939         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
15940         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
15941         of 3rd argument to int16x4_t.
15942         (vqdmlalh_lane_s16): Likewise.
15943         (vqdmlslh_lane_s16): Likewise.
15944         (vqdmull_high_lane_s16): Likewise.
15945         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
15946         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
15947         (vqdmlsl_lane_s16): Likewise.
15948         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
15949         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
15950         (vqdmlals_lane_s32): Likewise.
15951         (vqdmlsls_lane_s32): Likewise.
15952         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
15953         (vqdmulls_lane_s32): Likewise.
15954         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
15955         (vqdmlsl_lane_s32): Likewise.
15956         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
15957         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
15958         (vqrdmulhh_lane_s16): Likewise.
15959         (vqdmlsl_high_lane_s16): Likewise.
15960         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
15961         (vqdmlsl_high_lane_s32): Likewise.
15962         (vqrdmulhs_lane_s32): Likewise.
15963
15964 2014-06-20  Tom de Vries  <tom@codesourcery.com>
15965
15966         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
15967         get_call_reg_set_usage.
15968
15969 2014-06-20  Tom de Vries  <tom@codesourcery.com>
15970
15971         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
15972         it contains all call_used_regs.
15973
15974 2014-06-20  Tom de Vries  <tom@codesourcery.com>
15975
15976         * final.c (collect_fn_hard_reg_usage): Add and use variable
15977         function_used_regs.
15978
15979 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
15980
15981         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
15982         (set_init_priority, get_init_priority, set_fini_priority,
15983         get_fini_priority): New methods.
15984         * tree.c (init_priority_for_decl): Remove.
15985         (init_ttree): Do not initialize init priority.
15986         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
15987         (decl_priority_info): Remove.
15988         (decl_init_priority_insert): Rewrite.
15989         (decl_fini_priority_insert): Rewrite.
15990         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
15991         tree_priority_map_marked_p): Remove.
15992         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
15993         * lto-streamer-out.c (hash_tree): Do not hash priorities.
15994         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
15995         not output priorities.
15996         (pack_ts_function_decl_value_fields): Likewise.
15997         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
15998         not input priorities.
15999         (unpack_ts_function_decl_value_fields): Likewise.
16000         * symtab.c (symbol_priority_map): Declare.
16001         (init_priority_hash): Declare.
16002         (symtab_unregister_node): Unregister from priority hash, too.
16003         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
16004         New methods.
16005         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
16006         (symbol_priority_info): New function.
16007         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
16008         New methods.
16009         * tree-core.h (tree_priority_map): Remove.
16010
16011 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
16012
16013         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
16014         0xff to uint64_t before shifting it up.
16015
16016 2014-06-20  Julian Brown  <julian@codesourcery.com>
16017             Chung-Lin Tang  <cltang@codesourcery.com>
16018
16019         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
16020         TARGET_THUMB1_ONLY. Add comments.
16021
16022 2014-06-19  Tom de Vries  <tom@codesourcery.com>
16023
16024         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
16025         return type to void.
16026         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
16027
16028 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
16029
16030         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
16031         as "move", from depends_on.
16032
16033 2014-06-19  Terry Guo  <terry.guo@arm.com>
16034
16035         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
16036         stage.
16037
16038 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
16039
16040         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
16041         Remove cr5.
16042         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
16043
16044 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
16045
16046         PR target/61550
16047         * config/sh/sh.c (prepare_move_operands): Don't process TLS
16048         addresses here if reload in progress or completed.
16049
16050 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
16051
16052         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
16053         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
16054         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
16055         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
16056         (mips_register_priority): New function that implements the target
16057         hook TARGET_REGISTER_PRIORITY.
16058         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
16059         (mips_lra_p): Likewise for TARGET_LRA_P.
16060         (TARGET_REGISTER_PRIORITY): Define macro.
16061         (TARGET_SPILL_CLASS): Likewise.
16062         (TARGET_LRA_P): Likewise.
16063         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
16064         classes.
16065         (REG_CLASS_NAMES): Likewise.
16066         (REG_CLASS_CONTENTS): Likewise.
16067         (BASE_REG_CLASS): Use M16_SP_REGS.
16068         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
16069         New set attribute to enable alternatives depending on the register
16070         allocator used.
16071         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
16072         (*lea64): Disable pattern for MIPS16.
16073         * config/mips/mips.opt (mlra): New option.
16074
16075 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
16076
16077         * lra-constraints.c (base_to_reg): New function.
16078         (process_address): Use new function.
16079
16080 2014-06-18  Tom de Vries  <tom@codesourcery.com>
16081
16082         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
16083         * config/aarch64/aarch64.c
16084         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
16085         (aarch64_emit_call_insn): New function.
16086         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
16087         of emit_call_insn.
16088         * config/aarch64/aarch64.md (define_expand "call_internal")
16089         (define_expand "call_value_internal", define_expand "sibcall_internal")
16090         (define_expand "sibcall_value_internal"): New.
16091         (define_expand "call", define_expand "call_value")
16092         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
16093         expand variant and aarch64_emit_call_insn.
16094
16095 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
16096             Tom de Vries  <tom@codesourcery.com>
16097
16098         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
16099         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
16100         Redefine to true.
16101         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
16102         clobbers to CALL_INSN_FUNCTION_USAGE.
16103         (define_expand "sibcall_internal")
16104         (define_expand "sibcall_value_internal"): New.
16105         (define_expand "call", define_expand "call_value"): Add argument to
16106         arm_emit_call_insn.
16107         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
16108         (define_expand "sibcall_value"): Use sibcall_value_internal and
16109         arm_emit_call_insn.
16110
16111 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16112
16113         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
16114
16115 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16116
16117         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
16118         __udivmoddi4.
16119
16120 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16121
16122         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
16123         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
16124         annotations. Fix DWARF information.
16125
16126 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16127
16128         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
16129         __udivmoddi4, and fixups for negative operands.
16130
16131 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16132
16133         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
16134
16135 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16136
16137         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
16138         to __udivmoddi4.
16139
16140 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16141
16142         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
16143         manipulation.
16144
16145 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16146
16147         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
16148         describing register usage on function entry and exit.
16149
16150 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16151
16152         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
16153         (__aeabi_ldivmod): Fix whitespace.
16154
16155 2014-06-18  Andreas Schwab  <schwab@suse.de>
16156
16157         * doc/md.texi (Standard Names): Use @itemx for grouped items.
16158         Remove blank line after @item.
16159
16160 2014-06-18  Richard Henderson  <rth@redhat.com>
16161
16162         PR target/61545
16163         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
16164
16165 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16166
16167         * config/arm/arm.c (neon_vector_mem_operand): Allow register
16168         POST_MODIFY for neon loads and stores.
16169         (arm_print_operand): Output post-index register for neon loads and
16170         stores.
16171
16172 2014-06-18  Richard Biener  <rguenther@suse.de>
16173
16174         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
16175
16176 2014-06-18  Richard Biener  <rguenther@suse.de>
16177
16178         * tree-pass.h (make_pass_dce_loop): Remove.
16179         * passes.def: Replace pass_dce_loop with pass_dce.
16180         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
16181         changed free niter estimates and reset the scev cache.
16182         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
16183         make_pass_dce_loop): Remove.
16184         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
16185         (fini_copy_prop): Return whether something changed.  Always
16186         let substitute_and_fold perform DCE and free niter estimates
16187         and reset the scev cache if so.
16188         (execute_copy_prop): If sth changed schedule cleanup-cfg.
16189         (pass_data_copy_prop): Do not unconditionally schedule
16190         cleanup-cfg or update-ssa.
16191
16192 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
16193
16194         PR tree-optimization/61518
16195         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
16196         reduction var is used in reduction stmt or phi-function only.
16197
16198 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16199
16200         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
16201
16202 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16203
16204         PR tree-optimization/61517
16205         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
16206         whose rhs's first tree is the source expression instead of the
16207         expression itself.
16208         (find_bswap_or_nop): Likewise.
16209         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
16210         gimple stmt whose rhs's first tree is the source. In the memory source
16211         case, move the stmt to be replaced close to one of the original load to
16212         avoid the problem of a store between the load and the stmt's original
16213         location.
16214         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
16215         signature.
16216
16217 2014-06-18  Andreas Schwab  <schwab@suse.de>
16218
16219         PR rtl-optimization/54555
16220         * postreload.c (move2add_use_add2_insn): Substitute
16221         STRICT_LOW_PART only if it is cheaper.
16222
16223 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
16224
16225         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
16226         Do not use unspec as call operand.  Use memory_operand instead of
16227         memory_nox32_operand and add "m" operand constraint.  Disable
16228         pattern for TARGET_X32.
16229         (*sibcall_pop_memory): Ditto.
16230         (*sibcall_value_memory): Ditto.
16231         (*sibcall_value_pop_memory): Ditto.
16232         (sibcall peepholes): Merge SImode and DImode patterns using
16233         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
16234         Disable pattern for TARGET_X32.  Check if eliminated register is
16235         really dead after call insn.  Generate call RTX without unspec operand.
16236         (sibcall_value peepholes): Ditto.
16237         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
16238         instead of memory_nox32_operand.  Check if eliminated register is
16239         really dead after call insn. Generate call RTX without unspec operand.
16240         (sibcall_value_pop peepholes): Ditto.
16241         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
16242
16243 2014-06-18  Terry Guo  <terry.guo@arm.com>
16244
16245         PR target/61544
16246         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
16247         reach the head.
16248
16249 2014-06-18  Olivier Hainque  <hainque@adacore.com>
16250
16251         * tree-core.h (tree_block): Add an "end_locus" field, allowing
16252         memorization of the end of block source location.
16253         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
16254         * gimplify.c (gimplify_bind_expr): Propagate the block start and
16255         end source location info we have on the block entry/exit code we
16256         generate.
16257
16258 2014-06-18  Richard Biener  <rguenther@suse.de>
16259
16260         * common.opt (fssa-phiopt): New option.
16261         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
16262         but not with -Og.
16263         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
16264         * doc/invoke.texi (-fssa-phiopt): Document.
16265
16266 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16267
16268         * genattrtab.c (n_bypassed): New variable.
16269         (process_bypasses): Initialise n_bypassed.
16270         Count number of bypassed reservations.
16271         (make_automaton_attrs): Allocate space for bypassed reservations
16272         rather than number of bypasses.
16273
16274 2014-06-18  Richard Biener  <rguenther@suse.de>
16275
16276         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
16277         we propagated anything.
16278         (substitute_and_fold_dom_walker::before_dom_children): Something
16279         changed if we propagated into PHI arguments.
16280         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
16281         we removed a stmt.
16282
16283 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
16284
16285         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
16286         vector case.
16287         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
16288         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
16289         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
16290         Introduces alternative way of loads group permutaions.
16291         (vect_transform_grouped_load): Try alternative way of permutations.
16292
16293 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
16294
16295         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
16296         changed in ORT_TARGET region, don't jump to do_outer.
16297         (struct gimplify_adjust_omp_clauses_data): New type.
16298         (gimplify_adjust_omp_clauses_1): Adjust for data being
16299         a struct gimplify_adjust_omp_clauses_data pointer instead
16300         of tree *.  Pass pre_p as a new argument to
16301         lang_hooks.decls.omp_finish_clause hook.
16302         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
16303         splay_tree_foreach to pass both list_p and pre_p.
16304         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
16305         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
16306         gimplify_adjust_omp_clauses callers.
16307         * langhooks.c (lhd_omp_finish_clause): New function.
16308         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
16309         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
16310         * langhooks.h (struct lang_hooks_for_decls): Add a new
16311         gimple_seq * argument to omp_finish_clause hook.
16312         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
16313         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
16314         (scan_omp_parallel, lower_omp_for): When adding
16315         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
16316         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
16317         * tree-nested.c (convert_nonlocal_omp_clauses,
16318         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
16319         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
16320
16321 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
16322
16323         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
16324         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
16325
16326 2014-06-17  Xinliang David Li  <davidxl@google.com>
16327
16328         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
16329         * passes.c (pass_init_dump_file): Do not set initialize
16330         flag to false unconditionally.
16331
16332 2014-06-17  Richard Biener  <rguenther@suse.de>
16333
16334         * genopinit.c (main): Use vec<>::qsort method.
16335         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
16336         Likewise.
16337         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
16338
16339 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
16340
16341         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
16342         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
16343         (mips_move_to_gpr_cost): Remove ST_REGS case.
16344         (mips_move_from_gpr_cost): Likewise.
16345         (mips_register_move_cost): Likewise.
16346         (mips_secondary_reload_class): Likewise.
16347
16348 2014-06-17  Richard Biener  <rguenther@suse.de>
16349
16350         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
16351         (pass_all_optimizations): Move 3rd copy-prop pass from after
16352         fre to before ifcombine/phiopt.
16353
16354 2014-06-17  Richard Biener  <rguenther@suse.de>
16355
16356         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
16357         and allow all blocks to be forwarders.
16358
16359 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
16360
16361         PR target/61483
16362         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
16363         variable 'size'; calculate 'size' right in the front; use
16364         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
16365         pcum->aapcs_stack_words.
16366
16367 2014-06-17  Nick Clifton  <nickc@redhat.com>
16368
16369         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
16370         (umulhi3, mulsidi3, umulsidi3): Likewise.
16371
16372 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
16373
16374         PR middle-end/61508
16375         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
16376         check for section name.
16377
16378 2014-06-17  Richard Biener  <rguenther@suse.de>
16379
16380         * tree-ssa-propagate.c: Include domwalk.h.
16381         (substitute_and_fold): Outline main worker into a domwalker ...
16382         (substitute_and_fold_dom_walker::before_dom_children): ... here.
16383         Schedule stmts we can fully propagate for removal.  Remove
16384         poor-mans DCE.
16385         (substitute_and_fold): Apply a dominator walk to perform
16386         substitution.  Process stmts scheduled for removal here.
16387
16388 2014-06-17  Richard Biener  <rguenther@suse.de>
16389
16390         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
16391         of PHI node moving.
16392
16393 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
16394
16395         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
16396         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
16397         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
16398         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
16399         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
16400         TARGET_HARD_FLOAT.
16401         (get_fpscr) : Likewise.
16402
16403 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
16404
16405         PR rtl-optimization/61325
16406         * lra-constraints.c (valid_address_p): Add forward declaration.
16407         (simplify_operand_subreg): Check address validity before and after
16408         alter_reg of memory subreg.
16409
16410 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
16411
16412         * config/i386/i386.c (decide_alg): Correctly handle
16413         maximum size of stringop algorithm.
16414
16415 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
16416
16417         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
16418
16419 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
16420
16421         PR rtl-optimization/61522
16422         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
16423
16424 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
16425
16426         Revert:
16427         * symtab.c (symtab_node::reset_section): New method.
16428         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
16429         for localization.
16430         * cgraph.h (reset_section): Declare.
16431         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
16432         do not consider comdat locals.
16433         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
16434         for new symbol.
16435         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
16436         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
16437         reset sections of symbols dragged out of the comdats.
16438         (function_and_variable_visibility): Reset sections of
16439         localized symbols.
16440
16441 2014-06-16  Richard Biener  <rguenther@suse.de>
16442
16443         PR tree-optimization/61482
16444         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
16445         [-INF(OVF), +INF(OVF)] range.
16446
16447 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16448
16449         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
16450         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
16451         handling 32-bit multiplication.
16452
16453 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
16454
16455         PR middle-end/61430
16456         * lra-lives.c (process_bb_lives): Skip creating copy during
16457         insn scan when src/dest has constrained to same regno.
16458
16459 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
16460
16461         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
16462         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
16463
16464 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
16465
16466         * asan.c (check_func): New function.
16467         (maybe_create_ssa_name): Likewise.
16468         (build_check_stmt_with_calls): Likewise.
16469         (use_calls_p): Likewise.
16470         (report_error_func): Change interface.
16471         (build_check_stmt): Allow non-integer lengths; add support
16472         for new parameter.
16473         (asan_instrument): Likewise.
16474         (instrument_mem_region_access): Moved code to build_check_stmt.
16475         (instrument_derefs): Likewise.
16476         (instrument_strlen_call): Likewise.
16477         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
16478         * doc/invoke.texi: Describe new parameter.
16479         * params.def: Define new parameter.
16480         * params.h: Likewise.
16481         * sanitizer.def: Describe new builtins.
16482
16483 2014-06-16  Richard Biener  <rguenther@suse.de>
16484
16485         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16486         Make all defs available at the end.
16487         (eliminate): If we remove a PHI node schedule cfg-cleanup.
16488
16489 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
16490
16491         PR plugins/45078
16492         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
16493
16494 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
16495
16496         PR bootstrap/61516
16497         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
16498         initialization.  Replace remaining use of uid.
16499
16500 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
16501
16502         * c-family/c-common.c (handle_tls_model_attribute): Use
16503         set_decl_tls_model.
16504         * c-family/c-common.c (handle_tls_model_attribute): Use
16505         set_decl_tls_model.
16506         * cgraph.h (struct varpool_node): Add tls_model.
16507         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
16508         * tree.h (DECL_TLS_MODEL): Update.
16509         (DECL_THREAD_LOCAL_P): Check that variable is static.
16510         (decl_tls_model): Declare.
16511         (set_decl_tls_model): Declare.
16512         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
16513         set symbol prorperties.
16514         (get_emutls_init_templ_addr): Cleanup.
16515         (new_emutls_decl): Update.
16516         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
16517         (lto_input_varpool_node): Likewise.
16518         * lto-streamer-out.c (hash_tree): Likewise.
16519         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
16520         not stream DECL_TLS_MODEL.
16521         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
16522         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
16523
16524 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16525
16526         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
16527
16528 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16529
16530         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
16531         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
16532         lists.
16533         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
16534         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
16535         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
16536         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
16537         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
16538         (df_get_artificial_defs, df_get_artificial_uses)
16539         (df_single_def, df_single_use): Update accordingly.
16540         (df_refs_chain_dump): Take the first element in a linked list as
16541         parameter, rather than a pointer to an array of pointers.
16542         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
16543         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
16544         (df_chain_create_bb_process_use): Likewise.
16545         (df_md_bb_local_compute_process_def): Likewise.
16546         * fwprop.c (process_defs, process_uses): Likewise.
16547         (register_active_defs, update_uses): Likewise.
16548         (forward_propagate_asm): Update for new df_ref linking.
16549         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
16550         (df_null_ref_rec, df_null_mw_rec): Likewise.
16551         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
16552         explicitly.
16553         (df_scan_free_bb_info): Remove check for null artificial_defs.
16554         (df_install_ref_incremental): Adjust for new df_ref linking.
16555         Use a single-element insertion rather than a full sort.
16556         (df_ref_chain_delete_du_chain): Take the first element
16557         in a linked list as parameter, rather than a pointer to an array of
16558         pointers.
16559         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
16560         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
16561         (df_insn_info_delete): Remove check for null defs and call to
16562         df_scan_free_mws_vec.
16563         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
16564         null rather than df_null_*_rec.
16565         (df_insn_rescan_debug_internal): Likewise, and update null
16566         checks in the same way.  Remove check for null defs.
16567         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
16568         Move a single element rather doing a full sort.
16569         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
16570         linking.
16571         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
16572         Initialize df_ref and df_mw_hardreg lists to null rather than
16573         df_null_*_rec.
16574         (df_ref_compare): Take df_refs as parameter, transferring the
16575         old interface to...
16576         (df_ref_ptr_compare): ...this new function.
16577         (df_sort_and_compress_refs): Update accordingly.
16578         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
16579         old interface to...
16580         (df_mw_ptr_compare): ...this new function.
16581         (df_sort_and_compress_mws): Update accordingly.
16582         (df_install_refs, df_install_mws): Return a linked list rather than
16583         an array of pointers.
16584         (df_refs_add_to_chains): Assert that old lists are empty rather
16585         than freeing them.
16586         (df_insn_refs_verify): Don't handle null defs speciailly.
16587         * web.c (union_match_dups): Update for new df_ref linking.
16588
16589 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16590
16591         * df.h (df_ref_create, df_ref_remove): Delete.
16592         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
16593         (df_ref_remove): Likewise.
16594
16595 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16596
16597         * df.h (df_single_def, df_single_use): New functions.
16598         * ira.c (find_moveable_pseudos): Use them.
16599
16600 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16601
16602         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
16603         * df-problems.c (df_note_bb_compute): Use it.
16604         * regstat.c (regstat_bb_compute_ri): Likewise.
16605
16606 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16607
16608         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
16609         * cse.c (cse_extended_basic_block): Use them.
16610         * dce.c (mark_artificial_use): Likewise.
16611         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
16612         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
16613         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
16614         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
16615         (df_simulate_initialize_backwards): Likewise.
16616         (df_simulate_finalize_backwards): Likewise.
16617         (df_simulate_initialize_forwards): Likewise.
16618         (df_md_simulate_artificial_defs_at_top): Likewise.
16619         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
16620         * regrename.c (init_rename_info): Likewise.
16621         * regstat.c (regstat_bb_compute_ri): Likewise.
16622         (regstat_bb_compute_calls_crossed): Likewise.
16623
16624 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16625
16626         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
16627         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
16628         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
16629         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
16630         * combine.c (create_log_links): Likewise.
16631         * compare-elim.c (find_flags_uses_in_insn): Likewise.
16632         (try_eliminate_compare): Likewise.
16633         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
16634         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
16635         (remove_reg_equal_equiv_notes_for_defs): Likewise.
16636         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
16637         (word_dce_process_block, dce_process_block): Likewise.
16638         * ddg.c (def_has_ccmode_p): Likewise.
16639         * df-core.c (df_bb_regno_first_def_find): Likewise.
16640         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
16641         * df-problems.c (df_rd_simulate_one_insn): Likewise.
16642         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
16643         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
16644         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
16645         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
16646         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
16647         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
16648         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
16649         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
16650         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
16651         * fwprop.c (local_ref_killed_between_p): Likewise.
16652         (all_uses_available_at, free_load_extend): Likewise.
16653         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
16654         * hw-doloop.c (scan_loop): Likewise.
16655         * ifcvt.c (dead_or_predicable): Likewise.
16656         * init-regs.c (initialize_uninitialized_regs): Likewise.
16657         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
16658         (process_bb_node_lives): Likewise.
16659         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
16660         (find_moveable_pseudos): Likewise.
16661         * loop-invariant.c (check_dependencies, record_uses): Likewise.
16662         * recog.c (peep2_find_free_register): Likewise.
16663         * ree.c (get_defs): Likewise.
16664         * regstat.c (regstat_bb_compute_ri): Likewise.
16665         (regstat_bb_compute_calls_crossed): Likewise.
16666         * sched-deps.c (find_inc, find_mem): Likewise.
16667         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
16668         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
16669         * shrink-wrap.c (requires_stack_frame_p): Likewise.
16670         (prepare_shrink_wrap): Likewise.
16671         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
16672         * web.c (union_defs, pass_web::execute): Likewise.
16673         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
16674         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
16675
16676 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
16677
16678         * lra-assign.c (assign_by_spills): Add code to assign vector regs
16679         to inheritance pseudos.
16680         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
16681
16682 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
16683
16684         PR target/61415
16685         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
16686         (BU_MISC_2): Rename to ...
16687         (BU_LDBL128_2): ... this.
16688         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
16689         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
16690         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
16691         RS6000_BTM_LDBL128.
16692         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
16693         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
16694         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
16695         (unpacktf_1): Likewise.
16696         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
16697         (__builtin_longdouble_dw1): Likewise.
16698         * doc/sourcebuild.texi (longdouble128): Document.
16699
16700 2014-06-13  Jeff Law  <law@redhat.com>
16701
16702         PR rtl-optimization/61094
16703         PR rtl-optimization/61446
16704         * ree.c (combine_reaching_defs): Get the mode for the copy from
16705         the extension insn rather than the defining insn.
16706
16707 2014-06-13  Dehao Chen  <dehao@google.com>
16708
16709         * dwarf2out.c (add_linkage_name): Emit more linkage name.
16710
16711 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
16712
16713         * doc/install.texi (--enable-linker-plugin-configure-flags)
16714         (--enable-linker-plugin-flags): Document new flags.
16715
16716 2014-06-13  Martin Jambor  <mjambor@suse.cz>
16717
16718         PR ipa/61186
16719         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
16720         cache_token if returning early.
16721
16722 2014-06-13  Nick Clifton  <nickc@redhat.com>
16723
16724         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
16725         requested alignment is active.
16726         (LABEL_ALIGN): Likewise.
16727         (LOOP_ALIGN): Likewise.
16728
16729 2014-06-13  Richard Biener  <rguenther@suse.de>
16730
16731         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16732         Rewrite to propagate the VN result into all uses where
16733         possible and to remove stmts becoming dead because of that.
16734         (eliminate): Generalize stmt removal handling, remove in
16735         reverse dominator order to support proper debug stmt
16736         generation.  Update stmts before removing stmts.
16737         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
16738
16739 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16740
16741         PR tree-optimization/61375
16742         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
16743         symbolic number cannot be represented in an uint64_t.
16744         (find_bswap_or_nop_1): Likewise.
16745
16746 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
16747
16748         * symtab.c (symtab_node::reset_section): New method.
16749         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
16750         for localization.
16751         * cgraph.h (reset_section): Declare.
16752         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
16753         do not consider comdat locals.
16754         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
16755         for new symbol.
16756         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
16757         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
16758         reset sections of symbols dragged out of the comdats.
16759         (function_and_variable_visibility): Reset sections of
16760         localized symbols.
16761
16762 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
16763
16764         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
16765         to use symtab and decl_binds_to_current_def_p
16766         * tree-vectorizer.c (increase_alignment): Increase alignment
16767         of alias target, too.
16768
16769 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
16770
16771         PR middle-end/61486
16772         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
16773         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
16774         if outer combined construct is distribute.
16775         (gimplify_omp_for): For OMP_DISTRIBUTE set
16776         gimplify_omp_ctxp->distribute.
16777         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
16778         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
16779         mapping into decl map.
16780
16781 2014-06-12  Jason Merrill  <jason@redhat.com>
16782
16783         * common.opt (fabi-version): Change default to 0.
16784
16785 2014-06-12  Jason Merrill  <jason@redhat.com>
16786
16787         * toplev.c (process_options): Reject -fabi-version=1.
16788
16789 2014-06-12  Jeff Law  <law@redhat.com>
16790
16791         PR tree-optimization/61009
16792         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
16793         value when we stop processing a block due to problematic PHIs.
16794
16795 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
16796
16797         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
16798         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
16799         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
16800         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
16801         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
16802         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
16803         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
16804         are not in the spec.
16805
16806 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
16807
16808         PR target/59843
16809         * config/aarch64/aarch64-modes.def: Add V1DFmode.
16810         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
16811         Support V1DFmode.
16812
16813 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
16814
16815         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
16816
16817 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
16818
16819         PR target/61443
16820         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
16821         loading from address spaces.
16822
16823 2014-06-12  Martin Liska  <mliska@suse.cz>
16824
16825         PR ipa/61462
16826         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
16827         statement is reachable.
16828
16829 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
16830
16831         * symtab.c (section_hash): New hash.
16832         (symtab_unregister_node): Clear section before freeing.
16833         (hash_section_hash_entry): New haser.
16834         (eq_sections): New function.
16835         (symtab_node::set_section_for_node): New method.
16836         (set_section_1): Update.
16837         (symtab_node::set_section): Take string instead of tree as parameter.
16838         (symtab_resolve_alias): Update.
16839         * cgraph.h (section_hash_entry_d): New structure.
16840         (section_hash_entry): New typedef.
16841         (cgraph_node): Change comdat_group_ to x_comdat_group,
16842         change section_ to x_section and turn into section_hash_entry;
16843         update accestors; put set_section_for_node offline.
16844         * tree.c (decl_section_name): Turn into string.
16845         (set_decl_section_name): Change parameter to be string.
16846         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
16847         * sdbout.c (sdbout_one_type): Update.
16848         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
16849         * varasm.c (IN_NAMED_SECTION, get_named_section,
16850         resolve_unique_section, hot_function_section, get_named_text_section,
16851         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
16852         make_decl_rtl, default_unique_section): Update.
16853         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
16854         (c6x_elf_unique_section): Update.
16855         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
16856         * config/pa/pa.c (pa_function_section): Update.
16857         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
16858         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
16859         * config/arc/arc.c (arc_in_small_data_p): Update.
16860         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
16861         * config/mcore/mcore.c (mcore_unique_section): Update.
16862         * config/mips/mips.c (mips16_build_function_stub): Update.
16863         (mips16_build_call_stub): Update.
16864         (mips_function_rodata_section): Update.
16865         (mips_in_small_data_p): Update.
16866         * config/score/score.c (score_in_small_data_p): Update.
16867         * config/rx/rx.c (rx_in_small_data): Update.
16868         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
16869         (rs6000_xcoff_asm_named_section): Update.
16870         (rs6000_xcoff_unique_section): Update.
16871         * config/frv/frv.c (frv_string_begins_with): Update.
16872         (frv_in_small_data_p): Update.
16873         * config/v850/v850.c (v850_encode_data_area): Update.
16874         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
16875         (bfin_handle_l1_data_attribute): Update.
16876         (bfin_handle_l2_attribute): Update.
16877         * config/mep/mep.c (mep_unique_section): Update.
16878         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
16879         Update.
16880         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
16881         (h8300_handle_tiny_data_attribute): Update.
16882         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
16883         (m32r_in_small_data_p): Update.
16884         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
16885         * config/i386/i386.c (ix86_in_large_data_p): Update.
16886         * config/i386/winnt.c (i386_pe_unique_section): Update.
16887         * config/darwin.c (darwin_function_section): Update.
16888         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
16889         * tree-emutls.c (get_emutls_init_templ_addr): Update.
16890         (new_emutls_decl): Update.
16891         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
16892         input_varpool_node): Update.
16893         (ead_string_cst): Turn to ...
16894         (read_string): ... this one.
16895         * dwarf2out.c (secname_for_decl): Update.
16896         * asan.c (asan_protect_global): Update.
16897
16898 2014-06-11  DJ Delorie  <dj@redhat.com>
16899
16900         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
16901         cache lines.
16902         * config/rx/rx.c (rx_option_override): Likewise.
16903         (rx_align_for_label): Likewise.
16904
16905         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
16906
16907 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
16908
16909         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
16910         prototype.
16911
16912 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16913
16914         * common.md: New file.
16915         * doc/md.texi: Update description of generic, machine-independent
16916         constraints.
16917         * config/s390/constraints.md (e): Delete.
16918         * Makefile.in (md_file): Include common.md.
16919         * config/m32c/t-m32c (md_file): Likewise.
16920         * genpreds.c (general_mem): New array.
16921         (generic_constraint_letters): Remove constraints now defined by
16922         common.md.
16923         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
16924         Allow the first character to be '<' or '>' as well.
16925         * genoutput.c (general_mem): New array.
16926         (indep_constraints): Remove constraints now defined by common.md.
16927         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
16928         Remove special handling of 'm'.
16929         * ira-costs.c (record_reg_classes): Remove special handling of
16930         constraints now defined by common.md.
16931         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
16932         * ira-lives.c (single_reg_class): Likewise.
16933         (ira_implicitly_set_insn_hard_regs): Likewise.
16934         * lra-constraints.c (reg_class_from_constraints): Likewise.
16935         (process_alt_operands, process_address, curr_insn_transform): Likewise.
16936         * postreload.c (reload_cse_simplify_operands): Likewise.
16937         * reload.c (push_secondary_reload, scratch_reload_class)
16938         (find_reloads, alternative_allows_const_pool_ref): Likewise.
16939         * reload1.c (maybe_fix_stack_asms): Likewise.
16940         * targhooks.c (default_secondary_reload): Likewise.
16941         * stmt.c (parse_output_constraint): Likewise.
16942         * recog.c (preprocess_constraints): Likewise.
16943         (constrain_operands, peep2_find_free_register): Likewise.
16944         (asm_operand_ok): Likewise, but add a comment saying why 'o'
16945         must be handled specially.
16946
16947 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16948
16949         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
16950         * genpreds.c (have_const_dbl_constraints): Delete.
16951         (add_constraint): Don't set it.
16952         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
16953         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
16954         constraints using the lookup_constraint logic.
16955         * ira-lives.c (single_reg_class): Likewise.
16956         * ira.c (ira_setup_alts): Likewise.
16957         * lra-constraints.c (process_alt_operands): Likewise.
16958         * recog.c (asm_operand_ok, constrain_operands): Likewise.
16959         * reload.c (find_reloads): Likewise.
16960
16961 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16962
16963         * genpreds.c (const_int_start, const_int_end): New variables.
16964         (choose_enum_order): Output CONST_INT constraints before memory
16965         constraints.
16966         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
16967         Add CT_CONST_INT.
16968         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
16969         * ira.c (ira_setup_alts): Likewise.
16970         * lra-constraints.c (process_alt_operands): Likewise.
16971         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
16972         * reload.c (find_reloads): Likewise.
16973
16974 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16975
16976         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
16977         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
16978         * recog.c (preprocess_constraints): Update accordingly.
16979
16980 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16981
16982         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
16983         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
16984         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
16985         * genpreds.c (print_type_tree): New function.
16986         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
16987         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
16988         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
16989         Write out enum constraint_type and get_constraint_type.
16990         * lra-constraints.c (satisfies_memory_constraint_p): Take a
16991         constraint_num rather than a constraint string.
16992         (satisfies_address_constraint_p): Likewise.
16993         (reg_class_from_constraints): Avoid old constraint macros.
16994         (process_alt_operands, process_address_1): Likewise.
16995         (curr_insn_transform): Likewise.
16996         * ira-costs.c (record_reg_classes): Likewise.
16997         (record_operand_costs): Likewise.
16998         * ira-lives.c (single_reg_class): Likewise.
16999         (ira_implicitly_set_insn_hard_regs): Likewise.
17000         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
17001         * postreload.c (reload_cse_simplify_operands): Likewise.
17002         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
17003         (constrain_operands, peep2_find_free_register): Likewise.
17004         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
17005         (find_reloads, alternative_allows_const_pool_ref): Likewise.
17006         * reload1.c (maybe_fix_stack_asms): Likewise.
17007         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
17008         * targhooks.c (default_secondary_reload): Likewise.
17009         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
17010         to EXTRA_CONSTRAINT_STR.
17011         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
17012
17013 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17014
17015         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
17016         (write_constraint_satisfied_p_array): ...this new function.
17017         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
17018         an array.
17019         (write_insn_preds_c): Update accordingly.
17020
17021 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17022
17023         * genpreds.c (write_lookup_constraint): Rename to...
17024         (write_lookup_constraint_1): ...this.
17025         (write_lookup_constraint_array): New function.
17026         (write_tm_preds_h): Define lookup_constraint as an inline function
17027         that uses write_lookup_constraint_array where possible.
17028         (write_insn_preds_c): Update for the changes above.
17029
17030 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17031
17032         * doc/md.texi (regclass_for_constraint): Rename to...
17033         (reg_class_for_constraint): ...this.
17034         * genpreds.c (num_constraints, enum_order, register_start)
17035         (register_end, satisfied_start, memory_start, memory_end)
17036         (address_start, address_end): New variables.
17037         (add_constraint): Count the number of constraints.
17038         (choose_enum_order): New function.
17039         (write_enum_constraint_num): Iterate over enum_order.
17040         (write_regclass_for_constraint): Rename to...
17041         (write_reg_class_for_constraint_1): ...this and update output
17042         accordingly.
17043         (write_constraint_satisfied_p): Rename to...
17044         (write_constraint_satisfied_p_1): ...this and update output
17045         accordingly.  Do nothing if all extra constraints are register
17046         constraints.
17047         (write_insn_extra_memory_constraint): Delete.
17048         (write_insn_extra_address_constraint): Delete.
17049         (write_range_function): New function.
17050         (write_tm_preds_h): Define constraint_satisfied_p and
17051         reg_class_for_constraint as inline functions that do a range check
17052         before calling the out-of-line function.  Use write_range_function
17053         to implement insn_extra_{register,memory,address}_constraint,
17054         the first of which is new.
17055         (write_insn_preds_c): Update after above changes to write_* functions.
17056         (main): Call choose_enum_order.
17057
17058 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17059
17060         PR tree-optimization/61306
17061         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
17062         expression instead of its size.
17063         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
17064         false to prevent optimization when the result is unpredictable due to
17065         arithmetic right shift of signed type with highest byte is set.
17066         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
17067         (init_symbolic_number): Likewise.
17068         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
17069         when the result is unpredictable due to sign extension.
17070
17071 2014-06-11  Terry Guo  <terry.guo@arm.com>
17072
17073         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
17074         (*thumb1_addsi3): Ditto.
17075         (*thumb_subdi3): Ditto.
17076         (thumb1_subsi3_insn): Ditto.
17077         (*thumb_mulsi3): Ditto.
17078         (*thumb_mulsi3_v6): Ditto.
17079         (*thumb1_andsi3_insn): Ditto.
17080         (thumb1_bicsi3): Ditto.
17081         (*thumb1_iorsi3_insn): Ditto.
17082         (*thumb1_xorsi3_insn): Ditto.
17083         (*thumb1_ashlsi3): Ditto.
17084         (*thumb1_ashrsi3): Ditto.
17085         (*thumb1_lshrsi3): Ditto.
17086         (*thumb1_rotrsi3): Ditto.
17087         (*thumb1_negdi2): Ditto.
17088         (*thumb1_negsi2): Ditto.
17089         (*thumb1_abssi2): Ditto.
17090         (*thumb1_neg_abssi2): Ditto.
17091         (*thumb1_one_cmplsi2): Ditto.
17092         (*thumb1_zero_extendhisi2): Ditto.
17093         (*thumb1_zero_extendqisi2): Ditto.
17094         (*thumb1_zero_extendqisi2_v6): Ditto.
17095         (thumb1_extendhisi2): Ditto.
17096         (thumb1_extendqisi2): Ditto.
17097         (*thumb1_movdi_insn): Ditto.
17098         (*thumb1_movsi_insn): Ditto.
17099         (*thumb1_movhi_insn): Ditto.
17100         (thumb_movhi_clobber): Ditto.
17101         (*thumb1_movqi_insn): Ditto.
17102         (*thumb1_movhf): Ditto.
17103         (*thumb1_movsf_insn): Ditto.
17104         (*thumb_movdf_insn): Ditto.
17105         (movmem12b): Ditto.
17106         (movmem8b): Ditto.
17107         (cbranchqi4): Ditto.
17108         (cbranchsi4_insn): Ditto.
17109         (cbranchsi4_scratch): Ditto.
17110         (*negated_cbranchsi4): Ditto.
17111         (*tbit_cbranch): Ditto.
17112         (*tlobits_cbranch): Ditto.
17113         (*tstsi3_cbranch): Ditto.
17114         (*cbranchne_decr1): Ditto.
17115         (*addsi3_cbranch): Ditto.
17116         (*addsi3_cbranch_scratch): Ditto.
17117         (*thumb_cmpdi_zero): Ditto.
17118         (cstoresi_eq0_thumb1): Ditto.
17119         (cstoresi_ne0_thumb1): Ditto.
17120         (*cstoresi_eq0_thumb1_insn): Ditto.
17121         (*cstoresi_ne0_thumb1_insn): Ditto.
17122         (cstoresi_nltu_thumb1): Ditto.
17123         (cstoresi_ltu_thumb1): Ditto.
17124         (thumb1_addsi3_addgeu): Ditto.
17125         (*thumb_jump): Ditto.
17126         (*call_reg_thumb1_v5): Ditto.
17127         (*call_reg_thumb1): Ditto.
17128         (*call_value_reg_thumb1_v5): Ditto.
17129         (*call_value_reg_thumb1): Ditto.
17130         (*call_insn): Ditto.
17131         (*call_value_insn): Ditto.
17132         (thumb1_casesi_internal_pic): Ditto.
17133         (thumb1_casesi_dispatch): Ditto.
17134         (*thumb1_indirect_jump): Ditto.
17135         (prologue_thumb1_interwork): Ditto.
17136         (*epilogue_insns): Ditto.
17137         (consttable_1): Ditto.
17138         (consttable_2): Ditto.
17139         (tablejump): Ditto.
17140         (*thumb1_tablejump): Ditto.
17141         (thumb_eh_return): Ditto.
17142         (define_peephole2): Two of them are thumb1 only and got moved into
17143         new file thumb1.md.
17144         (define_split): Six of them are thumb1 only and got moved into new
17145         file thumb1.md.
17146         * config/arm/thumb1.md: New file comprised of above thumb1 only
17147         patterns.
17148
17149 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17150
17151         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
17152         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
17153         dependencies.
17154         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
17155         (aarch64_crc_builtin_datum): New struct.
17156         (aarch64_crc_builtin_data): New.
17157         (aarch64_init_crc32_builtins): New function.
17158         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
17159         (aarch64_crc32_expand_builtin): New.
17160         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
17161         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
17162         __ARM_FEATURE_CRC32 when appropriate.
17163         (TARGET_CRC32): Define.
17164         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
17165         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
17166         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
17167         (aarch64_<crc_variant>): New pattern.
17168         * config/aarch64/arm_acle.h: New file.
17169         * config/aarch64/iterators.md (CRC): New int iterator.
17170         (crc_variant, crc_mode): New int attributes.
17171         * doc/aarch64-acle-intrinsics.texi: New file.
17172         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
17173         Include aarch64-acle-intrinsics.texi.
17174
17175 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
17176
17177         * tree-vect-data-refs.c (vect_grouped_store_supported): New
17178         check for stores group of length 3.
17179         (vect_permute_store_chain): New permutations for stores group of
17180         length 3.
17181         * tree-vect-stmts.c (vect_model_store_cost): Change cost
17182         of vec_perm_shuffle for the new permutations.
17183
17184 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
17185
17186         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
17187         table rewriting temporarily on targets not supporting ONE_ONLY.
17188
17189 2014-06-11  Richard Biener  <rguenther@suse.de>
17190
17191         PR middle-end/61437
17192         Revert
17193         2014-06-04  Richard Biener  <rguenther@suse.de>
17194
17195         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
17196         TREE_PUBLIC and DECL_EXTERNAL decls.
17197
17198 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
17199
17200         * varasm.c (set_implicit_section): New function.
17201         (resolve_unique_section): Use it to set implicit section
17202         for aliases, too.
17203         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
17204         (default_function_section): Likewise.
17205         (decl_binds_to_current_def_p): Constify argument.
17206         * varasm.h (decl_binds_to_current_def_p): Update prototype.
17207         * asan.c (asan_protect_global): Use
17208         symtab_get_node (decl)->implicit_section.
17209         * symtab.c (dump_symtab_base): Dump implicit sections.
17210         (verify_symtab_base): Verify sanity of sectoins and comdats.
17211         (symtab_resolve_alias): Alias share the section of its target.
17212         (set_section_1): New function.
17213         (symtab_node::set_section): Move here, recurse to aliases.
17214         (verify_symtab): Check for duplicated symtab lists.
17215         * tree-core.h (implicit_section_name_p): Remove.
17216         * tree-vect-data-refs.c: Include varasm.h.
17217         (vect_can_force_dr_alignment_p): Fix conditional on when
17218         decl bints to current definition; use
17219         symtab_get_node (decl)->implicit_section.
17220         * cgraph.c (cgraph_make_node_local_1): Fix section set.
17221         * cgraph.h (struct symtab_node): Add implicit_section.
17222         (set_section): Rename to ...
17223         (set_section_for_node): ... this one.
17224         (set_section): Declare.
17225         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
17226         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
17227         input_overwrite_node, input_varpool_node): Stream implicit_section.
17228         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
17229         removal; it will fail in LTO.
17230
17231 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17232
17233         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
17234         Change second alternative type to f_mcr.
17235         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
17236         and 12th alternatives' types to f_mcr and f_mrc.
17237         (*movdi_aarch64): Same for 12th and 13th alternatives.
17238         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
17239         (aarch64_movtilow_tilow): Change type to fmov.
17240
17241 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
17242
17243         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
17244         (aarch64_save_or_restore_callee_save_registers): Fix layout.
17245
17246 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17247
17248         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
17249         New expander.
17250         (aarch64_sqrdmulh_lane<mode>): Likewise.
17251         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
17252         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
17253         (aarch64_sqdmulh_laneq<mode>): New expander.
17254         (aarch64_sqrdmulh_laneq<mode>): Likewise.
17255         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
17256         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
17257         (aarch64_sqdmulh_lane<mode>): New expander.
17258         (aarch64_sqrdmulh_lane<mode>): Likewise.
17259         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
17260         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
17261         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
17262         (aarch64_sqdmlal_laneq<mode>): Likewise.
17263         (aarch64_sqdmlsl_lane<mode>): Likewise.
17264         (aarch64_sqdmlsl_laneq<mode>): Likewise.
17265         (aarch64_sqdmlal2_lane<mode>): Likewise.
17266         (aarch64_sqdmlal2_laneq<mode>): Likewise.
17267         (aarch64_sqdmlsl2_lane<mode>): Likewise.
17268         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
17269         (aarch64_sqdmull_lane<mode>): Likewise.
17270         (aarch64_sqdmull_laneq<mode>): Likewise.
17271         (aarch64_sqdmull2_lane<mode>): Likewise.
17272         (aarch64_sqdmull2_laneq<mode>): Likewise.
17273
17274 2014-06-10  Richard Biener  <rguenther@suse.de>
17275
17276         PR tree-optimization/61438
17277         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
17278         (eliminate_dom_walker::before_dom_children): Only try to inhibit
17279         insertion of IVs if running PRE.
17280         (eliminate): Adjust.
17281         (pass_pre::execute): Likewise.
17282         (pass_fre::execute): Likewise.
17283
17284 2014-06-10  Richard Biener  <rguenther@suse.de>
17285
17286         PR middle-end/61456
17287         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
17288         Do not use the main variant for the type comparison.
17289         (ncr_compar): Likewise.
17290         (nonoverlapping_component_refs_p): Likewise.
17291
17292 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17293
17294         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
17295         REG_CFA_RESTORE mode.
17296
17297 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
17298
17299         * config/i386/i386.c (expand_vec_perm_pblendv): New.
17300         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
17301         expand_vec_perm_pblendv.
17302
17303 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17304
17305         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
17306         available.
17307         Simplify description of __crc32d and __crc32cd intrinsics.
17308         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
17309         availability.
17310
17311 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
17312
17313         PR lto/61334
17314         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
17315         * config.in: Regenerate.
17316         * configure: Likewise.
17317
17318 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
17319
17320         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
17321         and public vars.
17322         (intersect_static_var_sets): Remove.
17323         (propagate): Do not prune local statics.
17324
17325 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
17326
17327         PR fortran/60928
17328         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
17329         Set lastprivate_firstprivate even if omp_private_outer_ref
17330         langhook returns true.
17331         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
17332         langhook, call unshare_expr on new_var and call
17333         build_outer_var_ref to get the last argument.
17334
17335 2014-06-10  Marek Polacek  <polacek@redhat.com>
17336
17337         PR c/60988
17338         * doc/extend.texi: Add cindex for transparent_union.
17339
17340 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17341
17342         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
17343         init_symbolic_number ().
17344
17345 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
17346
17347         PR middle-end/61141
17348         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
17349         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
17350         (verify_rtl_sharing): Likewise.
17351
17352 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
17353
17354         PR c++/54442
17355         * tree.c (build_qualified_type): Use a canonical type for
17356         TYPE_CANONICAL.
17357
17358 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17359
17360         * config/arm/arm-modes.def: Remove XFmode.
17361
17362 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
17363
17364         PR target/61062
17365         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
17366         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
17367         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
17368         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
17369         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
17370         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
17371         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
17372         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
17373         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
17374
17375 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
17376
17377         * tree-core.h (tree_decl_with_vis): Remove section_name.
17378
17379 2014-06-09  Kito Cheng  <kito@0xlab.org>
17380
17381         * ira.c (ira): Don't call init_caller_save if LRA enabled
17382         since LRA use its own infrastructure to handle that.
17383
17384 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17385
17386         * symtab.c (dump_symtab_base): Update dumping.
17387         (symtab_make_decl_local): Clear only DECL_COMDAT.
17388         * tree-vect-data-refs.c (Check that variable is static before
17389         tampering with sections.
17390         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
17391         (cgraph_create_virtual_clone): Likewise.
17392         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
17393         (decl_section_name, set_decl_section_name): New accessors.
17394         (find_decls_types_r): Do not walk section name
17395         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
17396         (decl_comdat_group, decl_comdat_group_id): Constify.
17397         (decl_section_name, set_decl_section_name): Update.
17398         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
17399         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
17400         (cgraph_make_node_local_1): Clear section and comdat group.
17401         * cgraph.h (set_comdat_group): Sanity check.
17402         (get_section, set_section): New.
17403         * ipa-comdats.c (ipa_comdats): Use get_section.
17404         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
17405         * lto-streamer-out.c: Do not follow section names.
17406         * c-family/c-common.c (handle_section_attribute): Update.
17407         * lto-cgraph.c (lto_output_node): Output section.
17408         (lto_output_varpool_node): Likewise.
17409         (read_comdat_group): Rename to ...
17410         (read_identifier): ... this one.
17411         (read_string_cst): New function.
17412         (input_node, input_varpool_node): Input section names.
17413         * tree-emutls.c (get_emutls_init_templ_addr): Update.
17414         (new_emutls_decl): Update.
17415         (secname_for_decl): Check section names only of static vars.
17416         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
17417         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
17418         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
17419         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
17420         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
17421         * config/mcore/mcore.c (mcore_unique_section): Likewise.
17422         * config/mips/mips.c (mips16_build_function_stub): Likewise.
17423         * config/v850/v850.c (v850_insert_attributes): Likewise.
17424         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
17425         Likewise.
17426         (h8300_handle_tiny_data_attribute): Likewise.
17427         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
17428         (bfin_handle_l2_attribute): Likewise.
17429
17430 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17431
17432         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
17433         remove static initializer.
17434
17435 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17436
17437         * varasm.c (use_blocks_for_decl_p): Check symbol table
17438         instead of alias attribute.
17439         (place_block_symbol): Recurse on aliases.
17440
17441 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17442
17443         * ipa-visibility.c: Include varasm.h
17444         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
17445
17446 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17447
17448         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
17449         outputting aliases.
17450
17451 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
17452
17453         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
17454         from test_insn into GGC space escape via SET_SRC.
17455
17456 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
17457
17458         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
17459         call statement, if any.
17460         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
17461         statements, if any.  Tidy up.
17462
17463 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
17464
17465         PR target/61431
17466         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
17467         iterators, VSX_D that handles 64-bit types, and VSX_LE that
17468         handles swapping the two 64-bit double words on little endian
17469         systems.  Include V1TImode and optionally TImode in VSX_LE so that
17470         these types are properly swapped.  Change all of the insns and
17471         splits that do the 64-bit swaps to use VSX_LE.
17472         (vsx_le_perm_load_<mode>): Likewise.
17473         (vsx_le_perm_store_<mode>): Likewise.
17474         (splitters for little endian memory operations): Likewise.
17475         (vsx_xxpermdi2_le_<mode>): Likewise.
17476         (vsx_lxvd2x2_le_<mode>): Likewise.
17477         (vsx_stxvd2x2_le_<mode>): Likewise.
17478
17479 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
17480
17481         PR target/61423
17482         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
17483         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
17484         and corresponding splitters.  Zero extend general register
17485         or memory input operand to XMM temporary.  Enable for
17486         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
17487         (floatunssi<mode>2): Update expander predicate.
17488
17489 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
17490
17491         PR rtl-optimization/61325
17492         * lra-constraints.c (process_address_1): Check scale equal to one
17493         to prevent transformation: base + scale * index => base + new_reg.
17494
17495 2014-06-06  Richard Biener  <rguenther@suse.de>
17496
17497         PR tree-optimization/59299
17498         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
17499         a def operand.
17500         (nearest_common_dominator_of_uses): Likewise.
17501         (statement_sink_location): Adjust.  Support sinking loads.
17502
17503 2014-06-06  Martin Jambor  <mjambor@suse.cz>
17504
17505         * ipa-prop.c (get_place_in_agg_contents_list): New function.
17506         (build_agg_jump_func_from_list): Likewise.
17507         (determine_known_aggregate_parts): Renamed to
17508         determine_locally_known_aggregate_parts.  Moved some functionality
17509         to the two functions above, removed bound checks.
17510
17511 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
17512
17513         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
17514         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
17515         (aarch64_progress_pointer): Likewise.
17516         (aarch64_copy_one_part_and_move_pointers): Likewise.
17517         (aarch64_expand_movmen): Likewise.
17518         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
17519         * config/aarch64/aarch64.md (movmem<mode>): New.
17520
17521 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
17522
17523         * targhooks.c (default_add_stmt_cost): Call target specific
17524         hook instead of default one.
17525
17526 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17527
17528         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
17529         endianness instead of host endianness.
17530         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
17531         comments.
17532
17533 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17534
17535         PR debug/53927
17536         * function.c (instantiate_decls): Process the saved static chain.
17537         (expand_function_start): If not optimizing, save the static chain
17538         onto the stack.
17539         * tree-nested.c (convert_all_function_calls): Always create the static
17540         chain for nested functions if not optimizing.
17541
17542 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17543
17544         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
17545
17546 2014-06-06  Richard Biener  <rguenther@suse.de>
17547
17548         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
17549         (construct_init_block): Likewise.
17550         (construct_exit_block): Likewise.
17551         (pass_expand::execute): Likewise.
17552         * graphite.c (graphite_transforms): Replace check for current_loops
17553         with a check for > 1 loops.
17554         (pass_graphite_transforms::execute): Adjust.
17555         * ipa-split.c (split_function): Remove check for current_loops.
17556         * omp-low.c (expand_parallel_call): Likewise.
17557         (expand_omp_for_init_counts): Likewise.
17558         (extract_omp_for_update_vars): Likewise.
17559         (expand_omp_for_generic): Likewise.
17560         (expand_omp_sections): Likewise.
17561         (expand_omp_target): Likewise.
17562         * tracer.c (tail_duplicate): Likewise.
17563         (pass_tracer::execute): Likewise.
17564         * trans-mem.c (expand_transaction): Likewise.
17565         * tree-complex.c (expand_complex_div_wide): Likewise.
17566         * tree-eh.c (lower_resx): Likewise.
17567         (cleanup_empty_eh_merge_phis): Likewise.
17568         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
17569         current_loops with a check for > 1 loops.
17570         (pass_predcom::execute): Adjust.
17571         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
17572         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
17573         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
17574         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
17575         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
17576         * tree-switch-conversion.c (process_switch): Likewise.
17577         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
17578         * tree-vrp.c (vrp_visit_phi_node): Likewise.
17579         (execute_vrp): Likewise.
17580         * ubsan.c (ubsan_expand_null_ifn): Likewise.
17581
17582 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17583
17584         * rtl.h (insn_location): Declare.
17585         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
17586         with UNKNOWN_LOCATION.
17587         * emit-rtl.c (insn_location): New function.
17588         * final.c (notice_source_line): Check that the instruction has a
17589         location before retrieving it and use insn_location.
17590         * modulo-sched.c (loop_single_full_bb_p): Likewise.
17591         * print-rtl.c (print_rtx): Likewise.
17592
17593 2014-06-06  Richard Biener  <rguenther@suse.de>
17594
17595         * passes.def: Move 2nd VRP pass before phi-only-cprop.
17596
17597 2014-06-06  Christian Bruel  <christian.bruel@st.com>
17598
17599         PR tree-optimization/43934
17600         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
17601         cost.
17602
17603 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
17604
17605         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
17606         return NO_REGS for extra address and memory constraints.  Handle
17607         operands that match (or are equivalent to something that matches)
17608         extra constant constraints.  Ignore other non-register operands.
17609
17610 2014-06-06  Alan Modra  <amodra@gmail.com>
17611
17612         PR target/61300
17613         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
17614         * doc/tm.texi: Regenerate.
17615         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
17616         Use throughout in place of REG_PARM_STACK_SPACE.
17617         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
17618         "incoming" param.  Pass to rs6000_function_parms_need_stack.
17619         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
17620         prototype_p when incoming.  Use function decl when incoming
17621         to handle K&R style functions.
17622         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
17623         (INCOMING_REG_PARM_STACK_SPACE): Define.
17624
17625 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17626
17627         PR target/52472
17628         * cfgexpand.c (expand_debug_expr): Use address space of nested
17629         TREE_TYPE for ADDR_EXPR and MEM_REF.
17630
17631 2014-06-05  Jeff Law  <law@redhat.com>
17632
17633         PR tree-optimization/61289
17634         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
17635         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
17636         looking for those which match LHS.  All callers changed.
17637         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
17638         parameters and code which manipulated them.  All callers changed.
17639         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
17640         and DST_MAP parameters.  Simplify invalidation code by just calling
17641         invalidate_equivalences.  All callers changed.
17642         (thread_across_edge): Simplify now that we don't need to maintain
17643         the map of equivalences to invalidate.
17644
17645 2014-06-05  Kai Tietz  <ktietz@redhat.com>
17646             Richard Henderson  <rth@redhat.com>
17647
17648         PR target/46219
17649         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
17650         checking for !TARGET_X32.
17651         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
17652         (sibcall_intern): New define_insn, plus required peepholes.
17653         (sibcall_pop_intern): Likewise.
17654         (sibcall_value_intern): Likewise.
17655         (sibcall_value_pop_intern): Likewise.
17656
17657 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
17658
17659         * tree-inline.c (tree_function_versioning): Check DF info existence
17660         before accessing it.
17661
17662 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17663
17664         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
17665         frame_size.
17666         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
17667         aarch64_frame hard_fp_offset and frame_size.
17668         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
17669         frame_size; remove original_frame_size.
17670         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
17671         (aarch64_initial_elimination_offset): Remove frame_size and
17672         offset.  Use aarch64_frame frame_size.
17673
17674 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17675             Jiong Wang  <jiong.wang@arm.com>
17676             Renlin  <renlin.li@arm.com>
17677
17678         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
17679         initialization of R30 offset.  Update offset.  Iterate core
17680         regisers upto X30.  Remove X29, X30 specific code.
17681
17682 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17683             Jiong Wang  <jiong.wang@arm.com>
17684
17685         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
17686         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
17687         (aarch64_register_saved_on_entry): Adjust test.
17688
17689 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17690
17691         * config/aarch64/aarch64.h (machine_function): Move
17692         saved_varargs_size from here...
17693         (aarch64_frame): ... to here.
17694
17695         * config/aarch64/aarch64.c (aarch64_expand_prologue)
17696         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
17697         (aarch64_initial_elimination_offset)
17698         (aarch64_setup_incoming_varargs): Adjust location of
17699         saved_varargs_size.
17700
17701 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17702
17703         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
17704         layout comment.
17705
17706 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
17707             Prachi Godbole  <Prachi.Godbole@imgtec.com>
17708
17709         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
17710         mips32r5 entry to use PROCESSOR_P5600.
17711         * config/mips/mips-tables.opt: Regenerate.
17712         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
17713         * config/mips/mips.c (mips_fmadd_bypass): New function.
17714         (mips_rtx_cost_data): Add costs for p5600.
17715         (mips_issue_rate): Add support for p5600.
17716         (mips_multipass_dfa_lookahead): Likewise.
17717         * config/mips/mips.h (TUNE_P5600): New define.
17718         (TUNE_MACC_CHAINS): Add TUNE_P5600.
17719         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
17720         * config/mips/mips.md: Include p5600.md.
17721         (processor): Add p5600.
17722         * config/mips/p5600.md: New file.
17723
17724 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
17725
17726         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
17727         * config/i386/predicates.md (palignr_operand): New.
17728         Indicates if permutation is suitable for palignr instruction.
17729
17730 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
17731
17732         PR tree-optimization/61319
17733         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
17734         stmt belongs to loop.
17735
17736 2014-06-05  Richard Biener  <rguenther@suse.de>
17737
17738         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
17739         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
17740         (lookup_tmp_var): Adjust.
17741         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
17742
17743 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17744
17745         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
17746
17747 2014-06-05  Marek Polacek  <polacek@redhat.com>
17748
17749         PR c/49706
17750         * doc/invoke.texi: Document -Wlogical-not-parentheses.
17751
17752 2014-06-04  Tom de Vries  <tom@codesourcery.com>
17753
17754         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
17755         CONST_INT.
17756
17757 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
17758
17759         PR tree-optimization/61385
17760         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
17761
17762 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
17763
17764         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
17765         changed to use fatal_error.
17766         (main): Ensure lto_wrapper_cleanup is run atexit.
17767
17768 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17769
17770         * lra-constraints.c (valid_address_p): Move earlier in file.
17771         (address_eliminator): New structure.
17772         (satisfies_memory_constraint_p): New function.
17773         (satisfies_address_constraint_p): Likewise.
17774         (process_alt_operands, process_address, curr_insn_transform): Use them.
17775
17776 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17777
17778         * lra-int.h (lra_static_insn_data): Make operand_alternative a
17779         const pointer.
17780         (target_lra_int, default_target_lra_int, this_target_lra_int)
17781         (op_alt_data): Delete.
17782         * lra.h (lra_init): Delete.
17783         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
17784         (init_insn_code_data_once): Remove op_alt_data handling.
17785         (finish_insn_code_data_once): Likewise.
17786         (init_op_alt_data): Delete.
17787         (get_static_insn_data): Initialize operand_alternative to null.
17788         (free_insn_recog_data): Cast operand_alternative before freeing it.
17789         (setup_operand_alternative): Take the operand_alternative as
17790         parameter and assume it isn't already cached in the static
17791         insn data.
17792         (lra_set_insn_recog_data): Update accordingly.
17793         (lra_init): Delete.
17794         * ira.c (ira_init): Don't call lra_init.
17795         * target-globals.h (this_target_lra_int): Declare.
17796         (target_globals): Remove lra_int.
17797         (restore_target_globals): Update accordingly.
17798         * target-globals.c: Don't include lra-int.h.
17799         (default_target_globals, save_target_globals): Remove lra_int.
17800
17801 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17802
17803         * recog.h (operand_alternative): Convert reg_class, reject,
17804         matched and matches into bitfields.
17805         (preprocess_constraints): New overload.
17806         (preprocess_insn_constraints): New function.
17807         (preprocess_constraints): Take the insn as parameter.
17808         (recog_op_alt): Change into a pointer.
17809         (target_recog): Add x_op_alt.
17810         * recog.c (asm_op_alt): New variable.
17811         (recog_op_alt): Change into a pointer.
17812         (preprocess_constraints): New overload, replacing the old function
17813         definition with one that doesn't use global state.
17814         (preprocess_insn_constraints): New function.
17815         (preprocess_constraints): Use them.  Take the insn as parameter.
17816         Use asm_op_alt for asms.
17817         (recog_init): Free existing x_op_alt entries.
17818         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
17819         pointer const.
17820         (make_early_clobber_and_input_conflicts): Likewise.
17821         (process_bb_node_lives): Pass the insn to process_constraints.
17822         * reg-stack.c (check_asm_stack_operands): Likewise.
17823         (subst_asm_stack_regs): Likewise.
17824         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
17825         * regrename.c (build_def_use): Likewise.
17826         * sched-deps.c (sched_analyze_insn): Likewise.
17827         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
17828         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
17829         (note_invalid_constants): Likewise.
17830         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
17831         (ix86_legitimate_combined_insn): Make operand_alternative pointer
17832         const.
17833
17834 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17835
17836         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
17837         * ira-lives.c (check_and_make_def_conflict): Check for disabled
17838         alternatives.
17839         (make_early_clobber_and_input_conflicts): Likewise.
17840         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
17841
17842 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17843
17844         * recog.h (alternative_class): New function.
17845         (which_op_alt): Return a const recog_op_alt.
17846         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
17847         (subst_asm_stack_regs): Likewise.
17848         * config/arm/arm.c (note_invalid_constants): Likewise.
17849         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
17850         the operand_alternative; use alternative class instead.
17851         * sel-sched.c (get_reg_class): Likewise.
17852         * regrename.c (build_def_use): Likewise.
17853         (hide_operands, restore_operands, record_out_operands): Update type
17854         accordingly.
17855
17856 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17857
17858         * recog.h (recog_op_alt): Convert to a flat array.
17859         (which_op_alt): New function.
17860         * recog.c (recog_op_alt): Convert to a flat array.
17861         (preprocess_constraints): Update accordingly, grouping all
17862         operands of the same alternative together, rather than the
17863         other way around.
17864         * ira-lives.c (check_and_make_def_conflict): Likewise.
17865         (make_early_clobber_and_input_conflicts): Likewise.
17866         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
17867         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
17868         (subst_asm_stack_regs): Likewise.
17869         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
17870         * regrename.c (hide_operands, record_out_operands): Likewise.
17871         (build_def_use): Likewise.
17872         * sel-sched.c (get_reg_class): Likewise.
17873         * config/arm/arm.c (note_invalid_constants): Likewise.
17874
17875 2014-06-04  Jason Merrill  <jason@redhat.com>
17876
17877         PR c++/51253
17878         PR c++/61382
17879         * gimplify.c (gimplify_arg): Non-static.
17880         * gimplify.h: Declare it.
17881
17882 2014-06-04  Richard Biener  <rguenther@suse.de>
17883
17884         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
17885         TREE_PUBLIC and DECL_EXTERNAL decls.
17886
17887 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
17888
17889         * regcprop.c (copyprop_hardreg_forward_1): Account for
17890         HARD_REGNO_CALL_PART_CLOBBERED.
17891
17892 2014-06-04  Richard Biener  <rguenther@suse.de>
17893
17894         * configure.ac: Check whether the underlying type of int64_t
17895         is long or long long.
17896         * configure: Regenerate.
17897         * config.in: Likewise.
17898         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
17899         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
17900
17901 2014-06-04  Richard Biener  <rguenther@suse.de>
17902
17903         PR tree-optimization/60098
17904         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
17905         we hit a kill.
17906         (dse_optimize_stmt): Simplify, now that we found a kill
17907         earlier.
17908
17909 2014-06-04  Richard Biener  <rguenther@suse.de>
17910
17911         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
17912         of accesses with non-invariant address.
17913
17914 2014-06-04  Martin Liska  <mliska@suse.cz>
17915
17916         * cgraph.h (cgraph_make_wrapper): New function introduced.
17917         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
17918         * ipa-inline.h (inline_analyze_function): The function is global.
17919         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
17920
17921 2014-06-04  Martin Liska  <mliska@suse.cz>
17922
17923         * tree.h (private_lookup_attribute_starting): New function.
17924         (lookup_attribute_starting): Likewise.
17925         * tree.c (private_lookup_attribute_starting): Likewise.
17926
17927 2014-06-04  Martin Liska  <mliska@suse.cz>
17928
17929         * cgraph.h (expand_thunk): New argument added.
17930         (address_taken_from_non_vtable_p): New global function.
17931         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
17932         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
17933         * cgraphunit.c (analyze_function): Likewise.
17934         (assemble_thunks_and_aliases): Argument added to call.
17935         (expand_thunk): New argument forces to produce GIMPLE thunk.
17936
17937 2014-06-04  Martin Liska  <mliska@suse.cz>
17938
17939         * coverage.h (coverage_compute_cfg_checksum): Argument added.
17940         * coverage.c (coverage_compute_cfg_checksum): Likewise.
17941         * profile.c (branch_prob): Likewise.
17942
17943 2014-06-04  Martin Jambor  <mjambor@suse.cz>
17944
17945         PR ipa/61340
17946         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
17947         handler for switch on an ipa_ref_use enum.
17948         * ipa-reference.c (analyze_function): Likewise.
17949
17950 2014-06-04  Kai Tietz  <ktietz@redhat.com>
17951
17952         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
17953         from old call-instruction.
17954
17955 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
17956
17957         * config/aarch64/aarch64.c (aarch64_classify_address)
17958         (aarch64_legitimize_reload_address): Support full addressing modes
17959         for vector modes.
17960         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
17961         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
17962
17963 2014-06-03  Andrew Pinski  <apinski@cavium.com>
17964
17965         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
17966         for OP0.
17967
17968 2014-06-03  Andrew Pinski  <apinski@cavium.com>
17969
17970         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
17971         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
17972
17973 2014-06-03  Kai Tietz  <ktietz@redhat.com>
17974
17975         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
17976         for 64-bit ms-abi.
17977
17978 2014-06-03  Dehao Chen  <dehao@google.com>
17979
17980         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
17981         the same loop.
17982
17983 2014-06-03  Marek Polacek  <polacek@redhat.com>
17984
17985         PR c/60439
17986         * doc/invoke.texi: Document -Wswitch-bool.
17987         * function.c (stack_protect_epilogue): Cast controlling expression of
17988         the switch to int.
17989         * gengtype.c (walk_type): Generate switch expression with its
17990         controlling expression cast to int.
17991
17992 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
17993
17994         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
17995         and attiny841.
17996         * config/avr/avr-tables.opt: Regenerate.
17997         * config/avr/t-multilib: Regenerate.
17998         * doc/avr-mmcu.texi: Regenerate.
17999
18000 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
18001             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
18002
18003         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
18004         (ata6617c, ata664251): Add new avr35 devices.
18005         (ata6612c): Add new avr4 device.
18006         (ata6613c, ata6614q): Add new avr5 devices.
18007         * config/avr/avr-tables.opt: Regenerate.
18008         * config/avr/t-multilib: Regenerate.
18009         * doc/avr-mmcu.texi: Regenerate.
18010
18011 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18012
18013         * gcc/config/aarch64/aarch64-builtins.c
18014         (aarch64_types_binop_ssu_qualifiers): New static data.
18015         (TYPES_BINOP_SSU): Define.
18016         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
18017         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
18018         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
18019         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
18020         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
18021         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
18022         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
18023         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
18024         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
18025         suffix to builtin function name, remove cast.
18026         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
18027         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
18028         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
18029
18030 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18031
18032         * gcc/config/aarch64/aarch64-builtins.c
18033         (aarch64_types_binop_uus_qualifiers,
18034         aarch64_types_shift_to_unsigned_qualifiers,
18035         aarch64_types_unsigned_shiftacc_qualifiers): Define.
18036         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
18037         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
18038         sqshlu_n, uqshl_n): Update qualifiers.
18039         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
18040         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
18041         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
18042         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
18043         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
18044         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
18045         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
18046         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
18047         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
18048         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
18049         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
18050         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
18051         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
18052         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
18053         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
18054         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
18055         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
18056         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
18057         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
18058         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
18059         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
18060         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
18061         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
18062         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
18063         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
18064         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
18065         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
18066
18067 2014-06-03  Teresa Johnson  <tejohnson@google.com>
18068
18069         * tree-sra.c (modify_function): Record caller nodes after rebuild.
18070
18071 2014-06-02  Jason Merrill  <jason@redhat.com>
18072
18073         PR c++/61020
18074         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
18075
18076 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18077
18078         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
18079         location == 0.
18080
18081 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18082
18083         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
18084         New pattern.
18085         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
18086         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
18087         * config/aarch64/iterators.md (REVERSE): New iterator.
18088         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
18089         (rev_op): New int_attribute.
18090         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
18091         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
18092         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
18093         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
18094         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
18095         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
18096         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
18097         Replace temporary __asm__ with __builtin_shuffle.
18098
18099 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
18100
18101         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
18102         mips64r5.
18103         * config/mips/mips-tables.opt: Regenerate.
18104         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
18105         to use mips_isa_rev rather than ISA_MIPS32R2.
18106         * config/mips/mips.h (ISA_MIPS32R3): New define.
18107         (ISA_MIPS32R5): New define.
18108         (ISA_MIPS64R3): New define.
18109         (ISA_MIPS64R5): New define.
18110         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
18111         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
18112         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
18113         and mips64r5.
18114         (MIPS_ISA_SYNCI_SPEC): Likewise.
18115         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
18116         (LINK_SPEC): Added mips32r3 and mips32r5.
18117         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
18118         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
18119         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
18120         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
18121         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
18122         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
18123         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
18124
18125 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
18126
18127         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
18128         options.
18129         * config/mips/mips.opt (mxpa): New option.
18130         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
18131         assembler.
18132
18133 2014-06-03  Martin Jambor  <mjambor@suse.cz>
18134
18135         PR ipa/61160
18136         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
18137         thunks.
18138
18139 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18140
18141         PR tree-optimization/61328
18142         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
18143         initialization from find_bswap_or_nop_1.
18144         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
18145         in source_expr2 before using the size value the function sets. Also
18146         make use of init_symbolic_number () in both the old place and
18147         find_bswap_or_nop_load () to avoid reading uninitialized memory when
18148         doing recursion in the GIMPLE_BINARY_RHS case.
18149
18150 2014-06-03  Richard Biener  <rguenther@suse.de>
18151
18152         PR tree-optimization/61383
18153         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
18154         stmts can't trap.
18155
18156 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
18157
18158         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
18159         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
18160         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
18161         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
18162         in this file.
18163         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
18164         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
18165         * system.h: ...here and make it unconditional.
18166         * target.def (conditional_register_usage): Mention
18167         define_register_constraint instead of old-style constraint macros.
18168         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
18169         * doc/tm.texi: Regenerate.
18170         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
18171         protected by !USE_MD_CONSTRAINTS.
18172         * config/frv/frv.md: Remove quote from old version of documentation.
18173         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
18174         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
18175         CONST_DOUBLE_OK_FOR_LETTER.
18176         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
18177
18178 2014-06-02  Andrew Pinski  <apinski@cavium.com>
18179
18180         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
18181         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
18182         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
18183         file whose name depends on -mabi= and -mbig-endian.
18184         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
18185         Handle LP64 better and handle ilp32 too.
18186         (MULTILIB_OPTIONS): Delete.
18187         (MULTILIB_DIRNAMES): Delete.
18188
18189 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
18190
18191         * expr.h: Remove prototypes of functions defined in builtins.c.
18192         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
18193         Remove prototypes of functions defined in builtins.c.
18194         * builtins.h: Update prototype list to include all exported functions.
18195         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
18196         no_c99_libc_has_function): Move to targhooks.c
18197         (build_string_literal, build_call_expr_loc_array,
18198         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
18199         to tree.c.
18200         (expand_builtin_object_size, fold_builtin_object_size): Make static.
18201         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
18202         no_c99_libc_has_function): Relocate from builtins.c.
18203         * tree.c: Include builtins.h.
18204         (build_call_expr_loc_array, build_call_expr_loc_vec,
18205         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
18206         from builtins.c.
18207         * fold-const.h (fold_fma): Move prototype to builtins.h.
18208         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
18209         * asan.c: Include builtins.h.
18210         * cfgexpand.c: Likewise.
18211         * convert.c: Likewise.
18212         * emit-rtl.c: Likewise.
18213         * except.c: Likewise.
18214         * expr.c: Likewise.
18215         * fold-const.c: Likewise.
18216         * gimple-fold.c: Likewise.
18217         * gimple-ssa-strength-reduction.c: Likewise.
18218         * gimplify.c: Likewise.
18219         * ipa-inline.c: Likewise.
18220         * ipa-prop.c: Likewise.
18221         * lto-streamer-out.c: Likewise.
18222         * stmt.c: Likewise.
18223         * tree-inline.c: Likewise.
18224         * tree-object-size.c: Likewise.
18225         * tree-sra.c: Likewise.
18226         * tree-ssa-ccp.c: Likewise.
18227         * tree-ssa-forwprop.c: Likewise.
18228         * tree-ssa-loop-ivcanon.c: Likewise.
18229         * tree-ssa-loop-ivopts.c: Likewise.
18230         * tree-ssa-math-opts.c: Likewise.
18231         * tree-ssa-reassoc.c: Likewise.
18232         * tree-ssa-threadedge.c: Likewise.
18233         * tree-streamer-in.c: Likewise.
18234         * tree-vect-data-refs.c: Likewise.
18235         * tree-vect-patterns.c: Likewise.
18236         * tree-vect-stmts.c: Likewise.
18237         * config/aarch64/aarch64.c: Likewise.
18238         * config/alpha/alpha.c: Likewise.
18239         * config/arc/arc.c: Likewise.
18240         * config/arm/arm.c: Likewise.
18241         * config/avr/avr.c: Likewise.
18242         * config/bfin/bfin.c: Likewise.
18243         * config/c6x/c6x.c: Likewise.
18244         * config/cr16/cr16.c: Likewise.
18245         * config/cris/cris.c: Likewise.
18246         * config/epiphany/epiphany.c: Likewise.
18247         * config/fr30/fr30.c: Likewise.
18248         * config/frv/frv.c: Likewise.
18249         * config/h8300/h8300.c: Likewise.
18250         * config/i386/i386.c: Likewise.
18251         * config/i386/winnt.c: Likewise.
18252         * config/ia64/ia64.c: Likewise.
18253         * config/iq2000/iq2000.c: Likewise.
18254         * config/lm32/lm32.c: Likewise.
18255         * config/m32c/m32c.c: Likewise.
18256         * config/m32r/m32r.c: Likewise.
18257         * config/m68k/m68k.c: Likewise.
18258         * config/mcore/mcore.c: Likewise.
18259         * config/mep/mep.c: Likewise.
18260         * config/microblaze/microblaze.c: Likewise.
18261         * config/mips/mips.c: Likewise.
18262         * config/mmix/mmix.c: Likewise.
18263         * config/mn10300/mn10300.c: Likewise.
18264         * config/moxie/moxie.c: Likewise.
18265         * config/msp430/msp430.c: Likewise.
18266         * config/nds32/nds32.c: Likewise.
18267         * config/pa/pa.c: Likewise.
18268         * config/pdp11/pdp11.c: Likewise.
18269         * config/picochip/picochip.c: Likewise.
18270         * config/rl78/rl78.c: Likewise.
18271         * config/rs6000/rs6000.c: Likewise.
18272         * config/rx/rx.c: Likewise.
18273         * config/s390/s390.c: Likewise.
18274         * config/score/score.c: Likewise.
18275         * config/sh/sh.c: Likewise.
18276         * config/sparc/sparc.c: Likewise.
18277         * config/spu/spu.c: Likewise.
18278         * config/stormy16/stormy16.c: Likewise.
18279         * config/tilegx/tilegx.c: Likewise.
18280         * config/tilepro/tilepro.c: Likewise.
18281         * config/v850/v850.c: Likewise.
18282         * config/vax/vax.c: Likewise.
18283         * config/xtensa/xtensa.c: Likewise.
18284
18285 2014-06-02  Jeff Law  <law@redhat.com>
18286
18287         PR rtl-optimization/61094
18288         * ree.c (combine_reaching_defs): Do not reextend an insn if it
18289         was marked as do_no_reextend.  If a copy is needed to eliminate
18290         an extension, then mark it as do_not_reextend.
18291
18292 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18293
18294         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
18295
18296 2014-06-02  Richard Henderson  <rth@redhat.com>
18297
18298         PR target/61336
18299         * config/alpha/alpha.c (print_operand_address): Allow symbolic
18300         addresses inside asms.  Use output_operand_lossage instead of
18301         gcc_unreachable.
18302
18303 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
18304
18305         PR target/61239
18306         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
18307         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
18308
18309 2014-06-02  Tom de Vries  <tom@codesourcery.com>
18310
18311         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
18312         case that x has VOIDmode.
18313
18314 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
18315
18316         * varasm.c (copy_constant): Delete function.
18317         (build_constant_desc): Don't call it.
18318
18319 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18320
18321         PR target/61154
18322         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
18323         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
18324         with immediate_operand.
18325
18326 2014-06-02  Andreas Schwab  <schwab@suse.de>
18327
18328         * config/ia64/ia64.c
18329         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
18330         pending_data_specs first.
18331
18332 2014-06-02  Richard Biener  <rguenther@suse.de>
18333
18334         PR tree-optimization/61378
18335         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
18336         valueized_anything.
18337
18338 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
18339
18340         * config/i386/constraints.md (Bw): Rename from 'w'.
18341         (Bz): Rename from 'z'.
18342         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
18343
18344 2014-06-01  Kai Tietz  <ktietz@redhat.com>
18345
18346         PR target/61377
18347         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
18348         * config/i386/i386.md (sibcall_insn_operand): Use Bs
18349         instead of m constraint.
18350
18351 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
18352
18353         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
18354         a separate alternative where the scratch operand 2 is marked as
18355         early clobber.
18356
18357 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
18358
18359         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
18360         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
18361         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
18362         and __builtins_arm_get_fpscr.
18363         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
18364         __builtins_arm_get_fpscr.
18365         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
18366         __builtins_arm_ldfpscr.
18367         (arm_atomic_assign_expand_fenv): New function.
18368         * config/arm/vfp.md (set_fpscr): New pattern.
18369         (get_fpscr) : Likewise.
18370         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
18371         VUNSPEC_SET_FPSCR.
18372         * doc/extend.texi (AARCH64 Built-in Functions) : Document
18373         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
18374
18375 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
18376
18377         * asan.c (report_error_func): Add SLOW_P argument, use
18378         BUILT_IN_ASAN_*_N if set.
18379         (build_check_stmt): Likewise.
18380         (instrument_derefs): If T has insufficient alignment,
18381         force same handling as for odd sizes.
18382
18383         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
18384         BUILT_IN_ASAN_REPORT_STORE_N): New.
18385         * asan.c (struct asan_mem_ref): Change access_size type to
18386         HOST_WIDE_INT.
18387         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
18388         update_mem_ref_hash_table): Likewise.
18389         (asan_mem_ref_hasher::hash): Hash in a HWI.
18390         (report_error_func): Change size_in_bytes argument to HWI.
18391         Use *_N builtins if size_in_bytes is larger than 16 or not power of
18392         two.
18393         (build_shadow_mem_access): New function.
18394         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
18395         Handle size_in_bytes not power of two or larger than 16.
18396         (instrument_derefs): Don't give up if size_in_bytes is not
18397         power of two or is larger than 16.
18398
18399 2014-05-30  Kai Tietz  <ktietz@redhat.com>
18400
18401         PR target/60104
18402         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
18403         for sibling-tail-calls.
18404         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
18405         to its use.
18406         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
18407         (sibcall_insn_operand): Add check for sibcall_memory_operand.
18408
18409 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
18410
18411         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
18412         * config/avr/avr-tables.opt: Regenerate.
18413         * config/avr/t-multilib: Regenerate.
18414         * doc/avr-mmcu.texi: Regenerate.
18415
18416 2014-05-30  Ian Lance Taylor  <iant@google.com>
18417
18418         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
18419         target("sse").
18420
18421 2014-05-30  Tom de Vries  <tom@codesourcery.com>
18422
18423         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
18424         Redefine as true.
18425
18426 2014-05-30  Tom de Vries  <tom@codesourcery.com>
18427
18428         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
18429         * lra.c (initialize_lra_reg_info_element): Add init of
18430         actual_call_used_reg_set field.
18431         (lra): Call lra_create_live_ranges before lra_inheritance for
18432         -fuse-caller-save.
18433         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
18434         -fuse-caller-save.
18435         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
18436         instead of call_used_reg_set for -fuse-caller-save.
18437         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
18438
18439 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18440
18441         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
18442         to mov_imm.
18443         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
18444
18445 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
18446
18447         * ira.c (ira_get_dup_out_num): Check for output operands at
18448         the start of the loop.  Handle cases where an included alternative
18449         follows an excluded one.
18450
18451 2014-05-29  Mike Stump  <mikestump@comcast.net>
18452
18453         PR debug/61352
18454         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
18455         post ld passes when lto is used.
18456
18457 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
18458
18459         PR rtl-optimization/61325
18460         * lra-constraints.c (process_address): Rename to process_address_1.
18461         (process_address): New function.
18462
18463 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
18464
18465         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
18466         TYPES_BINOPV): New static data.
18467         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
18468         New builtin.
18469         * config/aarch64/aarch64-simd.md (aarch64_ext,
18470         aarch64_im_lane_boundsi): New patterns.
18471         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
18472         patterns for EXT.
18473         (aarch64_evpc_ext): New function.
18474
18475         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
18476
18477         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
18478         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
18479         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
18480         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
18481         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
18482
18483 2014-05-29  Tom de Vries  <tom@codesourcery.com>
18484
18485         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
18486
18487 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
18488             Richard Sandiford  <rdsandiford@googlemail.com>
18489
18490         * arm/iterators.md (shiftable_ops): New code iterator.
18491         (t2_binop0, arith_shift_insn): New code attributes.
18492         * arm/predicates.md (shift_nomul_operator): New predicate.
18493         * arm/arm.md (insn_enabled): Delete.
18494         (enabled): Remove insn_enabled test.
18495         (*arith_shiftsi): Delete.  Replace with ...
18496         (*<arith_shift_insn>_multsi): ... new pattern.
18497         (*<arith_shift_insn>_shiftsi): ... new pattern.
18498         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
18499
18500 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
18501             Tom de Vries  <tom@codesourcery.com>
18502
18503         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
18504         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
18505         clobber.
18506         (mips_split_call): Use POST_CALL_TMP_REG.
18507         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
18508
18509 2014-05-29  Tom de Vries  <tom@codesourcery.com>
18510
18511         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
18512         with #ifdef STACK_REGS.
18513
18514 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
18515
18516         * varasm.c (get_variable_section): Walk aliases.
18517         (place_block_symbol): Walk aliases.
18518
18519 2014-05-28  Tom de Vries  <tom@codesourcery.com>
18520
18521         Revert:
18522         2014-05-28  Tom de Vries  <tom@codesourcery.com>
18523
18524         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
18525         * lra.c (initialize_lra_reg_info_element): Add init of
18526         actual_call_used_reg_set field.
18527         (lra): Call lra_create_live_ranges before lra_inheritance for
18528         -fuse-caller-save.
18529         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
18530         -fuse-caller-save.
18531         * lra-constraints.c (need_for_call_save_p): Use
18532         actual_call_used_reg_set instead of call_used_reg_set for
18533         -fuse-caller-save.
18534         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
18535
18536 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
18537
18538         * doc/md.texi: Document that the % constraint character must
18539         be at the beginning of the string.
18540         * genoutput.c (validate_insn_alternatives): Check that '=',
18541         '+' and '%' only appear at the beginning of a constraint.
18542         * ira.c (commutative_constraint_p): Delete.
18543         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
18544         at the start of the string.
18545         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
18546         duplicate '='s.
18547         * config/arm/neon.md (bicdi3_neon): Likewise.
18548         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
18549         (slt_si, sltu_si): Likewise.
18550         * config/vax/vax.md (sbcdi3): Likewise.
18551         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
18552         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
18553         (mul64): Move '%' to beginning of constraint.
18554         * config/arm/arm.md (*xordi3_insn): Likewise.
18555         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
18556         (xorsi3): Likewise.
18557
18558 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
18559
18560         * doc/md.texi: Document the restrictions on the "enabled" attribute.
18561
18562 2014-05-28  Jason Merrill  <jason@redhat.com>
18563
18564         PR c++/47202
18565         * cgraph.h (symtab_node::get_comdat_group_id): New.
18566         * cgraphunit.c (analyze_functions): Call it.
18567         * symtab.c (dump_symtab_node): Likewise.
18568         * tree.c (decl_comdat_group_id): New.
18569         * tree.h: Declare it.
18570         * lto-streamer-out.c (write_symbol): Use it.
18571         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
18572
18573 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
18574
18575         PR bootstrap/PR61146
18576         * wide-int.cc: Do not include longlong.h when compiling with clang.
18577
18578 2014-05-28  Richard Biener  <rguenther@suse.de>
18579
18580         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
18581         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
18582         (vrp_visit_assignment_or_call): Print less vertical space.
18583         (vrp_visit_stmt): Likewise.
18584         (vrp_visit_phi_node): Likewise.  For a PHI argument with
18585         VR_VARYING range consider recording it as copy.
18586
18587 2014-05-28  Richard Biener  <rguenther@suse.de>
18588
18589         Revert
18590         2014-05-28  Richard Biener  <rguenther@suse.de>
18591
18592         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
18593
18594 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18595
18596         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
18597         sufficiently aligned and an offset is used at the same time.
18598         (expand_expr_real_1): Likewise.
18599
18600 2014-05-28  Richard Biener  <rguenther@suse.de>
18601
18602         PR middle-end/61045
18603         * fold-const.c (fold_comparison): When folding
18604         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
18605         the sign of the remaining constant operand stays the same.
18606
18607 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
18608
18609         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
18610         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
18611         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
18612         to the assembler.
18613         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
18614         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
18615         (m32bit-doubles) Likewise.
18616         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
18617         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
18618         option for RL78.
18619
18620 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18621
18622         * configure.ac ($gcc_cv_ld_clearcap): New test.
18623         * configure: Regenerate.
18624         * config.in: Regenerate.
18625         * config/sol2.opt (mclear-hwcap): New option.
18626         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
18627         * config/sol2-clearcap.map: Moved here from
18628         testsuite/gcc.target/i386/clearcap.map.
18629         * config/sol2-clearcapv2.map: Move here from
18630         gcc.target/i386/clearcapv2.map.
18631         * config/t-sol2 (install): Depend on install-clearcap-map.
18632         (install-clearcap-map): New target.
18633         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
18634         -mclear-hwcap.
18635
18636 2014-05-28  Richard Biener  <rguenther@suse.de>
18637
18638         * hwint.h (*_HALF_WIDE_INT*): Move to ...
18639         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
18640         ... here and remove the rest.
18641         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
18642
18643 2014-05-28  Richard Biener  <rguenther@suse.de>
18644
18645         PR tree-optimization/61335
18646         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
18647         new range fails, drop to varying.
18648
18649 2014-05-28  Olivier Hainque  <hainque@adacore.com>
18650
18651         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
18652         (CPP_SPEC): Add entry for -mcpu=8548.
18653         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
18654         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
18655
18656 2014-05-28  Tom de Vries  <tom@codesourcery.com>
18657
18658         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
18659         * lra.c (initialize_lra_reg_info_element): Add init of
18660         actual_call_used_reg_set field.
18661         (lra): Call lra_create_live_ranges before lra_inheritance for
18662         -fuse-caller-save.
18663         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
18664         -fuse-caller-save.
18665         * lra-constraints.c (need_for_call_save_p): Use
18666         actual_call_used_reg_set instead of call_used_reg_set for
18667         -fuse-caller-save.
18668         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
18669
18670 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18671             Tom de Vries  <tom@codesourcery.com>
18672
18673         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
18674         to gccoptlist.
18675         (@item -fuse-caller-save): New item.
18676
18677 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18678             Tom de Vries  <tom@codesourcery.com>
18679
18680         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
18681         OPT_fuse_caller_save.
18682
18683 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18684             Tom de Vries  <tom@codesourcery.com>
18685
18686         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
18687         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
18688         get_call_reg_set_usage.
18689         * resource.c (mark_set_resources, mark_target_live_regs): Use
18690         get_call_reg_set_usage.
18691         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
18692         field.
18693         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
18694         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
18695         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18696         * ira-build.c (ira_create_allocno): Init
18697         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18698         (create_cap_allocno, propagate_allocno_info)
18699         (propagate_some_info_from_allocno)
18700         (copy_info_to_removed_store_destinations): Handle
18701         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18702         * ira-costs.c (ira_tune_allocno_costs): Use
18703         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
18704
18705 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18706             Tom de Vries  <tom@codesourcery.com>
18707
18708         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
18709         and function_used_regs_valid fields.
18710         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
18711         find_all_hard_reg_sets.
18712         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
18713         (get_call_reg_set_usage): New function.
18714         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
18715         * regs.h (get_call_reg_set_usage): Declare.
18716
18717 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
18718
18719         PR libgcc/61152
18720         * config/dbx.h (License): Add Runtime Library Exception.
18721         * config/newlib-stdint.h (License): Same.
18722         * config/rtems.h (License): Same
18723         * config/initfini-array.h (License): Same
18724         * config/v850/v850.h (License): Same.
18725         * config/v850/v850-opts.h (License): Same
18726         * config/v850/rtems.h (License): Same.
18727
18728 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
18729
18730         PR target/61044
18731         * doc/extend.texi (Local Labels): Note that label differences are
18732         not supported for AVR.
18733
18734 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
18735             Olivier Hainque  <hainque@adacore.com>
18736
18737         * rtl.h (set_for_reg_notes): Declare.
18738         * emit-rtl.c (set_for_reg_notes): New function.
18739         (set_unique_reg_note): Use it.
18740         * optabs.c (add_equal_note): Likewise
18741
18742 2014-05-27  Andrew Pinski  <apinski@cavium.com>
18743
18744         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
18745         Use <w> for the register in assembly template.
18746         (stack_protect_test): Use the mode of operands[0] for the result.
18747         (stack_protect_test_<mode>): Use <w> for the register
18748         in assembly template.
18749
18750 2014-05-27  DJ Delorie  <dj@redhat.com>
18751
18752         * config/rx/rx.c (add_vector_labels): New.
18753         (rx_output_function_prologue): Call it.
18754         (rx_handle_func_attribute): Don't require empty arguments.
18755         (rx_handle_vector_attribute): New.
18756         (rx_attribute_table): Add "vector" attribute.
18757         * doc/extend.texi (interrupt, vector): Document new/changed
18758         RX-specific attributes.
18759
18760         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
18761
18762 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
18763
18764         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
18765         predicate to detect a negative quotient.
18766
18767 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
18768
18769         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
18770         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
18771         Add X - Y CMP 0 to X CMP Y transformation.
18772         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
18773
18774 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
18775
18776         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
18777         before printing.
18778
18779 2014-05-27  Steve Ellcey  <sellcey@mips.com>
18780
18781         * config/mips/mips.c: Add include of cgraph.h.
18782
18783 2014-05-27  Richard Biener  <rguenther@suse.de>
18784
18785         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
18786
18787 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
18788
18789         PR libgcc/61152
18790         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
18791         * config/arm/arm-cores.def (License): Same.
18792         * config/arm/arm-opts.h (License): Same.
18793         * config/arm/aout.h (License): Same.
18794         * config/arm/bpabi.h (License): Same.
18795         * config/arm/elf.h (License): Same.
18796         * config/arm/linux-elf.h (License): Same.
18797         * config/arm/linux-gas.h (License): Same.
18798         * config/arm/netbsd-elf.h (License): Same.
18799         * config/arm/uclinux-eabi.h (License): Same.
18800         * config/arm/uclinux-elf.h (License): Same.
18801         * config/arm/vxworks.h (License): Same.
18802
18803 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18804
18805         * config/arm/neon.md (neon_bswap<mode>): New pattern.
18806         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
18807         (arm_init_neon_builtins): Handle NEON_BSWAP.
18808         Define required type nodes.
18809         (arm_expand_neon_builtin): Handle NEON_BSWAP.
18810         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
18811         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
18812         * config/arm/iterators.md (VDQHSD): New mode iterator.
18813
18814 2014-05-27  Richard Biener  <rguenther@suse.de>
18815
18816         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
18817         Try using literal operands when comparing value-ranges failed.
18818
18819 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
18820
18821         * ira.c (commutative_operand): Adjust for change to recog_data.
18822         [Missing from previous commit.]
18823
18824 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
18825
18826         * system.h (TEST_BIT): New macro.
18827         * recog.h (alternative_mask): New type.
18828         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
18829         (recog_data_d): Replace alternative_enabled_p array with
18830         enabled_alternatives.
18831         (target_recog): New structure.
18832         (default_target_recog, this_target_recog): Declare.
18833         (get_enabled_alternatives, recog_init): Likewise.
18834         * recog.c (default_target_recog, this_target_recog): New variables.
18835         (get_enabled_alternatives): New function.
18836         (extract_insn): Use it.
18837         (recog_init): New function.
18838         (preprocess_constraints, constrain_operands): Adjust for change to
18839         recog_data.
18840         * postreload.c (reload_cse_simplify_operands): Likewise.
18841         * reload.c (find_reloads): Likewise.
18842         * ira-costs.c (record_reg_classes): Likewise.
18843         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
18844         all alternatives after a disabled one would be skipped.
18845         (ira_implicitly_set_insn_hard_regs): Likewise.
18846         * ira.c (ira_setup_alts): Adjust for change to recog_data.
18847         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
18848         with enabled_alternatives.
18849         * lra.c (free_insn_recog_data): Update accordingly.
18850         (lra_update_insn_recog_data): Likewise.
18851         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
18852         * lra-constraints.c (process_alt_operands): Likewise.  Handle
18853         only_alternative as part of the enabled mask.
18854         * target-globals.h (this_target_recog): Declare.
18855         (target_globals): Add a recog field.
18856         (restore_target_globals): Restore this_target_recog.
18857         * target-globals.c: Include recog.h.
18858         (default_target_globals): Initialize recog field.
18859         (save_target_globals): Likewise.
18860         * reginfo.c (reinit_regs): Call recog_init.
18861         * toplev.c (backend_init_target): Likewise.
18862
18863 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
18864
18865         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
18866         rather than any named insn's code.
18867
18868 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
18869
18870         PR libgcc/61152
18871         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
18872         * config/arm/arm-cores.def (License): Same.
18873
18874 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
18875
18876         * tree.h (decl_comdat_group): Declare.
18877         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
18878         * tree.c (decl_comdat_group): Here.
18879
18880 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
18881
18882         PR rtl-optimization/61222
18883         * combine.c (simplify_shift_const_1): When moving a PLUS outside
18884         the shift, truncate the PLUS operand to the result mode.
18885
18886 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
18887
18888         PR target/61271
18889         * config/i386/i386.c (ix86_rtx_costs)
18890         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
18891         Fix condition.
18892
18893 2014-05-26  Martin Jambor  <mjambor@suse.cz>
18894
18895         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
18896         subreg uses.
18897
18898 2014-05-26  Richard Biener  <rguenther@suse.de>
18899
18900         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
18901         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
18902         Provide specializations.
18903         (wi::int_traits <HOST_WIDE_INT>,
18904         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
18905
18906 2014-05-26  Alan Modra  <amodra@gmail.com>
18907
18908         PR target/61098
18909         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
18910         params and return a bool.  Remove dead code.  Update comment.
18911         Assert we have a const_int source.  Remove bogus code from
18912         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
18913         handling of constants > 2G and reg_equal note, from..
18914         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
18915         return value.  Update comment.  If we can, use a new pseudo
18916         for intermediate calculations.
18917         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
18918         prototype.
18919         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
18920         call to rs6000_emit_set_const in splitter.
18921         (movdi_internal64+2, +3): Likewise.
18922
18923 2014-05-26  Richard Biener  <rguenther@suse.de>
18924
18925         * system.h: Define __STDC_FORMAT_MACROS before
18926         including inttypes.h.
18927         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
18928         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
18929         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
18930         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
18931         HOST_WIDEST_INT_C): Remove.
18932         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
18933         if C99 inttypes.h is not available.
18934         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
18935         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
18936         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
18937         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
18938         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
18939         (struct output_info): Likewise.
18940         (print_statistics): Adjust.
18941         (dump_bitmap_statistics): Likewise.
18942         * bt-load.c (migrate_btr_defs): Print with PRId64.
18943         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
18944         (MAX_SAFE_MULTIPLIER): Adjust.
18945         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
18946         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
18947         dump_cgraph_node): Likewise.
18948         * final.c (dump_basic_block_info): Likewise.
18949         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
18950         * gcov.c (format_gcov): Likewise.
18951         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
18952         for calculation.
18953         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
18954         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
18955         (inline_small_functions, dump_overall_stats, dump_inline_stats):
18956         Use PRId64 for dumping.
18957         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
18958         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
18959         (add_allocno_hard_regs): Adjust.
18960         * loop-doloop.c (doloop_modify): Print using PRId64.
18961         * loop-iv.c (inverse): Compute in uint64_t.
18962         (determine_max_iter, iv_number_of_iterations): Likewise.
18963         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
18964         Print using PRId64.
18965         * lto-streamer-out.c (write_symbol): Use uint64_t.
18966         * mcf.c (CAP_INFINITY): Use int64_t maximum.
18967         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
18968         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
18969         * modulo-sched.c (const_iteration_count): Use int64_t.
18970         (sms_schedule): Dump using PRId64.
18971         * predict.c (dump_prediction): Likewise.
18972         * pretty-print.h (pp_widest_integer): Remove.
18973         * profile.c (get_working_sets, is_edge_inconsistent,
18974         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
18975         * tree-pretty-print.c (pp_double_int): Remove case handling
18976         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
18977         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
18978         and adjust users.
18979         (pass_optimize_bswap::execute): Remove restriction on hosts.
18980         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
18981         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
18982         * tree.c (widest_int_cst_value): Remove.
18983         * tree.h (widest_int_cst_value): Likewise.
18984         * value-prof.c (dump_histogram_value): Print using PRId64.
18985         * gengtype.c (main): Also inject int64_t.
18986         * ggc-page.c (struct max_alignment): Use int64_t.
18987         * alloc-pool.c (struct allocation_object_def): Likewise.
18988         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
18989         for computation.
18990         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
18991         * doc/tm.texi: Regenerated.
18992         * gengtype-lex.l (IWORD): Handle [u]int64_t.
18993         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
18994         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
18995         mmix_output_register_setting): Use [u]int64_t in prototypes.
18996         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
18997         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
18998         mmix_output_octa, mmix_output_shifted_value): Adjust.
18999         (mmix_intval): Adjust.  Remove unreachable case.
19000         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
19001
19002 2014-05-26  Richard Biener  <rguenther@suse.de>
19003
19004         * configure.ac: Drop __int64 type check.  Insist that we
19005         found uint64_t and int64_t.
19006         * hwint.h (HOST_BITS_PER___INT64): Remove.
19007         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
19008         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
19009         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
19010         (HOST_WIDEST_FAST_INT): Remove __int64 case.
19011         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
19012         for dst_q_src_df_rms_cdt.
19013         * configure: Regenerate.
19014         * config.in: Likewise.
19015
19016 2014-05-26  Michael Tautschnig  <mt@debian.org>
19017
19018         PR target/61249
19019         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
19020         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
19021
19022 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19023
19024         PR rtl-optimization/61278
19025         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
19026
19027 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19028
19029         PR rtl-optimization/61220
19030         Part of PR rtl-optimization/61225
19031         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
19032         insn; skip split_edge for a block with only one successor.
19033
19034 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19035
19036         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
19037         for variables.
19038
19039 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19040
19041         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
19042         (update_vtable_references): New function.
19043         (function_and_variable_visibility): Rewrite also vtable initializers.
19044         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
19045
19046 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19047
19048         * ggc.h (ggc_grow): New function.
19049         * ggc-none.c (ggc_grow): New function.
19050         * ggc-page.c (ggc_grow): Likewise.
19051
19052 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19053
19054         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
19055         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
19056         comdat_can_be_unshared_p, cgraph_externally_visible_p,
19057         varpool_externally_visible_p, can_replace_by_local_alias,
19058         update_visibility_by_resolution_info, function_and_variable_visibility,
19059         pass_data_ipa_function_and_variable_visibility,
19060         make_pass_ipa_function_and_variable_visibility,
19061         whole_program_function_and_variable_visibility,
19062         pass_data_ipa_whole_program_visibility,
19063         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
19064         * cgraph.h (cgraph_local_node_p): Declare.
19065         * ipa-visibility.c: New file.
19066         * Makefile.in (OBJS): Add ipa-visiblity.o
19067
19068 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19069
19070         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
19071         that var decl is available.
19072
19073 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19074
19075         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
19076         symtab_node pointer.
19077         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
19078         (find_decls_types_r): Do not walk COMDAT_GROUP.
19079         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
19080         * varasm.c (make_decl_one_only): Use set_comdat_group;
19081         create node if needed.
19082         * ipa-inline-transform.c (save_inline_function_body): Update
19083         way we decl->symtab mapping.
19084         * symtab.c (symtab_hash, hash_node, eq_node
19085         symtab_insert_node_to_hashtable): Remove.
19086         (symtab_register_node): Update.
19087         (symtab_unregister_node): Update.
19088         (symtab_get_node): Reimplement as inline function.
19089         (symtab_add_to_same_comdat_group): Update.
19090         (symtab_dissolve_same_comdat_group_list): Update.
19091         (dump_symtab_base): Update.
19092         (verify_symtab_base): Update.
19093         (symtab_make_decl_local): Update.
19094         (fixup_same_cpp_alias_visibility): Update.
19095         (symtab_nonoverwritable_alias): Update.
19096         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
19097         * ipa.c (update_visibility_by_resolution_info): UPdate.
19098         * bb-reorder.c: Include cgraph.h
19099         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
19100         with comdat groups.
19101         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
19102         * cgraph.c (cgraph_get_create_node): Update.
19103         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
19104         and comdat_group_.
19105         (symtab_get_node): Make inline.
19106         (symtab_insert_node_to_hashtable): Remove.
19107         (symtab_can_be_discarded): Update.
19108         (decl_comdat_group): New function.
19109         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
19110         Update.
19111         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
19112         comdat group name.
19113         (read_comdat_group): New function.
19114         (input_node, input_varpool_node): Use it.
19115         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
19116         comdat groups.
19117         * mips.c (mips_start_unique_function): Likewise.
19118         (ix86_code_end): Likewise.
19119         (rs6000_code_end): Likweise.
19120         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
19121
19122 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19123
19124         * gengtype-state.c (fatal_reading_state): Bring offline.
19125         * optabs.c (widening_optab_handler): Bring offline.
19126         * optabs.h (widening_optab_handler): Likewise.
19127         * final.c (get_attr_length_1): Likewise.
19128
19129 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19130
19131         * sched-int.h (sd_iterator_cond): Manually tail recurse.
19132
19133 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19134
19135         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
19136         (ppc440-compare): Include shift with dot.
19137         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
19138         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
19139         without dot.
19140         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
19141         without dot.
19142         (e6500_sfx2): Include it.
19143         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
19144         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
19145         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
19146         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
19147         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
19148         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
19149         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
19150         *lshiftrt_internal1le, *lshiftrt_internal1be,
19151         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
19152         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
19153         *rotldi3_internal10le, *rotldi3_internal10be,
19154         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
19155         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
19156         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
19157         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
19158         define_insns): Use type "shift" in the appropriate alternatives.
19159
19160 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19161
19162         * config/rs6000/rs6000.md (type): Add "logical".  Delete
19163         "fast_compare".
19164         (dot): Adjust comment.
19165         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
19166         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
19167         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
19168         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
19169         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
19170         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
19171         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
19172         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
19173
19174         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
19175         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
19176         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
19177         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
19178         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
19179         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
19180         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
19181         * config/rs6000/8540.md (ppc8540_su): Adjust.
19182         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19183         cell-cmp-microcoded): Adjust.
19184         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
19185         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19186         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
19187         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
19188         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
19189         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
19190         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
19191         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
19192         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
19193         Adjust.
19194         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
19195         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
19196         Adjust.  Adjust comment.
19197         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
19198         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
19199
19200 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19201
19202         * config/rs6000/rs6000.md (type): Add "add".
19203         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
19204         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
19205         define_insns): Use it.
19206         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
19207
19208         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
19209         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
19210         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
19211         * config/rs6000/601.md (ppc601-integer): Adjust.
19212         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
19213         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
19214         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
19215         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
19216         * config/rs6000/8540.md (ppc8540_su): Adjust.
19217         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19218         cell-cmp-microcoded): Adjust.
19219         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
19220         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19221         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
19222         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
19223         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
19224         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
19225         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
19226         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
19227         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
19228         Adjust.
19229         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
19230         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
19231         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
19232         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
19233
19234 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19235
19236         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
19237         "delayed_compare", "var_delayed_compare".
19238         (var_shift): New attribute.
19239         (cell_micro): Adjust.
19240         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
19241         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
19242         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
19243         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
19244         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
19245         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
19246         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
19247         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
19248         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
19249         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
19250         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
19251         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
19252         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
19253         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
19254         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
19255         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
19256         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
19257         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
19258         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
19259         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
19260         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
19261         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
19262         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
19263         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19264         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
19265
19266         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
19267         * config/rs6000/440.md (ppc440-integer): Adjust.
19268         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
19269         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
19270         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
19271         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
19272         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
19273         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
19274         * config/rs6000/8540.md (ppc8540_su): Adjust.
19275         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19276         cell-cmp-microcoded): Adjust.
19277         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
19278         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19279         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
19280         e500mc64_delayed): Adjust.
19281         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
19282         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
19283         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
19284         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
19285         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
19286         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
19287         power6-delayed-compare, power6-var-delayed-compare): Adjust.
19288         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
19289         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
19290         Adjust comment.
19291         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
19292         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
19293
19294 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19295
19296         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
19297         (bits): New mode_attr.
19298         (idiv_ldiv): Delete mode_attr.
19299         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
19300         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19301         rs6000_adjust_priority, is_nonpipeline_insn,
19302         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
19303
19304         * config/rs6000/40x.md (ppc403-idiv): Adjust.
19305         * config/rs6000/440.md (ppc440-idiv): Adjust.
19306         * config/rs6000/476.md (ppc476-idiv): Adjust.
19307         * config/rs6000/601.md (ppc601-idiv): Adjust.
19308         * config/rs6000/603.md (ppc603-idiv): Adjust.
19309         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
19310         ppc620-ldiv): Adjust.
19311         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
19312         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
19313         * config/rs6000/8540.md (ppc8540_divide): Adjust.
19314         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
19315         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
19316         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
19317         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
19318         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
19319         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
19320         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
19321         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
19322         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
19323         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
19324         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
19325         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
19326         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
19327         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
19328         * config/rs6000/titan.md (titan_fxu_div): Adjust.
19329
19330 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19331
19332         * config/rs6000/rs6000.md (type): Delete "insert_word",
19333         "insert_dword".  Add "insert".
19334         (size): Update comment.
19335         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19336         insn_must_be_first_in_group): Adjust.
19337         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
19338         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
19339         *insvsi_internal6, insvdi_internal): Adjust.
19340
19341         * config/rs6000/40x.md (ppc403-integer): Adjust.
19342         * config/rs6000/440.md (ppc440-integer): Adjust.
19343         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
19344         * config/rs6000/601.md (ppc601-integer): Adjust.
19345         * config/rs6000/603.md (ppc603-integer): Adjust.
19346         * config/rs6000/6xx.md (ppc604-integer): Adjust.
19347         * config/rs6000/7450.md (ppc7450-integer): Adjust.
19348         * config/rs6000/7xx.md (ppc750-integer): Adjust.
19349         * config/rs6000/8540.md (ppc8540_su): Adjust.
19350         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
19351         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
19352         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19353         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
19354         * config/rs6000/e5500.md (e5500_sfx): Adjust.
19355         * config/rs6000/e6500.md (e6500_sfx): Adjust.
19356         * config/rs6000/mpc.md (mpccore-integer): Adjust.
19357         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
19358         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
19359         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
19360         * config/rs6000/power7.md (power7-integer): Adjust.
19361         * config/rs6000/power8.md (power8-1cyc): Adjust.
19362         * config/rs6000/rs64.md (rs64a-integer): Adjust.
19363         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
19364
19365 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19366
19367         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
19368         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
19369         (size): New attribute.
19370         (dot): New attribute.
19371         (cell_micro): Adjust.
19372         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
19373         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
19374         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
19375         umuldi3_highpart): Adjust.
19376         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19377         rs6000_adjust_priority, is_nonpipeline_insn,
19378         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
19379
19380         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
19381         ppc405-imul3): Adjust.
19382         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
19383         * config/rs6000/476.md (ppc476-imul): Adjust.
19384         * config/rs6000/601.md (ppc601-imul): Adjust.
19385         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
19386         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
19387         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
19388         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
19389         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
19390         Adjust.
19391         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
19392         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
19393         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
19394         cell-imul): Adjust.
19395         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
19396         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
19397         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
19398         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
19399         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
19400         * config/rs6000/mpc.md (mpccore-imul): Adjust.
19401         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
19402         power4-lmul, power4-imul, power4-imul3): Adjust.
19403         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
19404         power5-lmul, power5-imul, power5-imul3): Adjust.
19405         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
19406         power6-lmul, power6-imul, power6-imul3): Adjust.
19407         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
19408         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
19409
19410         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
19411         rs64a-lmul): Adjust.
19412         * config/rs6000/titan.md (titan_imul): Adjust.
19413
19414 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19415
19416         * config/rs6000/rs6000.md (type): Add new value "halfmul".
19417         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
19418         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
19419         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
19420         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
19421         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
19422         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
19423         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
19424         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
19425         * config/rs6000/titan.md: Delete nonsensical comment.
19426         (titan_imul): Add type imul3.
19427         (titan_mulhw): Remove type imul3; add type halfmul.
19428
19429 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19430
19431         * config/rs6000/rs6000.md (type): Reorder, reformat.
19432
19433 2014-05-23  Martin Jambor  <mjambor@suse.cz>
19434
19435         PR tree-optimization/53787
19436         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
19437         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
19438         analysis_done, update all uses.
19439         * ipa-prop.c: Include domwalk.h
19440         (param_analysis_info): Removed.
19441         (param_aa_status): New type.
19442         (ipa_bb_info): Likewise.
19443         (func_body_info): Likewise.
19444         (ipa_get_bb_info): New function.
19445         (aa_overwalked): Likewise.
19446         (find_dominating_aa_status): Likewise.
19447         (parm_bb_aa_status_for_bb): Likewise.
19448         (parm_preserved_before_stmt_p): Changed to use new param AA info.
19449         (load_from_unmodified_param): Accept func_body_info as a parameter
19450         instead of parms_ainfo.
19451         (parm_ref_data_preserved_p): Changed to use new param AA info.
19452         (parm_ref_data_pass_through_p): Likewise.
19453         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
19454         (compute_complex_assign_jump_func): Changed to use new param AA info.
19455         (compute_complex_ancestor_jump_func): Likewise.
19456         (ipa_compute_jump_functions_for_edge): Likewise.
19457         (ipa_compute_jump_functions): Removed.
19458         (ipa_compute_jump_functions_for_bb): New function.
19459         (ipa_analyze_indirect_call_uses): Likewise, moved variable
19460         declarations down.
19461         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
19462         and info, moved variable declarations down.
19463         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
19464         node and info.
19465         (ipa_analyze_stmt_uses): Likewise.
19466         (ipa_analyze_params_uses): Removed.
19467         (ipa_analyze_params_uses_in_bb): New function.
19468         (ipa_analyze_controlled_uses): Likewise.
19469         (free_ipa_bb_info): Likewise.
19470         (analysis_dom_walker): New class.
19471         (ipa_analyze_node): Handle node-specific forbidden analysis,
19472         initialize and free func_body_info, use dominator walker.
19473         (ipcp_modif_dom_walker): New class.
19474         (ipcp_transform_function): Create and free func_body_info, use
19475         ipcp_modif_dom_walker, moved a lot of functionality there.
19476
19477 2014-05-23  Marek Polacek  <polacek@redhat.com>
19478             Jakub Jelinek  <jakub@redhat.com>
19479
19480         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
19481         * gcc.c (sanitize_spec_function): Likewise.
19482         * convert.c (convert_to_integer): Include "ubsan.h".  Add
19483         floating-point to integer instrumentation.
19484         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
19485         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
19486         SANITIZE_NONDEFAULT.
19487         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
19488         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
19489         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
19490         * ubsan.c: Include "realmpfr.h" and "dfp.h".
19491         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
19492         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
19493         float/double/long double.
19494         (ubsan_instrument_float_cast): New function.
19495         * ubsan.h (ubsan_instrument_float_cast): Declare.
19496
19497 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
19498
19499         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
19500         predicate.
19501         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
19502         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
19503         Adjust for tailcalling through registers.
19504         * config/aarch64/aarch64.h (enum reg_class): New caller save
19505         register class.
19506         (REG_CLASS_NAMES): Likewise.
19507         (REG_CLASS_CONTENTS): Likewise.
19508         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
19509         Allow tailcalling without decls.
19510
19511 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
19512
19513         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
19514         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
19515
19516         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
19517         gsi, and variables v_* to v*.
19518
19519 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
19520
19521         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
19522
19523 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
19524
19525         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
19526         * omp-low.c: Update accordingly.
19527
19528         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
19529         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
19530         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
19531         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
19532         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
19533         GF_OMP_TARGET_KIND_UPDATE.
19534
19535         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
19536         Explicitly enumerate the expected region types.
19537
19538 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
19539
19540         PR other/56955
19541         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
19542         documentation; the old documentation didn't clearly state the
19543         constraints on the contents of the pointed-to storage.
19544
19545 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19546
19547         Fix bootstrap error on ia64
19548         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
19549         Return default value.
19550
19551 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19552
19553         PR tree-optimization/54733
19554         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
19555         (CMPNOP): Define.
19556         (find_bswap_or_nop_load): New.
19557         (find_bswap_1): Renamed to ...
19558         (find_bswap_or_nop_1): This. Also add support for memory source.
19559         (find_bswap): Renamed to ...
19560         (find_bswap_or_nop): This. Also add support for memory source and
19561         detection of bitwise operations equivalent to load in target
19562         endianness.
19563         (execute_optimize_bswap): Likewise. Also move its leading comment back
19564         in place and split statement transformation into ...
19565         (bswap_replace): This.
19566
19567 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
19568
19569         PR rtl-optimization/61215
19570         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
19571         simplify_gen_subreg until final substitution.
19572
19573 2014-05-23  Alan Modra  <amodra@gmail.com>
19574
19575         PR target/61231
19576         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
19577         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
19578         Use "Y" constraint rather than "m".
19579
19580 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
19581
19582         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
19583         define.
19584         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
19585         New function declaration.
19586         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
19587         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
19588         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
19589         (aarch64_init_builtins) : Initialize builtins
19590         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
19591         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
19592         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
19593         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
19594         and __builtins_aarch64_set_fpsr.
19595         (aarch64_atomic_assign_expand_fenv): New function.
19596         * config/aarch64/aarch64.md (set_fpcr): New pattern.
19597         (get_fpcr) : Likewise.
19598         (set_fpsr) : Likewise.
19599         (get_fpsr) : Likewise.
19600         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
19601          and UNSPECV_SET_FPSR.
19602         * doc/extend.texi (AARCH64 Built-in Functions) : Document
19603         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
19604         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
19605
19606 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
19607
19608         PR rtl-optimization/60969
19609         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
19610         constraints.  Set up mem cost for NO_REGS case.
19611
19612 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
19613
19614         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
19615
19616 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
19617
19618         * config/darwin.c: Include "lto-section-names.h".
19619         (LTO_SEGMENT_NAME): Don't define.
19620         * config/i386/winnt.c: Include "lto-section-names.h".
19621         * lto-streamer.c: Include "lto-section-names.h".
19622         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
19623         * lto-wrapper.c: Include "lto-section-names.h".
19624         (LTO_SECTION_NAME_PREFIX): Don't define.
19625         * lto-section-names.h: New file.
19626         * cgraphunit.c: Include "lto-section-names.h".
19627
19628 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
19629
19630         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
19631
19632 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
19633
19634         PR target/61208
19635         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
19636
19637 2014-05-22  Nick Clifton  <nickc@redhat.com>
19638
19639         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
19640
19641 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
19642
19643         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
19644         -> (T)A transformation to integer types.
19645
19646 2014-05-22  Teresa Johnson  <tejohnson@google.com>
19647
19648         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
19649         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
19650         (gcov_rewrite): Use gcov_nonruntime_assert.
19651         (gcov_open): Ditto.
19652         (gcov_write_words): Ditto.
19653         (gcov_write_length): Ditto.
19654         (gcov_read_words): Use gcov_nonruntime_assert, and remove
19655         gcc_assert from IN_LIBGCOV code.
19656         (gcov_read_summary): Use gcov_error to flag profile corruption.
19657         (gcov_sync): Use gcov_nonruntime_assert.
19658         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
19659         (gcov_histo_index): Use gcov_nonruntime_assert.
19660         (static void gcov_histogram_merge): Ditto.
19661         (compute_working_sets): Ditto.
19662         * gcov-io.h (gcov_nonruntime_assert): Define.
19663         (gcov_error): Define for !IN_LIBGCOV
19664
19665 2014-05-22  Richard Biener  <rguenther@suse.de>
19666
19667         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
19668         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
19669         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
19670         and deallocation site.
19671         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
19672         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
19673         passing through the incoming points-to set.
19674         (handle_lhs_call): Use flags argument instead of recomputing it.
19675         (find_func_aliases_for_call): Call handle_lhs_call with proper
19676         call return flags.
19677
19678 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
19679
19680         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
19681         all padding bits in REAL_VALUE_TYPE are cleared.
19682
19683 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19684
19685         Cleanup and improve multipass_dfa_lookahead_guard
19686         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
19687         (core2i7_first_cycle_multipass_begin,)
19688         (core2i7_first_cycle_multipass_issue,)
19689         (core2i7_first_cycle_multipass_backtrack): Update signature.
19690         * config/ia64/ia64.c
19691         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
19692         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
19693         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
19694         hook definition.
19695         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
19696         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
19697         values.
19698         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
19699         return values.
19700         * doc/tm.texi: Regenerate.
19701         * doc/tm.texi.in
19702         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
19703         * haifa-sched.c (ready_try): Make signed to allow negative values.
19704         (rebug_ready_list_1): Update.
19705         (choose_ready): Simplify.
19706         (sched_extend_ready_list): Update.
19707
19708 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19709
19710         Remove IA64 speculation tweaking flags
19711         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
19712         speculation tuning flags.
19713         (msched-prefer-non-data-spec-insns,)
19714         (msched-prefer-non-control-spec-insns): Obsolete options.
19715         * haifa-sched.c (choose_ready): Remove handling of
19716         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
19717         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
19718         and PREFER_NON_DATA_SPEC.
19719         * sel-sched.c (process_spec_exprs): Remove handling of
19720         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
19721
19722 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19723
19724         Improve scheduling debug output
19725         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
19726         (advance_one_cycle): Update.
19727         (schedule_insn, queue_to_ready): Add debug printouts.
19728         (debug_ready_list_1): New static function.
19729         (debug_ready_list): Update.
19730         (max_issue): Add debug printouts.
19731         (dump_insn_stream): New static function.
19732         (schedule_block): Use it.  Also better indent printouts.
19733
19734 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19735
19736         Fix sched_insn debug counter
19737         * haifa-sched.c (schedule_insn): Update.
19738         (struct haifa_saved_data): Add nonscheduled_insns_begin.
19739         (save_backtrack_point, restore_backtrack_point): Update.
19740         (first_nonscheduled_insn): New static function.
19741         (queue_to_ready, choose_ready): Use it.
19742         (schedule_block): Init nonscheduled_insns_begin.
19743         (sched_emit_insn): Update.
19744
19745
19746 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
19747
19748         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
19749         to GENERAL_REGS.
19750         (aarch64_secondary_reload) : LikeWise.
19751         (aarch64_class_max_nregs) : Remove CORE_REGS.
19752         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
19753         (REG_CLASS_NAMES) : Likewise.
19754         (REG_CLASS_CONTENTS) : LikeWise.
19755         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
19756
19757 2014-05-21  Guozhi Wei  <carrot@google.com>
19758
19759         PR target/61202
19760         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
19761         constraint.
19762         (vqdmulhq_n_s16): Likewise.
19763
19764 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
19765
19766         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
19767
19768 2014-05-21  Marek Polacek  <polacek@redhat.com>
19769
19770         PR sanitizer/61272
19771         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
19772
19773 2014-05-21  Martin Jambor  <mjambor@suse.cz>
19774
19775         * doc/invoke.texi (Optimize Options): Document parameters
19776         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
19777         ipa-cp-array-index-hint-bonus.
19778
19779 2014-05-21  Mark Wielaard  <mjw@redhat.com>
19780
19781         PR debug/16063
19782         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
19783         version >= 3 or not strict DWARF.
19784         * langhooks.h (struct lang_hooks_for_types): Add
19785         enum_underlying_base_type.
19786         * langhooks.c (lhd_enum_underlying_base_type): New function.
19787         * gcc/langhooks.h (struct lang_hooks_for_types): Add
19788         enum_underlying_base_type.
19789         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
19790         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
19791         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
19792
19793 2014-05-21  Richard Biener  <rguenther@suse.de>
19794
19795         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
19796
19797 2014-05-21  John Marino  <gnugcc@marino.st>
19798
19799         * config.gcc (*-*-dragonfly*): New target.
19800         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
19801         * configure: Regenerate.
19802         * config/dragonfly-stdint.h: New.
19803         * config/dragonfly.h: New.
19804         * config/dragonfly.opt: New.
19805         * config/i386/dragonfly.h: New.
19806         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
19807
19808 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
19809
19810         * tree.def (VOID_CST): New.
19811         * tree-core.h (TI_VOID): New.
19812         * tree.h (void_node): New.
19813         * tree.c (tree_node_structure_for_code, tree_code_size)
19814         (iterative_hash_expr): Handle VOID_CST.
19815         (build_common_tree_nodes): Initialize void_node.
19816
19817 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
19818
19819         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
19820         functions.
19821         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
19822
19823         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
19824         more places.
19825
19826         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
19827         flag_reorder_blocks_and_partition.
19828         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
19829
19830 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
19831
19832         PR target/54236
19833         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
19834         constraints.
19835         (*addc_r_t): Add new insn_and_split.
19836
19837 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
19838
19839         PR middle-end/61252
19840         * omp-low.c (handle_simd_reference): New function.
19841         (lower_rec_input_clauses): Use it.  Defer adding reference
19842         initialization even for reduction without placeholder if in simd,
19843         handle it properly later on.
19844
19845 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
19846
19847         PR tree-optimization/60899
19848         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
19849         assume all static symbols will have definition wile parsing and
19850         check the do have definition later in compilation; check that
19851         variable referring symbol will be output before concluding that
19852         reference is safe; be conservative for referring local statics;
19853         be more precise about when comdat is output in other partition.
19854
19855 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
19856
19857         PR bootstrap/60984
19858         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
19859         parameter.
19860         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
19861         (ipa_inline): Loop inline_to_all_callers until no more aliases
19862         are removed.
19863
19864 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
19865
19866         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
19867         set writeonly flag only for vars actually written to.
19868
19869 2014-05-20  Dehao Chen  <dehao@google.com>
19870
19871         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
19872         and callee count to get clone count.
19873         * tree-inline.c (expand_call_inline): Use callee count instead of bb
19874         count in copy_body.
19875
19876 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
19877
19878         PR rtl-optimization/61243
19879         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
19880
19881 2014-05-20  Xinliang David Li  <davidxl@google.com>
19882
19883         * cgraphunit.c (walk_polymorphic_call_targets): Add
19884         dbgcnt and fopt-info support.
19885         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
19886         * ipa-devirt.c (ipa_devirt): Ditto.
19887         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
19888         * ipa.c (walk_polymorphic_call_targets): Ditto.
19889         * gimple-fold.c (fold_gimple_assign): Ditto.
19890         (gimple_fold_call): Ditto.
19891         * dbgcnt.def: New counter.
19892
19893 2014-05-20  DJ Delorie  <dj@redhat.com>
19894
19895         * config/msp430/msp430.md (split): Don't allow subregs when
19896         splitting SImode adds.
19897         (andneghi): Fix subtraction logic.
19898         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
19899
19900 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
19901
19902         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
19903         symbols.
19904         * except.c (switch_to_exception_section, resolve_unique_section,
19905         get_named_text_section, default_function_rodata_section,
19906         align_variable, get_block_for_decl, default_section_type_flags):
19907         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
19908         * symtab.c (symtab_add_to_same_comdat_group,
19909         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
19910         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
19911         Likewise.
19912         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
19913         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
19914         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
19915         (c6x_function_in_section_p): Likewise.
19916         * config/darwin.c (machopic_select_section): Likewise.
19917         * config/arm/arm.c (arm_function_in_section_p): Likewise.
19918         * config/mips/mips.c (mips_function_rodata_section): Likewise.
19919         * config/mep/mep.c (mep_select_section): LIkewise.
19920         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
19921
19922 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
19923
19924         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
19925         EH region of calls to pure functions that can throw an exception.
19926         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
19927         (copy_reference_ops_from_call): Also copy the EH region of the call if
19928         it can throw an exception.
19929
19930 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19931
19932         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
19933         nested VEC_SELECTs that are inverses of each other.
19934
19935 2014-05-20  Richard Biener  <rguenther@suse.de>
19936
19937         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
19938         (extract_and_process_scc_for_name): not here.
19939         (cond_dom_walker::before_dom_children): Only process
19940         stmts that end the BB in interesting ways.
19941         (run_scc_vn): Mark param uses as visited.
19942
19943 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19944
19945         * config/arm/arm.md (arith_shiftsi): Do not predicate for
19946         arm_restrict_it.
19947
19948 2014-05-20  Nick Clifton  <nickc@redhat.com>
19949
19950         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
19951         (msp430_gimplify_va_arg_expr): New function.
19952         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
19953
19954         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
19955         operand 0 in order to prevent confusion about the number of
19956         registers involved.
19957
19958 2014-05-20  Richard Biener  <rguenther@suse.de>
19959
19960         PR tree-optimization/61221
19961         * tree-ssa-pre.c (el_to_update): Remove.
19962         (eliminate_dom_walker::before_dom_children): Handle released
19963         VDEFs by value-numbering them to the associated VUSE.  Update
19964         stmt immediately for substituted call address.
19965         (eliminate): Remove delayed stmt updating code.
19966         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
19967         possibly late re-numbered vuses.
19968         (vn_reference_lookup_2): Adjust.
19969         (vn_reference_lookup_pieces): Likewise.
19970         (vn_reference_lookup): Likewise.
19971
19972 2014-05-20  Richard Biener  <rguenther@suse.de>
19973
19974         * config.gcc: Remove need_64bit_hwint.
19975         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
19976         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
19977         it to be true.
19978         * config.in: Regenerate.
19979         * configure: Likewise.
19980
19981 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
19982
19983         * doc/extend.texi: Create Label Attributes section,
19984         move all label attributes into it and reference it.
19985
19986 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
19987
19988         * arm.c (thumb1_reorg): When scanning backwards skip anything
19989         that's not a proper insn.
19990
19991 2014-05-19  Richard Biener  <rguenther@suse.de>
19992
19993         PR tree-optimization/61221
19994         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
19995         Do nothing for unreachable blocks.
19996         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
19997         Improve unreachability detection.
19998
19999 2014-05-19  Richard Biener  <rguenther@suse.de>
20000
20001         PR tree-optimization/61209
20002         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
20003
20004 2014-05-19  Nick Clifton  <nickc@redhat.com>
20005
20006         * except.c (init_eh): Fix computation of builtin setjmp buffer
20007         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
20008
20009 2014-05-19  Richard Biener  <rguenther@suse.de>
20010
20011         PR tree-optimization/61184
20012         * tree-vrp.c (is_negative_overflow_infinity): Use
20013         TREE_OVERFLOW_P and do that check first.
20014         (is_positive_overflow_infinity): Likewise.
20015         (is_overflow_infinity): Likewise.
20016         (vrp_operand_equal_p): Properly treat operands with
20017         differing overflow as not equal.
20018
20019 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
20020
20021         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
20022         shift simplification where it was intended.
20023
20024 2014-05-19  Christian Bruel  <christian.bruel@st.com>
20025
20026         PR target/61195
20027         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
20028
20029 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
20030
20031         PR target/61084
20032         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
20033         than wide_int.
20034
20035 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
20036
20037         * reg-notes.def (CROSSING_JUMP): Likewise.
20038         * rtl.h (rtx_def): Update comment for jump flag.
20039         (CROSSING_JUMP_P): Define.
20040         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
20041         of a REG_CROSSING_JUMP note.
20042         * cfghooks.c (tidy_fallthru_edges): Likewise.
20043         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
20044         * emit-rtl.c (try_split): Likewise.
20045         * haifa-sched.c (sched_create_recovery_edges): Likewise.
20046         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
20047         * jump.c (redirect_jump_2): Likewise.
20048         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
20049         (relax_delay_slots): Likewise.
20050         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
20051         (bbit_di): Likewise.
20052         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
20053         * config/sh/sh.md (jump_compact): Likewise.
20054         * bb-reorder.c (rotate_loop): Likewise.
20055         (pass_duplicate_computed_gotos::execute): Likewise.
20056         (add_reg_crossing_jump_notes): Rename to...
20057         (update_crossing_jump_flags): ...this.
20058         (pass_partition_blocks::execute): Update accordingly.
20059
20060 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
20061
20062         * tree.h: Remove extraneous template <>.
20063
20064 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20065
20066         * ipa.c (symtab_remove_unreachable_nodes): Remove
20067         symbol from comdat group if its body was eliminated.
20068         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
20069         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
20070         (symtab_unregister_node): ... this one.
20071         (verify_symtab_base): More strict checking of comdats.
20072         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
20073
20074 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20075
20076         * tree-pass.h (make_pass_ipa_comdats): New pass.
20077         * timevar.def (TV_IPA_COMDATS): New timevar.
20078         * passes.def (pass_ipa_comdats): Add.
20079         * Makefile.in (OBJS): Add ipa-comdats.o
20080         * ipa-comdats.c: New file.
20081
20082 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20083
20084         * ipa.c (update_visibility_by_resolution_info): New function.
20085         (function_and_variable_visibility): Use it.
20086
20087 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20088
20089         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
20090         New functions.
20091         (FOR_EACH_DEFINED_SYMBOL): New macro.
20092         (varpool_first_static_initializer, varpool_next_static_initializer,
20093         varpool_first_defined_variable, varpool_next_defined_variable):
20094         Fix comments.
20095         (symtab_in_same_comdat_p): Correctly deal with inline functions.
20096
20097 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20098
20099         * ggc-page.c (ggc_handle_finalizers): Add comment.
20100
20101 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20102
20103         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
20104         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
20105         (ggc_internal_cleared_alloc): Likewise.
20106         * ggc-page.c (finalizer): New class.
20107         (vec_finalizer): Likewise.
20108         (globals::finalizers): New member.
20109         (globals::vec_finalizers): Likewise.
20110         (ggc_internal_alloc): Record the finalizer if any for the block being
20111         allocated.
20112         (ggc_handle_finalizers): New function.
20113         (ggc_collect): Call ggc_handle_finalizers.
20114         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
20115         finalizer.
20116         (ggc_internal_cleared_alloc): Likewise.
20117         (finalize): New function.
20118         (need_finalization_p): Likewise.
20119         (ggc_alloc): Install the type's destructor as the finalizer if it
20120         might do something.
20121         (ggc_cleared_alloc): Likewise.
20122         (ggc_vec_alloc): Likewise.
20123         (ggc_cleared_vec_alloc): Likewise.
20124
20125 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20126
20127         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
20128
20129 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20130
20131         * alias.c (record_alias_subset): Adjust.
20132         * bitmap.c (bitmap_element_allocate): Likewise.
20133         (bitmap_gc_alloc_stat): Likewise.
20134         * cfg.c (init_flow): Likewise.
20135         (alloc_block): Likewise.
20136         (unchecked_make_edge): Likewise.
20137         * cfgloop.c (alloc_loop): Likewise.
20138         (flow_loops_find): Likewise.
20139         (rescan_loop_exit): Likewise.
20140         * cfgrtl.c (init_rtl_bb_info): Likewise.
20141         * cgraph.c (insert_new_cgraph_node_version): Likewise.
20142         (cgraph_allocate_node): Likewise.
20143         (cgraph_create_edge_1): Likewise.
20144         (cgraph_allocate_init_indirect_info): Likewise.
20145         * cgraphclones.c (cgraph_clone_edge): Likewise.
20146         * cgraphunit.c (add_asm_node): Likewise.
20147         (init_lowered_empty_function): Likewise.
20148         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
20149         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
20150         (alpha_use_linkage): Likewise.
20151         * config/arc/arc.c (arc_init_machine_status): Likewise.
20152         * config/arm/arm.c (arm_init_machine_status): Likewise.
20153         * config/avr/avr.c (avr_init_machine_status): Likewise.
20154         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
20155         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
20156         * config/cris/cris.c (cris_init_machine_status): Likewise.
20157         * config/darwin.c (machopic_indirection_name): Likewise.
20158         (darwin_build_constant_cfstring): Likewise.
20159         (darwin_enter_string_into_cfstring_table): Likewise.
20160         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
20161         * config/frv/frv.c (frv_init_machine_status): Likewise.
20162         * config/i386/i386.c (get_dllimport_decl): Likewise.
20163         (ix86_init_machine_status): Likewise.
20164         (assign_386_stack_local): Likewise.
20165         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
20166         (i386_pe_maybe_record_exported_symbol): Likewise.
20167         (i386_pe_record_stub): Likewise.
20168         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
20169         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
20170         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
20171         (m32c_note_pragma_address): Likewise.
20172         * config/mep/mep.c (mep_init_machine_status): Likewise.
20173         (mep_note_pragma_flag): Likewise.
20174         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
20175         (mips16_local_alias): Likewise.
20176         (mips_init_machine_status): Likewise.
20177         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
20178         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
20179         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
20180         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
20181         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
20182         * config/pa/pa.c (pa_init_machine_status): Likewise.
20183         (pa_get_deferred_plabel): Likewise.
20184         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
20185         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
20186         (rs6000_init_machine_status): Likewise.
20187         (output_toc): Likewise.
20188         * config/s390/s390.c (s390_init_machine_status): Likewise.
20189         * config/score/score.c (score_output_external): Likewise.
20190         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
20191         * config/spu/spu.c (spu_init_machine_status): Likewise.
20192         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
20193         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
20194         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
20195         * coverage.c (coverage_end_function): Likewise.
20196         * dbxout.c (dbxout_init): Likewise.
20197         * doc/gty.texi: Don't mention variable_size attribute.
20198         * dwarf2cfi.c (new_cfi): Adjust.
20199         (new_cfi_row): Likewise.
20200         (copy_cfi_row): Likewise.
20201         (create_cie_data): Likewise.
20202         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
20203         (new_loc_descr): Likewise.
20204         (find_AT_string_in_table): Likewise.
20205         (add_addr_table_entry): Likewise.
20206         (new_die): Likewise.
20207         (add_var_loc_to_decl): Likewise.
20208         (clone_die): Likewise.
20209         (clone_as_declaration): Likewise.
20210         (break_out_comdat_types): Likewise.
20211         (new_loc_list): Likewise.
20212         (add_loc_descr_to_each): Likewise.
20213         (add_location_or_const_value_attribute): Likewise.
20214         (add_linkage_name): Likewise.
20215         (lookup_filename): Likewise.
20216         (dwarf2out_var_location): Likewise.
20217         (new_line_info_table): Likewise.
20218         (dwarf2out_init): Likewise.
20219         (mem_loc_descriptor): Likewise.
20220         (loc_descriptor): Likewise.
20221         (add_const_value_attribute): Likewise.
20222         (tree_add_const_value_attribute): Likewise.
20223         (comp_dir_string): Likewise.
20224         (dwarf2out_vms_debug_main_pointer): Likewise.
20225         (string_cst_pool_decl): Likewise.
20226         * emit-rtl.c (set_mem_attrs): Likewise.
20227         (get_reg_attrs): Likewise.
20228         (start_sequence): Likewise.
20229         (init_emit): Likewise.
20230         (init_emit_regs): Likewise.
20231         * except.c (init_eh_for_function): Likewise.
20232         (gen_eh_region): Likewise.
20233         (gen_eh_region_catch): Likewise.
20234         (gen_eh_landing_pad): Likewise.
20235         (add_call_site): Likewise.
20236         * function.c (add_frame_space): Likewise.
20237         (insert_temp_slot_address): Likewise.
20238         (assign_stack_temp_for_type): Likewise.
20239         (get_hard_reg_initial_val): Likewise.
20240         (allocate_struct_function): Likewise.
20241         (prepare_function_start): Likewise.
20242         (types_used_by_var_decl_insert): Likewise.
20243         * gengtype.c (variable_size_p): Remove function.
20244         (enum alloc_quantity): Remove enum.
20245         (write_typed_alloc_def): Remove function.
20246         (write_typed_struct_alloc_def): Likewise.
20247         (write_typed_typedef_alloc_def): Likewise.
20248         (write_typed_alloc_defns): Likewise.
20249         (main): Adjust.
20250         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
20251         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
20252         * ggc.h (ggc_alloc): new function.
20253         (ggc_cleared_alloc): Likewise.
20254         (ggc_vec_alloc): Template on type of vector element, and remove
20255         element size argument.
20256         (ggc_cleared_vec_alloc): Likewise.
20257         * gimple.c (gimple_build_omp_for): Adjust.
20258         (gimple_copy): Likewise.
20259         * ipa-cp.c (get_replacement_map): Likewise.
20260         (find_aggregate_values_for_callers_subset): Likewise.
20261         (known_aggs_to_agg_replacement_list): Likewise.
20262         * ipa-devirt.c (get_odr_type): Likewise.
20263         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
20264         (read_agg_replacement_chain): Likewise.
20265         * loop-iv.c (get_simple_loop_desc): Likewise.
20266         * lto-cgraph.c (input_node_opt_summary): Likewise.
20267         * lto-section-in.c (lto_new_in_decl_state): Likewise.
20268         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
20269         (input_eh_region): Likewise.
20270         (input_eh_lp): Likewise.
20271         (input_cfg): Likewise.
20272         * optabs.c (set_optab_libfunc): Likewise.
20273         (init_tree_optimization_optabs): Likewise.
20274         (set_conv_libfunc): Likewise.
20275         * passes.c (do_per_function_toporder): Likewise.
20276         * rtl.h: Don't use variable_size gty attribute.
20277         * sese.c (if_region_set_false_region): Adjust.
20278         * stringpool.c (gt_pch_save_stringpool): Likewise.
20279         * target-globals.c (save_target_globals): Likewise.
20280         * toplev.c (general_init): Likewise.
20281         * trans-mem.c (record_tm_replacement): Likewise.
20282         (split_bb_make_tm_edge): Likewise.
20283         * tree-cfg.c (move_sese_region_to_fn): Likewise.
20284         * tree-data-ref.h (lambda_vector_new): Likewise.
20285         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
20286         * tree-iterator.c (tsi_link_before): Likewise.
20287         (tsi_link_after): Likewise.
20288         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
20289         * tree-ssa-loop-niter.c (record_estimate): Likewise.
20290         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
20291         * tree-ssa-operands.h: Don't use variable_size gty attribute.
20292         * tree-ssa.c (init_tree_ssa): Adjust.
20293         * tree-ssanames.c (set_range_info): Likewise.
20294         (get_ptr_info): Likewise.
20295         (duplicate_ssa_name_ptr_info): Likewise.
20296         (duplicate_ssa_name_range_info): Likewise.
20297         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
20298         (unpack_ts_fixed_cst_value_fields): Likewise.
20299         * tree.c (build_fixed): Likewise.
20300         (build_real): Likewise.
20301         (build_string): Likewise.
20302         (decl_priority_info): Likewise.
20303         (decl_debug_expr_insert): Likewise.
20304         (decl_value_expr_insert): Likewise.
20305         (decl_debug_args_insert): Likewise.
20306         (type_hash_add): Likewise.
20307         (build_omp_clause): Likewise.
20308         * ubsan.c (decl_for_type_insert): Likewise.
20309         * varasm.c (get_unnamed_section): Likewise.
20310         (get_noswitch_section): Likewise.
20311         (get_section): Likewise.
20312         (get_block_for_section): Likewise.
20313         (create_block_symbol): Likewise.
20314         (build_constant_desc): Likewise.
20315         (create_constant_pool): Likewise.
20316         (force_const_mem): Likewise.
20317         (record_tm_clone_pair): Likewise.
20318         * varpool.c (varpool_create_empty_node): Likewise.
20319
20320 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20321
20322         * dwarf2out.c (tree_add_const_value_attribute): Call
20323         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
20324         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
20325         instead of ggc_internal_<x>alloc_stat.
20326         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
20327         (ggc_realloc): Likewise.
20328         * ggc-none.c (ggc_internal_alloc): Likewise.
20329         (ggc_internal_cleared_alloc): Likewise.
20330         * ggc-page.c: Likewise.
20331         * ggc.h (ggc_internal_alloc_stat): Likewise.
20332         (ggc_internal_alloc): Remove macro.
20333         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
20334         (ggc_internal_cleared_alloc): Remove macro.
20335         (GGC_RESIZEVEC): Adjust.
20336         (ggc_resizevar): Remove macro.
20337         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
20338         (ggc_internal_cleared_vec_alloc_stat): Likewise.
20339         (ggc_internal_vec_cleared_alloc): Remove macro.
20340         (ggc_alloc_atomic_stat): Drop _stat suffix.
20341         (ggc_alloc_atomic): Remove macro.
20342         (ggc_alloc_cleared_atomic): Remove macro.
20343         (ggc_alloc_string_stat): Drop _stat suffix.
20344         (ggc_alloc_string): Remove macro.
20345         (ggc_alloc_rtx_def_stat): Adjust.
20346         (ggc_alloc_tree_node_stat): Likewise.
20347         (ggc_alloc_cleared_tree_node_stat): Likewise.
20348         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
20349         (ggc_alloc_cleared_simd_clone_stat): Likewise.
20350         * gimple.c (gimple_build_omp_for): Likewise.
20351         (gimple_copy): Likewise.
20352         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
20353         * toplev.c (realloc_for_line_map): Adjust.
20354         * tree-data-ref.h (lambda_vector_new): Likewise.
20355         * tree-phinodes.c (allocate_phi_node): Likewise.
20356         * tree.c (grow_tree_vec_stat): Likewise.
20357         * vec.h (va_gc::reserve): Adjust.
20358
20359 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
20360
20361         * config/microblaze/microblaze.c (break_handler): New Declaration.
20362         (microblaze_break_function_p,microblaze_is_break_handler): New.
20363         (compute_frame_size): Use microblaze_break_function_p.
20364         Add the test of break_handler.
20365         (microblaze_function_prologue) : Add the test of variable
20366         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
20367         (microblaze_function_epilogue) : Add the test of break_handler.
20368         (microblaze_globalize_label) : Add the test of break_handler.
20369         Check the name by BREAK_HANDLER_NAME.
20370
20371         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
20372
20373         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
20374         microblaze_is_break_handler test.
20375         (call_internal1,call_value_intern): Use microblaze_break_function_p.
20376         Use SYMBOL_REF_DECL.
20377
20378         * config/microblaze/microblaze-protos.h
20379         (microblaze_break_function_p,microblaze_is_break_handler):
20380         New Declaration.
20381
20382         * doc/extend.texi (MicroBlaze break_handler Functions): Document
20383         new MicroBlaze break_handler functions.
20384
20385 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
20386
20387         * doc/extend.texi (Size of an asm): Move node text according
20388         to its @menu entry position.
20389
20390 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
20391
20392         PR tree-optimization/61140
20393         PR tree-optimization/61150
20394         PR tree-optimization/61197
20395         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
20396
20397 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
20398
20399         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
20400
20401 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
20402
20403         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
20404         __SIZEOF_INT128__ is defined.
20405
20406 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
20407
20408         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
20409         (rs6000_delegitimize_address): Use it.
20410
20411 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
20412
20413         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
20414         inplace argument.  Store the new address in the original MEM when true.
20415         * emit-rtl.c (change_address_1): Likewise.
20416         (adjust_address_1, adjust_automodify_address_1, offset_address):
20417         Update accordingly.
20418         * rtl.h (plus_constant): Add an inplace argument.
20419         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
20420         when true.  Avoid generating (plus X (const_int 0)).
20421         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
20422         in-place.  Pass true to plus_constant.
20423         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
20424
20425 2014-05-16  Dehao Chen  <dehao@google.com>
20426
20427         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
20428
20429 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
20430
20431         PR target/54089
20432         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
20433         patterns.
20434         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
20435
20436 2014-05-16  Dehao Chen  <dehao@google.com>
20437
20438         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
20439         optimize_function_for_size_p.
20440         * regs.h (REG_FREQ_FROM_BB): Likewise.
20441
20442 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
20443
20444         PR target/51244
20445         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
20446         negt_reg_operand cases.
20447         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
20448         predicate.
20449         * config/sh/predicates.md (cbranch_treg_value): Simplify.
20450
20451 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
20452
20453         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
20454         target variants.
20455
20456 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
20457
20458         Revert:
20459         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
20460
20461         * tree-cfg.c (dump_function_to_file): Dump the return type of
20462         functions, in a line to itself before the function body, mimicking
20463         the layout of a C function.
20464
20465 2014-05-16  Dehao Chen  <dehao@google.com>
20466
20467         * cfghooks.c (make_forwarder_block): Use direct computation to
20468         get fall-through edge's count and frequency.
20469
20470 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
20471
20472         * config/arc/arc.c (arc_init): Fix typo in error message.
20473         * config/i386/i386.c (ix86_expand_builtin): Likewise.
20474         (split_stack_prologue_scratch_regno): Likewise.
20475         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
20476         word from error message.
20477
20478 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
20479
20480         * ira-costs.c: Fix typo in comment.
20481
20482 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
20483
20484         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
20485
20486 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
20487
20488         * varpool.c (dump_varpool_node): Dump write-only flag.
20489         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
20490         write-only flag.
20491         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
20492         write-only variables.
20493         * ipa.c (process_references): New function.
20494         (set_readonly_bit): New function.
20495         (set_writeonly_bit): New function.
20496         (clear_addressable_bit): New function.
20497         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
20498         fix handling of aliases.
20499         * cgraph.h (struct varpool_node): Add writeonly flag.
20500
20501 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
20502
20503         PR rtl-optimization/60969
20504         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
20505         Calculate costs for this case.
20506
20507 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
20508
20509         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
20510         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
20511
20512 2014-05-16  Richard Biener  <rguenther@suse.de>
20513
20514         PR tree-optimization/61194
20515         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
20516         bool patterns ending in a COND_EXPR.
20517
20518 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20519
20520         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
20521
20522 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20523
20524         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
20525         where we were unable to cost an RTX.
20526
20527 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20528
20529         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
20530         HIGH, LO_SUM.
20531
20532 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20533             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20534
20535         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
20536
20537 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20538             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20539
20540         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
20541         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
20542
20543 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20544             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20545
20546         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
20547         operators.
20548
20549 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20550             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20551
20552         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
20553         DIV/MOD.
20554
20555 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20556             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20557
20558         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
20559         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
20560
20561 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20562             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20563
20564         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
20565         rotates and shifts.
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_rtx_costs): Cost
20571         ZERO_EXTEND and SIGN_EXTEND better.
20572
20573 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20574             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20575
20576         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
20577         logical operations.
20578
20579 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20580             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20581
20582         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
20583         costs when costing loads and stores to memory.
20584
20585 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20586             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
20587
20588         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
20589         for SET RTX.
20590
20591 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20592
20593         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
20594
20595 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20596             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20597
20598         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
20599         to...
20600         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
20601         well formed.
20602         (aarch64_rtx_mult_cost): New.
20603         (aarch64_rtx_costs): Use it, refactor as appropriate.
20604
20605 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20606             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20607
20608         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
20609         emit instructions, return number of instructions which would
20610         be emitted.
20611         (aarch64_add_constant): Update call to aarch64_build_constant.
20612         (aarch64_output_mi_thunk): Likewise.
20613         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
20614         a CONST_DOUBLE.
20615
20616 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20617
20618         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
20619         (TARGET_RTX_COSTS): Call it.
20620
20621 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20622
20623         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
20624         (cortexa57_vector_cost): Likewise.
20625         (cortexa57_tunings): Use them.
20626
20627 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20628
20629         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
20630         (cpu_addrcost_table): Use it.
20631         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
20632         (aarch64_address_cost): Rewrite using aarch64_classify_address,
20633         move it.
20634
20635 2014-05-16  Richard Biener  <rguenther@suse.de>
20636
20637         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
20638         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
20639         (visit_phi): Ignore edges marked as not executable.
20640         (class cond_dom_walker): New.
20641         (cond_dom_walker::before_dom_children): Value-number
20642         control statements and mark successor edges as not
20643         executable if possible.
20644         (run_scc_vn): First walk all control statements in
20645         dominator order, marking edges as not executable.
20646         * tree-inline.c (copy_edges_for_bb): Be not confused
20647         about random edge flags.
20648
20649 2014-05-16  Richard Biener  <rguenther@suse.de>
20650
20651         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
20652
20653 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
20654
20655         PR target/61193
20656         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
20657         (__TM_simple_begin): Use it.
20658         (__TM_begin): Likewise.
20659
20660 2014-05-15  Martin Jambor  <mjambor@suse.cz>
20661
20662         PR ipa/61085
20663         * ipa-prop.c (update_indirect_edges_after_inlining): Check
20664         type_preserved flag when the indirect edge is polymorphic.
20665
20666 2014-05-15  Martin Jambor  <mjambor@suse.cz>
20667
20668         PR tree-optimization/61090
20669         * tree-sra.c (sra_modify_expr): Pass the current gsi to
20670         build_ref_for_model.
20671
20672 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20673
20674         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
20675         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
20676
20677 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
20678
20679         PR tree-optimization/61158
20680         * fold-const.c (fold_binary_loc): If X is zero-extended and
20681         shiftc >= prec, make sure zerobits is all ones instead of
20682         invoking undefined behavior.
20683
20684 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20685
20686         * regcprop.h: New file.
20687         * regcprop.c (skip_debug_insn_p): New decl.
20688         (replace_oldest_value_reg): Check skip_debug_insn_p.
20689         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
20690         * shrink-wrap.c: Include regcprop.h.
20691         (prepare_shrink_wrap): Call
20692         copyprop_hardreg_forward_bb_without_debug_insn.
20693
20694 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20695
20696         * shrink-wrap.h: Update comment.
20697         * shrink-wrap.c: Update comment.
20698         (next_block_for_reg): Rename to live_edge_for_reg.
20699         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
20700         (move_insn_for_shrink_wrap): Split live_edge.
20701         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
20702
20703 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
20704
20705         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
20706         Delete.
20707         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
20708         * config/sparc/sparc.md (fptype_ut699): New attribute.
20709         (in_branch_delay): Return false if -mfix-ut699 is specified and
20710         fptype_ut699 is set to single.
20711         (truncdfsf2): Add fptype_ut699 attribute.
20712         (fix_truncdfsi2): Likewise.
20713         (floatsisf2): Change fptype attribute.
20714         (fix_truncsfsi2): Likewise.
20715         (negtf2_notv9): Delete.
20716         (negtf2_v9): Likewise.
20717         (negtf2_hq): New instruction.
20718         (negtf2): New instruction and splitter.
20719         (negdf2_notv9): Rewrite.
20720         (abstf2_notv9): Delete.
20721         (abstf2_hq_v9): Likewise.
20722         (abstf2_v9): Likewise.
20723         (abstf2_hq): New instruction.
20724         (abstf2): New instruction and splitter.
20725         (absdf2_notv9): Rewrite.
20726
20727 2014-05-14  Cary Coutant  <ccoutant@google.com>
20728
20729         PR debug/61013
20730         * opts.c (common_handle_option): Don't special-case "-g".
20731         (set_debug_level): Default to at least level 2 with "-g".
20732
20733 2014-05-14  DJ Delorie  <dj@redhat.com>
20734
20735         * config/msp430/msp430.c (msp430_builtin): Add
20736         MSP430_BUILTIN_DELAY_CYCLES.
20737         (msp430_init_builtins): Register void __delay_cycles(long long).
20738         (msp430_builtin_decl): Add it.
20739         (cg_magic_constant): New.
20740         (msp430_expand_delay_cycles): New.
20741         (msp430_expand_builtin): Call it.
20742         (msp430_print_operand_raw): Change integer printing from "int" to
20743         HOST_WIDE_INT.
20744         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
20745         (delay_cycles_start): New.
20746         (delay_cycles_end): New.
20747         (delay_cycles_32): New.
20748         (delay_cycles_32x): New.
20749         (delay_cycles_16): New.
20750         (delay_cycles_16x): New.
20751         (delay_cycles_2): New.
20752         (delay_cycles_1): New.
20753         * doc/extend.texi: Document __delay_cycles().
20754
20755 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
20756
20757         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
20758         length attribute computation.
20759
20760 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
20761
20762         PR debug/61188
20763         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
20764
20765 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
20766
20767         PR target/61084
20768         * config/sparc/sparc.md: Fix types of low and high in DI constant
20769         splitter.  Use gen_int_mode in some other splitters.
20770
20771 2014-05-14  Martin Jambor  <mjambor@suse.cz>
20772
20773         PR ipa/60897
20774         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
20775
20776 2014-05-14  James Norris  <jnorris@codesourcery.com>
20777
20778         * omp-low.c (expand_parallel_call): Remove shadow variable.
20779         (expand_omp_taskreg): Likewise.
20780
20781 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
20782
20783         * common/config/i386/i386-common.c
20784         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
20785         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
20786         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
20787         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
20788         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
20789         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
20790         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
20791         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
20792         xsavecintrin.h, xsavesintrin.h.
20793         (x86_64-*-*): Ditto.
20794         * config/i386/clflushoptintrin.h: New.
20795         * config/i386/xsavecintrin.h: Ditto.
20796         * config/i386/xsavesintrin.h: Ditto.
20797         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
20798         (bit_XSAVES): Ditto.
20799         (bit_XSAVES): Ditto.
20800         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
20801         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
20802         -mno-clflushopt.
20803         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
20804         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
20805         OPTION_MASK_ISA_XSAVES.
20806         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
20807         -mxsavec, -mxsaves.
20808         (PTA_CLFLUSHOPT) Define.
20809         (PTA_XSAVEC): Ditto.
20810         (PTA_XSAVES): Ditto.
20811         (ix86_option_override_internal): Handle new options.
20812         (ix86_valid_target_attribute_inner_p): Ditto.
20813         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
20814         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
20815         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
20816         (bdesc_special_args): Add __builtin_ia32_xsaves,
20817         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
20818         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
20819         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
20820         (ix86_expand_builtin): Handle new builtins.
20821         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
20822         (TARGET_CLFLUSHOPT_P): Ditto.
20823         (TARGET_XSAVEC): Ditto.
20824         (TARGET_XSAVEC_P): Ditto.
20825         (TARGET_XSAVES): Ditto.
20826         (TARGET_XSAVES_P): Ditto.
20827         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
20828         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
20829         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
20830         (ANY_XRSTOR): New.
20831         (ANY_XRSTOR64): Ditto.
20832         (xrstor): Ditto.
20833         (xrstor): Change into <xrstor>.
20834         (xrstor_rex64): Change into <xrstor>_rex64.
20835         (xrstor64): Change into <xrstor>64
20836         (clflushopt): New.
20837         * config/i386/i386.opt (mclflushopt): New.
20838         (mxsavec): Ditto.
20839         (mxsaves): Ditto.
20840         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
20841         xsavecintrin.h.
20842         * doc/invoke.texi: Document new options.
20843
20844 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
20845
20846         PR rtl-optimization/60866
20847         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
20848         Default it to -1.  Pass it down to init_simplejump_data.
20849         (init_simplejump_data): New parameter old_seqno.  Pass it down
20850         to get_seqno_for_a_jump.
20851         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
20852         initializing new jump seqno as a last resort.  Add comment.
20853         (sel_redirect_edge_and_branch): Save old seqno of the conditional
20854         jump and pass it down to sel_init_new_insn.
20855         (sel_redirect_edge_and_branch_force): Likewise.
20856
20857 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
20858
20859         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
20860         shifted values to avoid build warning.
20861
20862 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
20863
20864         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
20865         * cfgrtl.c (rtl_merge_blocks): Fix comment.
20866         (cfg_layout_merge_blocks): Likewise.
20867         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
20868
20869 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
20870
20871         PR rtl-optimization/60901
20872         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
20873         bb predecessor belongs to the same scheduling region.  Adjust comment.
20874
20875 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
20876
20877         * doc/sourcebuild.texi: (dfp_hw): Document.
20878         (p8vector_hw): Likewise.
20879         (powerpc_eabi_ok): Likewise.
20880         (powerpc_elfv2): Likewise.
20881         (powerpc_htm_ok): Likewise.
20882         (ppc_recip_hw): Likewise.
20883         (vsx_hw): Likewise.
20884
20885 2014-05-13  Cary Coutant  <ccoutant@google.com>
20886
20887         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
20888
20889 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
20890
20891         * gengtype-parse.c (require3): Eliminate in favor of...
20892         (require4): New.
20893         (require_template_declaration): Update to support optional single *
20894         on a type.
20895
20896         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
20897         (create_user_defined_type): Handle a single level of explicit
20898         pointerness within template arguments.
20899         (struct write_types_data): Add field "kind".
20900         (filter_type_name): Handle "*" character.
20901         (write_user_func_for_structure_ptr): Require a write_types_data
20902         rather than just a prefix string, so that we can look up the kind
20903         of the wtd and use it as an index into wrote_user_func_for_ptr,
20904         ensuring that such functions are written at most once.  Support
20905         subclasses by invoking the marking function of the ultimate base class.
20906         (write_user_func_for_structure_body): Require a write_types_data
20907         rather than just a prefix string, so that we can pass this to
20908         write_user_func_for_structure_ptr.
20909         (write_func_for_structure): Likewise.
20910         (ggc_wtd): Add initializer of new "kind" field.
20911         (pch_wtd): Likewise.
20912
20913         * gengtype.h (enum write_types_kinds): New.
20914         (struct type): Add field wrote_user_func_for_ptr to the "s"
20915         union member.
20916
20917 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
20918
20919         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
20920         instead of const_binop.
20921         (fold_binary_loc): Likewise.
20922
20923 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
20924
20925         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
20926         calculation to match get_ref_base_and_extent.
20927
20928 2014-05-13  Catherine Moore  <clm@codesourcery.com>
20929             Sandra Loosemore  <sandra@codesourcery.com>
20930
20931         * configure.ac: Fix assembly for explicit JALR relocation check.
20932         * configure: Regenerate.
20933
20934 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20935
20936         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
20937         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
20938         Remove associated type declarations and initialisations.
20939         (arm_expand_neon_builtin): Likewise.
20940         (neon_emit_pair_result_insn): Delete.
20941         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
20942         * config/arm/neon.md (neon_vtrn<mode>): Delete.
20943         (neon_vzip<mode>): Likewise.
20944         (neon_vuzp<mode>): Likewise.
20945
20946 2014-05-13  Richard Biener  <rguenther@suse.de>
20947
20948         PR ipa/60973
20949         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
20950         it needs revisiting whether the call still may be tail-called.
20951
20952 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
20953
20954         * rtl.def (SYMBOL_REF): Remove middle "0" field.
20955         * rtl.h (block_symbol): Reduce number of fields to 2.
20956         (rtx_def): Add u2.symbol_ref_flags.
20957         (SYMBOL_REF_FLAGS): Use it.
20958         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
20959         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
20960         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
20961         Lower index of SYMBOL_REF_DATA.
20962         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
20963         Print SYMBOL_REF_FLAGS at the same time.
20964         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
20965
20966 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
20967
20968         * rtl.def (VAR_LOCATION): Remove "i" field.
20969         * rtl.h (rtx_def): Add u2.var_location_status.
20970         (PAT_VAR_LOCATION_STATUS): Use it.
20971         (gen_rtx_VAR_LOCATION): Declare.
20972         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
20973         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
20974         * var-tracking.c (emit_note_insn_var_location): Remove casts.
20975
20976 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
20977
20978         * rtl.def (scratch): Fix outdated comment and remove "0" field.
20979         * gengtype.c (adjust_field_rtx_def): Update accordingly.
20980
20981 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
20982
20983         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
20984         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
20985         * rtl.h (rtx_def): Add insn_uid to u2 field.
20986         (RTX_FLAG_CHECK8): Delete in favor of...
20987         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
20988         (INSN_DELETED_P): Update accordingly.
20989         (INSN_UID): Use u2.insn_uid.
20990         (INSN_CHAIN_CODE_P): Define.
20991         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
20992         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
20993         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
20994         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
20995         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
20996         indices accordingly.
20997         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
20998         Update indices for insn-chain rtxes.
20999         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
21000         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
21001         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
21002         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
21003         * combine.c (try_combine): Likewise.
21004         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21005
21006 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21007
21008         * rtl.def (REG): Remove middle field.
21009         * rtl.h (rtx_def): Add orignal_regno to u2.
21010         (ORIGINAL_REGNO): Use it instead of field 1.
21011         (REG_ATTRS): Lower field index accordingly.
21012         * gengtype.c (adjust_field_rtx_def): Remove handling of
21013         ORIGINAL_REGNO.  Move REG_ATTRS index down.
21014         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
21015         code that prints the REGNO.
21016
21017 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21018
21019         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
21020         GENERATOR_FILE.
21021
21022 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21023
21024         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
21025
21026 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
21027
21028         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
21029         (alloc_iv): Lower base expressions containing ADDR_EXPR.
21030
21031 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
21032
21033         * config/aarch64/aarch64-protos.h
21034         (aarch64_hard_regno_caller_save_mode): New prototype.
21035         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
21036         New function.
21037         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
21038
21039 2014-05-13  Christian Bruel  <christian.bruel@st.com>
21040
21041         * target.def (mode_switching): New hook vector.
21042         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
21043         (mode_exit, modepriority_to_mode): Likewise.
21044         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
21045         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21046         * target.h: Include tm.h and hard-reg-set.h.
21047         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
21048         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
21049         * doc/tm.texi Regenerate.
21050         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
21051         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21052         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
21053         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
21054         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
21055         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21056         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
21057         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
21058         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
21059         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
21060         (ix86_emit_mode_set): Hookify.
21061         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
21062         Delete.
21063         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21064         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
21065         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
21066         (epiphany_mode_priority_to_mode): Remove declaration.
21067         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
21068         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
21069         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
21070         Likewise.
21071         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
21072         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
21073         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
21074
21075 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
21076
21077         PR target/61060
21078         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
21079         is const0_rtx, return immediately.  Don't test count == 0 when
21080         it is always true.
21081
21082 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
21083
21084         * Makefile.in: add shrink-wrap.o.
21085         * config/i386/i386.c: include "shrink-wrap.h"
21086         * function.c: Likewise.
21087         (requires_stack_frame_p, next_block_for_reg,
21088         move_insn_for_shrink_wrap, prepare_shrink_wrap,
21089         dup_block_and_redirect): Move to shrink-wrap.c
21090         (thread_prologue_and_epilogue_insns): Extract three code segments
21091         as functions in shrink-wrap.c
21092         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
21093         shrink-wrap.h
21094         * shrink-wrap.c: New file.
21095         * shrink-wrap.h: New file.
21096
21097 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
21098
21099         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
21100         reference to Solaris.
21101
21102 2014-05-12  Mike Stump  <mikestump@comcast.net>
21103
21104         PR other/31778
21105         * genattrtab.c (filename): Add.
21106         (convert_set_attr_alternative): Improve error message.
21107         (check_defs): Restore read_md_filename for error messages.
21108         (gen_insn): Save filename.
21109
21110 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
21111
21112         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
21113         -fno-local-ivars and -fivar-visibility.
21114         * c-family/c.opt: Make -Wshadow also implicitly enable
21115         -Wshadow-ivar.
21116
21117 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
21118
21119         * doc/tm.texi: Remove reference to deleted macro.
21120         * doc/tm.texi.in: Likewise.
21121
21122 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
21123
21124         PR target/60991
21125         * config/avr/avr.c (avr_out_store_psi): Use correct constant
21126         to restore Y.
21127
21128 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
21129
21130         PR libgcc/61152
21131         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
21132         * config/arm/aout.h (License): Same.
21133         * config/arm/bpabi.h (License): Same.
21134         * config/arm/elf.h (License): Same.
21135         * config/arm/linux-elf.h (License): Same.
21136         * config/arm/linux-gas.h (License): Same.
21137         * config/arm/netbsd-elf.h (License): Same.
21138         * config/arm/uclinux-eabi.h (License): Same.
21139         * config/arm/uclinux-elf.h (License): Same.
21140         * config/arm/vxworks.h (License): Same.
21141
21142 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
21143
21144         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
21145         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
21146         number of operands to 3.
21147         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
21148         * tree-nested.c (convert_nonlocal_omp_clauses,
21149         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
21150         * gimplify.c (gimplify_scan_omp_clauses): Handle
21151         OMP_CLAUSE_LINEAR_STMT.
21152         * omp-low.c (lower_rec_input_clauses): Fix typo.
21153         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
21154         cast between Fortran boolean_type_node and C _Bool if
21155         needed.
21156
21157 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
21158
21159         PR tree-optimization/61136
21160         * wide-int.h (multiple_of_p): Define a version that doesn't return
21161         the quotient.
21162         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
21163         integer_zerop/const_binop pair.
21164         (multiple_of_p): Likewise, converting both operands to widest_int
21165         precision.
21166
21167 2014-05-09  Teresa Johnson  <tejohnson@google.com>
21168
21169         * cgraphunit.c (analyze_functions): Use correct dump file.
21170
21171 2014-05-09  Florian Weimer  <fweimer@redhat.com>
21172
21173         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
21174         expand_used_vars.
21175         (stack_protect_return_slot_p): New function.
21176         (expand_used_vars): Call stack_protect_decl_p and
21177         stack_protect_return_slot_p for -fstack-protector-strong.
21178
21179 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
21180         Andrew Haley <aph@redhat.com>
21181         Richard Sandiford <rdsandiford@googlemail.com>
21182
21183         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
21184         pages.
21185
21186 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
21187
21188         PR middle-end/61111
21189         * fold-const.c (fold_binary_loc): Changed width of mask.
21190
21191 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
21192
21193         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
21194         unsigned int initializers for regno_in, regno_out.
21195
21196 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
21197
21198         PR target/61055
21199         * config/avr/avr.md (cc): Add new attribute set_vzn.
21200         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
21201         Set cc insn attribute to set_vzn instead of set_zn for alternatives
21202         with INC, DEC or NEG.
21203         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
21204         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
21205         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
21206
21207 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21208
21209         Revert:
21210         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21211
21212         * wide-int.cc (UTItype): Define.
21213         (UDWtype): Define for appropriate W_TYPE_SIZE.
21214
21215 2014-05-09  Richard Biener  <rguenther@suse.de>
21216
21217         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
21218         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
21219         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
21220         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
21221         ssa_propagate): Adjust.
21222
21223 2014-05-08  Jeff Law  <law@redhat.com>
21224
21225         PR tree-optimization/61009
21226         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
21227         tri-state rather than a boolean.  When a block is too big to
21228         thread through, inform caller via negative return value.
21229         (thread_across_edge): If a block was too big for normal threading,
21230         then it's too big for a joiner too, so remove temporary equivalences
21231         and return immediately.
21232
21233 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21234             Matthias Klose  <doko@ubuntu.com>
21235
21236         PR driver/61106
21237         * optc-gen.awk: Fix option handling for -Wunused-parameter.
21238
21239 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
21240
21241         PR target/59952
21242         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
21243
21244 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
21245
21246         PR target/61092
21247         * config/alpha/alpha.c: Include gimple-iterator.h.
21248         (alpha_gimple_fold_builtin): New function.  Move
21249         ALPHA_BUILTIN_UMULH folding from ...
21250         (alpha_fold_builtin): ... here.
21251         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
21252
21253 2014-05-08  Wei Mi  <wmi@google.com>
21254
21255         PR target/58066
21256         * config/i386/i386.c (ix86_compute_frame_layout): Update
21257         preferred_stack_boundary for call, expanded from tls descriptor.
21258         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
21259         to depend on SP register.
21260         (*tls_local_dynamic_base_32_gnu): Ditto.
21261         (*tls_local_dynamic_32_once): Ditto.
21262         (tls_global_dynamic_64_<mode>): Set
21263         ix86_tls_descriptor_calls_expanded_in_cfun.
21264         (tls_local_dynamic_base_64_<mode>): Ditto.
21265         (tls_global_dynamic_32): Set
21266         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
21267         to depend on SP register.
21268         (tls_local_dynamic_base_32): Ditto.
21269
21270 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21271
21272         * config/arm/arm_neon.h: Update comment.
21273         * config/arm/neon-docgen.ml: Delete.
21274         * config/arm/neon-gen.ml: Delete.
21275         * doc/arm-neon-intrinsics.texi: Update comment.
21276
21277 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21278
21279         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
21280         and v4sf versions.
21281         (vand, vorr, veor, vorn, vbic): Remove.
21282         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
21283         iterator.
21284         (neon_vsub_unspec): Likewise.
21285         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
21286
21287 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21288
21289         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
21290         (vadd_s16): Likewise.
21291         (vadd_s32): Likewise.
21292         (vadd_f32): Likewise.
21293         (vadd_u8): Likewise.
21294         (vadd_u16): Likewise.
21295         (vadd_u32): Likewise.
21296         (vadd_s64): Likewise.
21297         (vadd_u64): Likewise.
21298         (vaddq_s8): Likewise.
21299         (vaddq_s16): Likewise.
21300         (vaddq_s32): Likewise.
21301         (vaddq_s64): Likewise.
21302         (vaddq_f32): Likewise.
21303         (vaddq_u8): Likewise.
21304         (vaddq_u16): Likewise.
21305         (vaddq_u32): Likewise.
21306         (vaddq_u64): Likewise.
21307         (vmul_s8): Likewise.
21308         (vmul_s16): Likewise.
21309         (vmul_s32): Likewise.
21310         (vmul_f32): Likewise.
21311         (vmul_u8): Likewise.
21312         (vmul_u16): Likewise.
21313         (vmul_u32): Likewise.
21314         (vmul_p8): Likewise.
21315         (vmulq_s8): Likewise.
21316         (vmulq_s16): Likewise.
21317         (vmulq_s32): Likewise.
21318         (vmulq_f32): Likewise.
21319         (vmulq_u8): Likewise.
21320         (vmulq_u16): Likewise.
21321         (vmulq_u32): Likewise.
21322         (vsub_s8): Likewise.
21323         (vsub_s16): Likewise.
21324         (vsub_s32): Likewise.
21325         (vsub_f32): Likewise.
21326         (vsub_u8): Likewise.
21327         (vsub_u16): Likewise.
21328         (vsub_u32): Likewise.
21329         (vsub_s64): Likewise.
21330         (vsub_u64): Likewise.
21331         (vsubq_s8): Likewise.
21332         (vsubq_s16): Likewise.
21333         (vsubq_s32): Likewise.
21334         (vsubq_s64): Likewise.
21335         (vsubq_f32): Likewise.
21336         (vsubq_u8): Likewise.
21337         (vsubq_u16): Likewise.
21338         (vsubq_u32): Likewise.
21339         (vsubq_u64): Likewise.
21340         (vand_s8): Likewise.
21341         (vand_s16): Likewise.
21342         (vand_s32): Likewise.
21343         (vand_u8): Likewise.
21344         (vand_u16): Likewise.
21345         (vand_u32): Likewise.
21346         (vand_s64): Likewise.
21347         (vand_u64): Likewise.
21348         (vandq_s8): Likewise.
21349         (vandq_s16): Likewise.
21350         (vandq_s32): Likewise.
21351         (vandq_s64): Likewise.
21352         (vandq_u8): Likewise.
21353         (vandq_u16): Likewise.
21354         (vandq_u32): Likewise.
21355         (vandq_u64): Likewise.
21356         (vorr_s8): Likewise.
21357         (vorr_s16): Likewise.
21358         (vorr_s32): Likewise.
21359         (vorr_u8): Likewise.
21360         (vorr_u16): Likewise.
21361         (vorr_u32): Likewise.
21362         (vorr_s64): Likewise.
21363         (vorr_u64): Likewise.
21364         (vorrq_s8): Likewise.
21365         (vorrq_s16): Likewise.
21366         (vorrq_s32): Likewise.
21367         (vorrq_s64): Likewise.
21368         (vorrq_u8): Likewise.
21369         (vorrq_u16): Likewise.
21370         (vorrq_u32): Likewise.
21371         (vorrq_u64): Likewise.
21372         (veor_s8): Likewise.
21373         (veor_s16): Likewise.
21374         (veor_s32): Likewise.
21375         (veor_u8): Likewise.
21376         (veor_u16): Likewise.
21377         (veor_u32): Likewise.
21378         (veor_s64): Likewise.
21379         (veor_u64): Likewise.
21380         (veorq_s8): Likewise.
21381         (veorq_s16): Likewise.
21382         (veorq_s32): Likewise.
21383         (veorq_s64): Likewise.
21384         (veorq_u8): Likewise.
21385         (veorq_u16): Likewise.
21386         (veorq_u32): Likewise.
21387         (veorq_u64): Likewise.
21388         (vbic_s8): Likewise.
21389         (vbic_s16): Likewise.
21390         (vbic_s32): Likewise.
21391         (vbic_u8): Likewise.
21392         (vbic_u16): Likewise.
21393         (vbic_u32): Likewise.
21394         (vbic_s64): Likewise.
21395         (vbic_u64): Likewise.
21396         (vbicq_s8): Likewise.
21397         (vbicq_s16): Likewise.
21398         (vbicq_s32): Likewise.
21399         (vbicq_s64): Likewise.
21400         (vbicq_u8): Likewise.
21401         (vbicq_u16): Likewise.
21402         (vbicq_u32): Likewise.
21403         (vbicq_u64): Likewise.
21404         (vorn_s8): Likewise.
21405         (vorn_s16): Likewise.
21406         (vorn_s32): Likewise.
21407         (vorn_u8): Likewise.
21408         (vorn_u16): Likewise.
21409         (vorn_u32): Likewise.
21410         (vorn_s64): Likewise.
21411         (vorn_u64): Likewise.
21412         (vornq_s8): Likewise.
21413         (vornq_s16): Likewise.
21414         (vornq_s32): Likewise.
21415         (vornq_s64): Likewise.
21416         (vornq_u8): Likewise.
21417         (vornq_u16): Likewise.
21418         (vornq_u32): Likewise.
21419         (vornq_u64): Likewise.
21420
21421 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21422
21423         * wide-int.cc (UTItype): Define.
21424         (UDWtype): Define for appropriate W_TYPE_SIZE.
21425
21426 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
21427
21428         PR tree-optimization/59100
21429         * tree-ssa-phiopt.c: Include tree-inline.h.
21430         (neutral_element_p, absorbing_element_p): New functions.
21431         (value_replacement): Handle conditional binary operations with a
21432         neutral or absorbing element.
21433
21434 2014-05-08  Richard Biener  <rguenther@suse.de>
21435
21436         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
21437         folding the expression.
21438         (valueize_expr): Remove.
21439         (visit_reference_op_load): Do not valueize the result of
21440         vn_get_expr_for.
21441         (simplify_binary_expression): Likewise.
21442         (simplify_unary_expression): Likewise.
21443
21444 2014-05-08  Richard Biener  <rguenther@suse.de>
21445
21446         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
21447         looking at TYPE_ARG_TYPES.
21448
21449 2014-05-08  Richard Biener  <rguenther@suse.de>
21450
21451         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
21452         pointer propagation special-case.
21453
21454 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
21455
21456         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
21457         core part of address expressions.
21458
21459 2014-05-08  Alan Modra  <amodra@gmail.com>
21460
21461         PR target/60737
21462         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
21463         loads and stores when -mno-strict-align at any alignment.
21464         (expand_block_clear): Similarly.  Also correct calculation of
21465         instruction count.
21466
21467 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21468
21469         PR middle-end/39246
21470         * tree-complex.c (expand_complex_move): Keep line info when expanding
21471         complex move.
21472         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
21473         of complex expression. Use new argument to display correct location
21474         for values coming from phi statement.
21475         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
21476         (warn_uninitialized_phi): Pass location of phi argument to
21477         warn_uninit.
21478         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
21479         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
21480
21481 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
21482
21483         * config/rs6000/predicates.md (indexed_address_mem): New.
21484         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
21485         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
21486         fpstore_ux, fpstore_u.
21487         (sign_extend, indexed, update): New.
21488         (cell_micro): Adjust.
21489         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
21490         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
21491         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
21492         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
21493         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
21494         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
21495         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
21496         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
21497         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
21498         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
21499         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
21500         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
21501         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
21502         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
21503         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
21504
21505         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
21506         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
21507         *vsx_extract_<mode>_store): Adjust.
21508         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
21509         is_cracked_insn, insn_must_be_first_in_group,
21510         insn_must_be_last_in_group): Adjust.
21511
21512         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
21513         Adjust.
21514         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
21515         ppc440-fpstore): Adjust.
21516         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
21517         ppc476-fpstore): Adjust.
21518         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
21519         ppc601-fpstore): Adjust.
21520         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
21521         Adjust.
21522         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
21523         Adjust.
21524         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
21525         ppc7450-fpstore): Adjust.
21526         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
21527         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
21528         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
21529         Adjust.
21530         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
21531         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
21532         cell-fpstore, cell-fpstore-update): Adjust.
21533         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
21534         ppce300c3_store, ppce300c3_fpstore): Adjust.
21535         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
21536         e500mc_fpstore): Adjust.
21537         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
21538         e500mc64_store, e500mc64_fpstore): Adjust.
21539         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
21540         e5500_fpstore): Adjust.
21541         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
21542         e6500_fpstore): Adjust.
21543         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
21544         Adjust.
21545         * config/rs6000/power4.md (power4-load, power4-load-ext,
21546         power4-load-ext-update, power4-load-ext-update-indexed,
21547         power4-load-update-indexed, power4-load-update, power4-fpload,
21548         power4-fpload-update, power4-store, power4-store-update,
21549         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
21550         Adjust.
21551         * config/rs6000/power5.md (power5-load, power5-load-ext,
21552         power5-load-ext-update, power5-load-ext-update-indexed,
21553         power5-load-update-indexed, power5-load-update, power5-fpload,
21554         power5-fpload-update, power5-store, power5-store-update,
21555         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
21556         Adjust.
21557         * config/rs6000/power6.md (power6-load, power6-load-ext,
21558         power6-load-update, power6-load-update-indexed,
21559         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
21560         power6-fpload-update, power6-store, power6-store-update,
21561         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
21562         Adjust.
21563         * config/rs6000/power7.md (power7-load, power7-load-ext,
21564         power7-load-update, power7-load-update-indexed,
21565         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
21566         power7-fpload-update, power7-store, power7-store-update,
21567         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
21568         Adjust.
21569         * config/rs6000/power8.md (power8-load, power8-load-update,
21570         power8-load-ext, power8-load-ext-update, power8-fpload,
21571         power8-fpload-update, power8-store, power8-store-update-indexed,
21572         power8-fpstore, power8-fpstore-update): Adjust.
21573         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
21574         Adjust.
21575         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
21576         titan_lsu_store, titan_lsu_fpstore): Adjust.
21577         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
21578
21579 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
21580
21581         PR target/60884
21582         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
21583         unrolled byte insns.  Emit address increments after move insns.
21584
21585 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
21586
21587         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
21588         const_gimple, rather than a gimple.
21589         (gimple_call_builtin_p): Likewise, for the three variants.
21590
21591         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
21592         (gimple_call_builtin_p): Likewise, for the three variants.
21593
21594 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
21595
21596         PR tree-optimization/61095
21597         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
21598
21599 2014-05-07  Richard Biener  <rguenther@suse.de>
21600
21601         PR tree-optimization/61034
21602         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
21603         (maybe_skip_until): Use translate to take into account
21604         lattices when trying to do disambiguations.
21605         (get_continuation_for_phi_1): Likewise.
21606         (get_continuation_for_phi): Adjust for added translate arguments.
21607         (walk_non_aliased_vuses): Likewise.
21608         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
21609         (walk_non_aliased_vuses): Likewise.
21610         (call_may_clobber_ref_p_1): Declare.
21611         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
21612         calls.  Stop early if we are only supposed to disambiguate.
21613         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
21614
21615 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
21616
21617         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
21618         Emit an error when the function has arguments.
21619
21620 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
21621
21622         * cfgloop.h (unswitch_loops): Remove.
21623         * doc/passes.texi: Remove references to loop-unswitch.c
21624         * timevar.def (TV_LOOP_UNSWITCH): Remove.
21625
21626 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
21627
21628         * tree-vect-data-refs.c (vect_grouped_load_supported): New
21629         check for loads group of length 3.
21630         (vect_permute_load_chain): New permutations for loads group of
21631         length 3.
21632         * tree-vect-stmts.c (vect_model_load_cost): Change cost
21633         of vec_perm_shuffle for the new permutations.
21634
21635 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
21636
21637         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
21638         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
21639         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
21640         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
21641         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
21642         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
21643         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
21644         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
21645
21646 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
21647
21648         * loop-unswitch.c: Delete.
21649
21650 2014-05-07  Richard Biener  <rguenther@suse.de>
21651
21652         * config.gcc: Always set need_64bit_hwint to yes.
21653
21654 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
21655
21656         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
21657         of using optimize_size.
21658
21659 2014-05-06  Mike Stump  <mikestump@comcast.net>
21660
21661         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
21662
21663 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
21664
21665         * config/i386/sse.md (*mov<mode>_internal)
21666         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
21667         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
21668         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
21669         (*<code><mode>3, *andnot<mode>3<mask_name>)
21670         (<mask_codefor><code><mode>3<mask_name>): Only consider
21671         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
21672
21673 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
21674
21675         Revert:
21676         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
21677
21678         * lra-constraints.c (valid_address_p): Move earlier in file.
21679         Add a constraint argument to the address_info version.
21680         (satisfies_memory_constraint_p): New function.
21681         (satisfies_address_constraint_p): Likewise.
21682         (process_alt_operands, curr_insn_transform): Use them.
21683         (process_address): Pass the constraint to valid_address_p when
21684         checking address operands.
21685
21686 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
21687
21688         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
21689         to their respective blocks.  Fix inadvertent use of "node".
21690
21691 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
21692
21693         * emit-rtl.c (init_derived_machine_modes): New functionm, split
21694         out from...
21695         (init_emit_once): ...here.
21696         * rtl.h (init_derived_machine_modes): Declare.
21697         * toplev.c (do_compile): Call it even if no_backend.
21698
21699 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
21700             Mike Stump  <mikestump@comcast.net>
21701             Richard Sandiford  <rdsandiford@googlemail.com>
21702             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21703
21704         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
21705         (rtx_equal_for_memref_p): Update comment.
21706         (adjust_offset_for_component_ref): Use wide-int interfaces.
21707         * builtins.c (get_object_alignment_2): Likewise.
21708         (c_readstr): Likewise.
21709         (target_char_cast): Add comment.
21710         (determine_block_size): Use wide-int interfaces.
21711         (expand_builtin_signbit): Likewise.
21712         (fold_builtin_int_roundingfn): Likewise.
21713         (fold_builtin_bitop): Likewise.
21714         (fold_builtin_bswap): Likewise.
21715         (fold_builtin_logarithm): Use signop.
21716         (fold_builtin_pow): Likewise.
21717         (fold_builtin_memory_op): Use wide-int interfaces.
21718         (fold_builtin_object_size): Likewise.
21719         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
21720         nb_iterations_estimate.
21721         (record_niter_bound): Use wide-int interfaces.
21722         (get_estimated_loop_iterations_int): Likewise.
21723         (get_estimated_loop_iterations): Likewise.
21724         (get_max_loop_iterations): Likewise.
21725         * cfgloop.h: Include wide-int.h.
21726         (struct nb_iter_bound): Change bound to widest_int.
21727         (struct loop): Change nb_iterations_upper_bound and
21728         nb_iterations_estimate to widest_int.
21729         (record_niter_bound): Switch to use widest_int.
21730         (get_estimated_loop_iterations): Likewise.
21731         (get_max_loop_iterations): Likewise.
21732         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
21733         update for wide-int.
21734         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
21735         * combine.c (try_combine): Likewise.
21736         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
21737         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
21738         interfaces.
21739         (aarch64_float_const_representable_p): Likewise.
21740         * config/arc/arc.c: Include wide-int.h.
21741         (arc_can_use_doloop_p): Use wide-int interfaces.
21742         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
21743         (vfp3_const_double_index): Likewise.
21744         * config/avr/avr.c (avr_out_round): Likewise.
21745         (avr_fold_builtin): Likewise.
21746         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
21747         (bfin_can_use_doloop_p): Likewise.
21748         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
21749         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
21750         * config/i386/i386.c: Include wide-int.h.
21751         (ix86_data_alignment): Use wide-int interfaces.
21752         (ix86_local_alignment): Likewise.
21753         (ix86_emit_swsqrtsf): Update real_from_integer.
21754         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
21755         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
21756         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
21757         (zero_constant): Likewise.
21758         (input_operand): Likewise.
21759         (splat_input_operand): Likewise.
21760         (non_logical_cint_operand): Change const_double to const_wide_int.
21761         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
21762         (easy_altivec_constant): Remove comment.
21763         (paired_expand_vector_init): Use CONSTANT_P.
21764         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
21765         (rs6000_emit_move): Update checks.
21766         (rs6000_aggregate_candidate): Use wide-int interfaces.
21767         (rs6000_expand_ternop_builtin): Likewise.
21768         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
21769         (rs6000_assemble_integer): Likewise.
21770         (rs6000_hash_constant): Likewise.
21771         (output_toc): Likewise.
21772         (rs6000_rtx_costs): Likewise.
21773         (rs6000_emit_swrsqrt); Update call to real_from_integer.
21774         * config/rs6000/rs6000-c.c: Include wide-int.h.
21775         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
21776         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
21777         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
21778         Handle CONST_WIDE_INT.
21779         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
21780         Use tree_fits_uhwi_p.
21781         * config/sparc/sparc.c: Include wide-int.h.
21782         (sparc_fold_builtin): Use wide-int interfaces.
21783         * config/vax/vax.c: Include wide-int.h.
21784         (vax_float_literal): Use real_from_integer.
21785         * coretypes.h (struct hwivec_def): New.
21786         (hwivec): New.
21787         (const_hwivec): New.
21788         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
21789         (equiv_constant): Handle CONST_WIDE_INT.
21790         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
21791         (cselib_hash_rtx): Handle CONST_WIDE_INT.
21792         * dbxout.c (stabstr_U): Use wide-int interfaces.
21793         (dbxout_type): Update to use cst_fits_shwi_p.
21794         * defaults.h (LOG2_BITS_PER_UNIT): Define.
21795         (TARGET_SUPPORTS_WIDE_INT): Add default.
21796         * dfp.c: Include wide-int.h.
21797         (decimal_real_to_integer2): Use wide-int interfaces and rename to
21798         decimal_real_to_integer.
21799         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
21800         decimal_real_to_integer.
21801         * doc/generic.texi (Constant expressions): Update for wide_int.
21802         * doc/rtl.texi (const_double): Likewise.
21803         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
21804         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
21805         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
21806         (REAL_VALUE_FROM_INT): Remove.
21807         (TARGET_SUPPORTS_WIDE_INT): New.
21808         * doc/tm.texi: Regenerate.
21809         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
21810         * double-int.h: Include wide-int.h.
21811         (struct wi::int_traits): New.
21812         * dwarf2out.c (get_full_len): New.
21813         (dw_val_equal_p): Add case dw_val_class_wide_int.
21814         (size_of_loc_descr): Likewise.
21815         (output_loc_operands): Likewise.
21816         (insert_double): Remove.
21817         (insert_wide_int): New.
21818         (add_AT_wide): New.
21819         (print_die): Add case dw_val_class_wide_int.
21820         (attr_checksum): Likewise.
21821         (attr_checksum_ordered): Likewise.
21822         (same_dw_val_p): Likewise.
21823         (size_of_die): Likewise.
21824         (value_format): Likewise.
21825         (output_die): Likewise.
21826         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
21827         Use wide-int.
21828         (clz_loc_descriptor): Use wide-int interfaces.
21829         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
21830         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
21831         (round_up_to_align): Use wide-int interfaces.
21832         (field_byte_offset): Likewise.
21833         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
21834         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
21835         CONST_DOUBLE handling.  Use wide-int interfaces.
21836         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
21837         (gen_enumeration_type_die): Use add_AT_wide.
21838         (hash_loc_operands): Add case dw_val_class_wide_int.
21839         (compare_loc_operands): Likewise.
21840         * dwarf2out.h: Include wide-int.h.
21841         (wide_int_ptr): New.
21842         (enum dw_val_class): Add dw_val_class_wide_int.
21843         (struct dw_val_struct): Add val_wide.
21844         * emit-rtl.c (const_wide_int_htab): New.
21845         (const_wide_int_htab_hash): New.
21846         (const_wide_int_htab_eq): New.
21847         (lookup_const_wide_int): New.
21848         (const_double_htab_hash): Use wide-int interfaces.
21849         (const_double_htab_eq): Likewise.
21850         (rtx_to_double_int): Conditionally compile for wide-int.
21851         (immed_double_int_const): Rename to immed_wide_int_const and
21852         update for wide-int.
21853         (immed_double_const): Conditionally compile for wide-int.
21854         (init_emit_once): Use wide-int interfaces.
21855         * explow.c (plus_constant): Likewise.
21856         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
21857         (lshift_value): Use wide-int interfaces.
21858         (expand_mult): Likewise.
21859         (choose_multiplier): Likewise.
21860         (expand_smod_pow2): Likewise.
21861         (make_tree): Likewise.
21862         * expr.c (convert_modes): Consolidate handling of constants.
21863         Use wide-int interfaces.
21864         (emit_group_load_1): Add note.
21865         (store_expr): Update comment.
21866         (get_inner_reference): Use wide-int interfaces.
21867         (expand_constructor): Update comment.
21868         (expand_expr_real_2): Use wide-int interfaces.
21869         (expand_expr_real_1): Likewise.
21870         (reduce_to_bit_field_precision): Likewise.
21871         (const_vector_from_tree): Likewise.
21872         * final.c: Include wide-int-print.h.
21873         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
21874         * fixed-value.c: Include wide-int.h.
21875         (fixed_from_string): Use wide-int interfaces.
21876         (fixed_to_decimal): Likewise.
21877         (fixed_convert_from_real): Likewise.
21878         (real_convert_from_fixed): Likewise.
21879         * fold-const.h (mem_ref_offset): Return an offset_int.
21880         (div_if_zero_remainder): Remove code parameter.
21881         * fold-const.c (div_if_zero_remainder): Remove code parameter.
21882         Use wide-int interfaces.
21883         (may_negate_without_overflow_p): Use wide-int interfaces.
21884         (negate_expr_p): Likewise.
21885         (fold_negate_expr): Likewise.
21886         (int_const_binop_1): Likewise.
21887         (const_binop): Likewise.
21888         (fold_convert_const_int_from_int): Likewise.
21889         (fold_convert_const_int_from_real): Likewise.
21890         (fold_convert_const_int_from_fixed): Likewise.
21891         (fold_convert_const_fixed_from_int): Likewise.
21892         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
21893         (sign_bit_p): Use wide-int interfaces.
21894         (make_range_step): Likewise.
21895         (build_range_check): Likewise.  Pass an integer of the correct type
21896         instead of using integer_one_node.
21897         (range_predecessor): Pass an integer of the correct type instead
21898         of using integer_one_node.
21899         (range_successor): Likewise.
21900         (merge_ranges): Likewise.
21901         (unextend): Use wide-int interfaces.
21902         (extract_muldiv_1): Likewise.
21903         (fold_div_compare): Likewise.
21904         (fold_single_bit_test): Likewise.
21905         (fold_sign_changed_comparison): Likewise.
21906         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
21907         (fold_plusminus_mult_expr): Use wide-int interfaces.
21908         (native_encode_int): Likewise.
21909         (native_interpret_int): Likewise.
21910         (fold_unary_loc): Likewise.
21911         (pointer_may_wrap_p): Likewise.
21912         (size_low_cst): Likewise.
21913         (mask_with_tz): Likewise.
21914         (fold_binary_loc): Likewise.
21915         (fold_ternary_loc): Likewise.
21916         (multiple_of_p): Likewise.
21917         (tree_call_nonnegative_warnv_p): Update calls to
21918         tree_int_cst_min_precision and real_from_integer.
21919         (fold_negate_const): Use wide-int interfaces.
21920         (fold_abs_const): Likewise.
21921         (fold_relational_const): Use tree_int_cst_lt.
21922         (round_up_loc): Use wide-int interfaces.
21923         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
21924         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
21925         * gengtype.c: Remove include of double-int.h.
21926         (do_typedef): Use wide-int interfaces.
21927         (open_base_files): Add wide-int.h.
21928         (main): Add offset_int and widest_int typedefs.
21929         * gengtype-lex.l: Handle "^".
21930         (CXX_KEYWORD): Add "static".
21931         * gengtype-parse.c (require3): New.
21932         (require_template_declaration): Handle constant template arguments
21933         and nested templates.
21934         * gengtype-state.c: Don't include "double-int.h".
21935         * genpreds.c (write_one_predicate_function): Update comment.
21936         (write_tm_constrs_h): Add check for hval and lval use in
21937         CONST_WIDE_INT.
21938         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
21939         (add_to_sequence): Likewise.
21940         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
21941         and const_double_operand.
21942         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
21943         interfaces.
21944         * gimple-fold.c (get_base_constructor): Likewise.
21945         (fold_array_ctor_reference): Likewise.
21946         (fold_nonarray_ctor_reference): Likewise.
21947         (fold_const_aggregate_ref_1): Likewise.
21948         (gimple_val_nonnegative_real_p): Likewise.
21949         (gimple_fold_indirect_ref): Likewise.
21950         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
21951         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
21952         (struct slsr_cand_d): Change index to be widest_int.
21953         (struct incr_info_d): Change incr to be widest_int.
21954         (alloc_cand_and_find_basis): Use wide-int interfaces.
21955         (slsr_process_phi): Likewise.
21956         (backtrace_base_for_ref): Likewise.  Return a widest_int.
21957         (restructure_reference): Take a widest_int instead of a double_int.
21958         (slsr_process_ref): Use wide-int interfaces.
21959         (create_mul_ssa_cand): Likewise.
21960         (create_mul_imm_cand): Likewise.
21961         (create_add_ssa_cand): Likewise.
21962         (create_add_imm_cand): Take a widest_int instead of a double_int.
21963         (slsr_process_add): Use wide-int interfaces.
21964         (slsr_process_cast): Likewise.
21965         (slsr_process_copy): Likewise.
21966         (dump_candidate): Likewise.
21967         (dump_incr_vec): Likewise.
21968         (replace_ref): Likewise.
21969         (cand_increment): Likewise.  Return a widest_int.
21970         (cand_abs_increment): Likewise.
21971         (replace_mult_candidate): Take a widest_int instead of a double_int.
21972         (replace_unconditional_candidate): Use wide-int interfaces.
21973         (incr_vec_index): Take a widest_int instead of a double_int.
21974         (create_add_on_incoming_edge): Likewise.
21975         (create_phi_basis): Use wide-int interfaces.
21976         (replace_conditional_candidate): Likewise.
21977         (record_increment): Take a widest_int instead of a double_int.
21978         (record_phi_increments): Use wide-int interfaces.
21979         (phi_incr_cost): Take a widest_int instead of a double_int.
21980         (lowest_cost_path): Likewise.
21981         (total_savings): Likewise.
21982         (analyze_increments): Use wide-int interfaces.
21983         (ncd_with_phi): Take a widest_int instead of a double_int.
21984         (ncd_of_cand_and_phis): Likewise.
21985         (nearest_common_dominator_for_cands): Likewise.
21986         (insert_initializers): Use wide-int interfaces.
21987         (all_phi_incrs_profitable): Likewise.
21988         (replace_one_candidate): Likewise.
21989         (replace_profitable_candidates): Likewise.
21990         * godump.c: Include wide-int-print.h.
21991         (go_output_typedef): Use wide-int interfaces.
21992         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
21993         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
21994         (build_loop_iteration_domains): Likewise.
21995         * hooks.h: Include wide-int.h rather than double-int.h.
21996         (hook_bool_dint_dint_uint_bool_true): Delete.
21997         (hook_bool_wint_wint_uint_bool_true): Declare.
21998         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
21999         (hook_bool_wint_wint_uint_bool_true): New.
22000         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
22001         interfaces.
22002         (ubsan_expand_si_overflow_mul_check): Likewise.
22003         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
22004         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
22005         (get_ancestor_addr_info): Likewise.
22006         (ipa_modify_call_arguments): Likewise.
22007         * loop-doloop.c (doloop_modify): Likewise.
22008         (doloop_optimize): Likewise.
22009         * loop-iv.c (iv_number_of_iterations): Likewise.
22010         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
22011         (unroll_loop_constant_iterations): Likewise.
22012         (decide_unroll_runtime_iterations): Likewise.
22013         (unroll_loop_runtime_iterations): Likewise.
22014         (decide_peel_simple): Likewise.
22015         (decide_unroll_stupid): Likewise.
22016         * lto-streamer-in.c (streamer_read_wi): Add.
22017         (input_cfg): Use wide-int interfaces.
22018         (lto_input_tree_1): Likewise.
22019         * lto-streamer-out.c (streamer_write_wi): Add.
22020         (hash_tree): Use wide-int interfaces.
22021         (output_cfg): Likewise.
22022         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
22023         (GTFILES): Add wide-int.h and signop.h.
22024         (TAGS): Look for .cc files too.
22025         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
22026         * optabs.c (expand_subword_shift): Likewise.
22027         (expand_doubleword_shift): Likewise.
22028         (expand_absneg_bit): Likewise.
22029         (expand_copysign_absneg): Likewise.
22030         (expand_copysign_bit): Likewise.
22031         * postreload.c (reload_cse_simplify_set): Likewise.
22032         * predict.c (predict_iv_comparison): Likewise.
22033         * pretty-print.h: Include wide-int-print.h.
22034         (pp_wide_int) New.
22035         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
22036         * print-tree.c: Include wide-int-print.h.
22037         (print_node_brief): Use wide-int interfaces.
22038         (print_node): Likewise.
22039         * read-rtl.c (validate_const_wide_int): New.
22040         (read_rtx_code): Add CONST_WIDE_INT case.
22041         * real.c: Include wide-int.h.
22042         (real_to_integer2): Delete.
22043         (real_to_integer): New function, returning a wide_int.
22044         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
22045         (ten_to_ptwo): Update call to real_from_integer.
22046         (real_digit): Likewise.
22047         * real.h: Include signop.h, wide-int.h and insn-modes.h.
22048         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
22049         (REAL_VALUE_TO_INT): Delete.
22050         (real_to_integer): Declare a wide-int form.
22051         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
22052         * recog.c (const_int_operand): Improve comment.
22053         (const_scalar_int_operand): New.
22054         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
22055         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
22056         (split_double): Likewise.
22057         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
22058         (rtx_size): Likewise.
22059         (rtx_alloc_stat_v): New.
22060         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
22061         (cwi_output_hex): New.
22062         (iterative_hash_rtx): Handle CONST_WIDE_INT.
22063         (cwi_check_failed_bounds): New.
22064         * rtl.def (CONST_WIDE_INT): New.
22065         * rtl.h: Include <utility> and wide-int.h.
22066         (struct hwivec_def): New.
22067         (CWI_GET_NUM_ELEM): New.
22068         (CWI_PUT_NUM_ELEM): New.
22069         (struct rtx_def): Add num_elem and hwiv.
22070         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
22071         (CASE_CONST_UNIQUE): Likewise.
22072         (CASE_CONST_ANY): Likewise.
22073         (CONST_SCALAR_INT_P): Likewise.
22074         (CONST_WIDE_INT_P): New.
22075         (CWI_ELT): New.
22076         (HWIVEC_CHECK): New.
22077         (cwi_check_failed_bounds): New.
22078         (CWI_ELT): New.
22079         (HWIVEC_CHECK): New.
22080         (CONST_WIDE_INT_VEC) New.
22081         (CONST_WIDE_INT_NUNITS) New.
22082         (CONST_WIDE_INT_ELT) New.
22083         (rtx_mode_t): New type.
22084         (wi::int_traits <rtx_mode_t>): New.
22085         (wi::shwi): New.
22086         (wi::min_value): New.
22087         (wi::max_value): New.
22088         (rtx_alloc_v) New.
22089         (const_wide_int_alloc): New.
22090         (immed_wide_int_const): New.
22091         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
22092         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
22093         * signop.h: New file.
22094         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
22095         (simplify_const_unary_operation): Use wide-int interfaces.
22096         (simplify_binary_operation_1): Likewise.
22097         (simplify_const_binary_operation): Likewise.
22098         (simplify_const_relational_operation): Likewise.
22099         (simplify_immed_subreg): Likewise.
22100         * stmt.c (expand_case): Likewise.
22101         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
22102         signop rather than a bool.
22103         * stor-layout.c (layout_type): Use wide-int interfaces.
22104         (initialize_sizetypes): Update calls to
22105         set_min_and_max_values_for_integral_type.
22106         (set_min_and_max_values_for_integral_type): Take a signop rather
22107         than a bool.  Use wide-int interfaces.
22108         (fixup_signed_type): Update accordingly.  Remove
22109         HOST_BITS_PER_DOUBLE_INT limit.
22110         (fixup_unsigned_type): Likewise.
22111         * system.h (STATIC_CONSTANT_P): New.
22112         (STATIC_ASSERT): New.
22113         * target.def (can_use_doloop_p): Take widest_ints rather than
22114         double_ints.
22115         * target.h: Include wide-int.h rather than double-int.h.
22116         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
22117         than double_ints.
22118         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
22119         rather than INT_CST_LT_UNSIGNED.
22120         (can_use_doloop_if_innermost): Take widest_ints rather than
22121         double_ints.
22122         * tree-affine.c: Include wide-int-print.h.
22123         (double_int_ext_for_comb): Delete.
22124         (wide_int_ext_for_comb): New.
22125         (aff_combination_zero): Use wide-int interfaces.
22126         (aff_combination_const): Take a widest_int instead of a double_int.
22127         (aff_combination_elt): Use wide-int interfaces.
22128         (aff_combination_scale): Take a widest_int instead of a double_int.
22129         (aff_combination_add_elt): Likewise.
22130         (aff_combination_add_cst): Likewise.
22131         (aff_combination_add): Use wide-int interfaces.
22132         (aff_combination_convert): Likewise.
22133         (tree_to_aff_combination): Likewise.
22134         (add_elt_to_tree): Take a widest_int instead of a double_int.
22135         (aff_combination_to_tree): Use wide-int interfaces.
22136         (aff_combination_remove_elt): Likewise.
22137         (aff_combination_add_product): Take a widest_int instead of
22138         a double_int.
22139         (aff_combination_mult): Use wide-int interfaces.
22140         (aff_combination_expand): Likewise.
22141         (double_int_constant_multiple_p): Delete.
22142         (wide_int_constant_multiple_p): New.
22143         (aff_combination_constant_multiple_p): Take a widest_int pointer
22144         instead of a double_int pointer.
22145         (print_aff): Use wide-int interfaces.
22146         (get_inner_reference_aff): Take a widest_int pointer
22147         instead of a double_int pointer.
22148         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
22149         * tree-affine.h: Include wide-int.h.
22150         (struct aff_comb_elt): Change type of coef to widest_int.
22151         (struct affine_tree_combination): Change type of offset to widest_int.
22152         (double_int_ext_for_comb): Delete.
22153         (wide_int_ext_for_comb): New.
22154         (aff_combination_const): Use widest_int instead of double_int.
22155         (aff_combination_scale): Likewise.
22156         (aff_combination_add_elt): Likewise.
22157         (aff_combination_constant_multiple_p): Likewise.
22158         (get_inner_reference_aff): Likewise.
22159         (aff_comb_cannot_overlap_p): Likewise.
22160         (aff_combination_zero_p): Use wide-int interfaces.
22161         * tree.c: Include tree.h.
22162         (init_ttree): Use make_int_cst.
22163         (tree_code_size): Removed code for INTEGER_CST case.
22164         (tree_size): Add INTEGER_CST case.
22165         (make_node_stat): Update comment.
22166         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
22167         (build_int_cst_type): Use wide-int interfaces.
22168         (double_int_to_tree): Likewise.
22169         (double_int_fits_to_tree_p): Delete.
22170         (force_fit_type_double): Delete.
22171         (force_fit_type): New.
22172         (int_cst_hash_hash): Use wide-int interfaces.
22173         (int_cst_hash_eq): Likewise.
22174         (build_int_cst_wide): Delete.
22175         (wide_int_to_tree): New.
22176         (cache_integer_cst): Use wide-int interfaces.
22177         (build_low_bits_mask): Likewise.
22178         (cst_and_fits_in_hwi): Likewise.
22179         (real_value_from_int_cst): Likewise.
22180         (make_int_cst_stat): New.
22181         (integer_zerop): Use wide_int interfaces.
22182         (integer_onep): Likewise.
22183         (integer_all_onesp): Likewise.
22184         (integer_pow2p): Likewise.
22185         (integer_nonzerop): Likewise.
22186         (tree_log2): Likewise.
22187         (tree_floor_log2): Likewise.
22188         (tree_ctz): Likewise.
22189         (int_size_in_bytes): Likewise.
22190         (mem_ref_offset): Return an offset_int rather than a double_int.
22191         (build_type_attribute_qual_variant): Use wide_int interfaces.
22192         (type_hash_eq): Likewise
22193         (tree_int_cst_equal): Likewise.
22194         (tree_int_cst_lt): Delete.
22195         (tree_int_cst_compare): Likewise.
22196         (tree_fits_shwi_p): Use wide_int interfaces.
22197         (tree_fits_uhwi_p): Likewise.
22198         (tree_int_cst_sign_bit): Likewise.
22199         (tree_int_cst_sgn): Likewise.
22200         (tree_int_cst_min_precision): Take a signop rather than a bool.
22201         (simple_cst_equal): Use wide_int interfaces.
22202         (compare_tree_int): Likewise.
22203         (iterative_hash_expr): Likewise.
22204         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
22205         INT_CST_LT.
22206         (get_type_static_bounds): Use wide_int interfaces.
22207         (tree_int_cst_elt_check_failed): New.
22208         (build_common_tree_nodes): Reordered to set prec before filling in
22209         value.
22210         (int_cst_value): Check cst_and_fits_in_hwi.
22211         (widest_int_cst_value): Use wide_int interfaces.
22212         (upper_bound_in_type): Likewise.
22213         (lower_bound_in_type): Likewise.
22214         (num_ending_zeros): Likewise.
22215         (drop_tree_overflow): Likewise.
22216         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
22217         (gen_conditions_for_pow_cst_base): Likewise.
22218         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
22219         (group_case_labels_stmt): Use wide-int interfaces.
22220         (verify_gimple_assign_binary): Likewise.
22221         (print_loop): Likewise.
22222         * tree-chrec.c (tree_fold_binomial): Likewise.
22223         * tree-core.h (struct tree_base): Add int_length.
22224         (struct tree_int_cst): Change rep of value.
22225         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
22226         (dr_may_alias_p): Likewise.
22227         (max_stmt_executions_tree): Likewise.
22228         * tree.def (INTEGER_CST): Update comment.
22229         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
22230         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
22231         * tree-dump.c: Include wide-int.h and wide-int-print.h.
22232         (dequeue_and_dump): Use wide-int interfaces.
22233         * tree.h: Include wide-int.h.
22234         (NULL_TREE): Moved to earlier loc in file.
22235         (TREE_INT_CST_ELT_CHECK): New.
22236         (tree_int_cst_elt_check_failed): New.
22237         (TYPE_SIGN): New.
22238         (TREE_INT_CST): Delete.
22239         (TREE_INT_CST_LOW): Use wide-int interfaces.
22240         (TREE_INT_CST_HIGH): Delete.
22241         (TREE_INT_CST_NUNITS): New.
22242         (TREE_INT_CST_EXT_NUNITS): Likewise.
22243         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
22244         (TREE_INT_CST_ELT): Likewise.
22245         (INT_CST_LT): Delete.
22246         (tree_int_cst_elt_check): New (two forms).
22247         (type_code_size): Update comment.
22248         (make_int_cst_stat, make_int_cst): New.
22249         (tree_to_double_int): Delete.
22250         (double_int_fits_to_tree_p): Delete.
22251         (force_fit_type_double): Delete.
22252         (build_int_cstu): Replace with out-of-line function.
22253         (build_int_cst_wide): Delete.
22254         (tree_int_cst_lt): Define inline.
22255         (tree_int_cst_le): New.
22256         (tree_int_cst_compare): Define inline.
22257         (tree_int_cst_min_precision): Take a signop rather than a bool.
22258         (wi::int_traits <const_tree>): New.
22259         (wi::int_traits <tree>): New.
22260         (wi::extended_tree): New.
22261         (wi::int_traits <wi::extended_tree>): New.
22262         (wi::to_widest): New.
22263         (wi::to_offset): New.
22264         (wi::fits_to_tree_p): New.
22265         (wi::min_value): New.
22266         (wi::max_value): New.
22267         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
22268         (copy_tree_body_r): Likewise.
22269         * tree-object-size.c (compute_object_offset): Likewise.
22270         (addr_object_size): Likewise.
22271         * tree-predcom.c: Include wide-int-print.h.
22272         (struct dref_d): Change type of offset to widest_int.
22273         (dump_dref): Call wide-int printer.
22274         (aff_combination_dr_offset): Use wide-int interfaces.
22275         (determine_offset): Take a widest_int pointer rather than a
22276         double_int pointer.
22277         (split_data_refs_to_components): Use wide-int interfaces.
22278         (suitable_component_p): Likewise.
22279         (order_drefs): Likewise.
22280         (add_ref_to_chain): Likewise.
22281         (valid_initializer_p): Likewise.
22282         (determine_roots_comp): Likewise.
22283         * tree-pretty-print.c: Include wide-int-print.h.
22284         (dump_generic_node): Use wide-int interfaces.
22285         * tree-sra.c (sra_ipa_modify_expr): Likewise.
22286         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
22287         (move_fixed_address_to_symbol): Likewise.
22288         (move_hint_to_base): Likewise.
22289         (move_pointer_to_base): Likewise.
22290         (move_variant_to_index): Likewise.
22291         (most_expensive_mult_to_index): Likewise.
22292         (addr_to_parts): Likewise.
22293         (copy_ref_info): Likewise.
22294         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
22295         (indirect_refs_may_alias_p): Likewise.
22296         (stmt_kills_ref_p_1): Likewise.
22297         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
22298         * tree-ssa-ccp.c: Update comment at top of file.  Include
22299         wide-int-print.h.
22300         (struct prop_value_d): Change type of mask to widest_int.
22301         (extend_mask): New function.
22302         (dump_lattice_value): Use wide-int interfaces.
22303         (get_default_value): Likewise.
22304         (set_constant_value): Likewise.
22305         (set_value_varying): Likewise.
22306         (valid_lattice_transition): Likewise.
22307         (set_lattice_value): Likewise.
22308         (value_to_double_int): Delete.
22309         (value_to_wide_int): New.
22310         (get_value_from_alignment): Use wide-int interfaces.
22311         (get_value_for_expr): Likewise.
22312         (do_dbg_cnt): Likewise.
22313         (ccp_finalize): Likewise.
22314         (ccp_lattice_meet): Likewise.
22315         (bit_value_unop_1): Use widest_ints rather than double_ints.
22316         (bit_value_binop_1): Likewise.
22317         (bit_value_unop): Use wide-int interfaces.
22318         (bit_value_binop): Likewise.
22319         (bit_value_assume_aligned): Likewise.
22320         (evaluate_stmt): Likewise.
22321         (ccp_fold_stmt): Likewise.
22322         (visit_cond_stmt): Likewise.
22323         (ccp_visit_stmt): Likewise.
22324         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
22325         (constant_pointer_difference): Likewise.
22326         (associate_pointerplus): Likewise.
22327         (combine_conversions): Likewise.
22328         * tree-ssa-loop.h: Include wide-int.h.
22329         (struct tree_niter_desc): Change type of max to widest_int.
22330         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
22331         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
22332         (remove_redundant_iv_tests): Likewise.
22333         (canonicalize_loop_induction_variables): Likewise.
22334         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
22335         (constant_multiple_of): Take a widest_int pointer instead of
22336         a double_int pointer.
22337         (get_computation_aff): Use wide-int interfaces.
22338         (ptr_difference_cost): Likewise.
22339         (difference_cost): Likewise.
22340         (get_loop_invariant_expr_id): Likewise.
22341         (get_computation_cost_at): Likewise.
22342         (iv_elimination_compare_lt): Likewise.
22343         (may_eliminate_iv): Likewise.
22344         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
22345         instead of double_int.
22346         (max_loop_iterations): Likewise.
22347         (max_stmt_executions): Likewise.
22348         (estimated_stmt_executions): Likewise.
22349         * tree-ssa-loop-niter.c: Include wide-int-print.h.
22350         (split_to_var_and_offset): Use wide-int interfaces.
22351         (determine_value_range): Likewise.
22352         (bound_difference_of_offsetted_base): Likewise.
22353         (bounds_add): Take a widest_int instead of a double_int.
22354         (number_of_iterations_ne_max): Use wide-int interfaces.
22355         (number_of_iterations_ne): Likewise.
22356         (number_of_iterations_lt_to_ne): Likewise.
22357         (assert_loop_rolls_lt): Likewise.
22358         (number_of_iterations_lt): Likewise.
22359         (number_of_iterations_le): Likewise.
22360         (number_of_iterations_cond): Likewise.
22361         (number_of_iterations_exit): Likewise.
22362         (finite_loop_p): Likewise.
22363         (derive_constant_upper_bound_assign): Likewise.
22364         (derive_constant_upper_bound): Return a widest_int.
22365         (derive_constant_upper_bound_ops): Likewise.
22366         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
22367         (record_estimate): Take a widest_int rather than a double_int.
22368         (record_nonwrapping_iv): Use wide-int interfaces.
22369         (double_int_cmp): Delete.
22370         (wide_int_cmp): New.
22371         (bound_index): Take a widest_int rather than a double_int.
22372         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
22373         (maybe_lower_iteration_bound): Likewise.
22374         (estimate_numbers_of_iterations_loop): Likewise.
22375         (estimated_loop_iterations): Take a widest_int pointer than than
22376         a double_int pointer.
22377         (estimated_loop_iterations_int): Use wide-int interfaces.
22378         (max_loop_iterations): Take a widest_int pointer than than
22379         a double_int pointer.
22380         (max_loop_iterations_int): Use wide-int interfaces.
22381         (max_stmt_executions): Take a widest_int pointer than than
22382         a double_int pointer.
22383         (estimated_stmt_executions): Likewise.
22384         (n_of_executions_at_most): Use wide-int interfaces.
22385         (scev_probably_wraps_p): Likewise.
22386         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
22387         to real_to_integer.
22388         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
22389         interfaces.
22390         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
22391         double_ints.  Adjust for trailing_wide_ints <3> representation.
22392         (set_nonzero_bits): Likewise.
22393         (get_range_info): Return wide_ints rather than double_ints.
22394         Adjust for trailing_wide_ints <3> representation.
22395         (get_nonzero_bits): Likewise.
22396         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
22397         representation.
22398         * tree-ssanames.h (struct range_info_def): Replace min, max and
22399         nonzero_bits with a trailing_wide_ints <3>.
22400         (set_range_info): Use wide_int_refs rather than double_ints.
22401         (set_nonzero_bits): Likewise.
22402         (get_range_info): Return wide_ints rather than double_ints.
22403         (get_nonzero_bits): Likewise.
22404         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
22405         * tree-ssa-pre.c (phi_translate_1): Likewise.
22406         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
22407         (acceptable_pow_call): Likewise.
22408         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
22409         interfaces.
22410         (vn_reference_fold_indirect): Likewise.
22411         (vn_reference_maybe_forwprop_address): Likewise.
22412         (valueize_refs_1): Likewise.
22413         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
22414         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
22415         tree_int_cst_lt and tree_int_cst_le.
22416         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
22417         interfaces.
22418         (streamer_alloc_tree): Likewise.
22419         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
22420         (streamer_write_tree_header): Likewise.
22421         (streamer_write_integer_cst): Likewise.
22422         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
22423         (build_constructors): Likewise.
22424         (array_value_type): Likewise.
22425         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
22426         (vect_check_gather): Likewise.
22427         * tree-vect-generic.c (build_replicated_const): Likewise.
22428         (expand_vector_divmod): Likewise.
22429         * tree-vect-loop.c (vect_transform_loop): Likewise.
22430         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
22431         (vect_do_peeling_for_alignment): Likewise.
22432         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
22433         * tree-vrp.c: Include wide-int.h.
22434         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
22435         (extract_range_from_assert): Use wide-int interfaces.
22436         (vrp_int_const_binop): Likewise.
22437         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
22438         double_int pointers.
22439         (ranges_from_anti_range): Use wide-int interfaces.
22440         (quad_int_cmp): Delete.
22441         (quad_int_pair_sort): Likewise.
22442         (extract_range_from_binary_expr_1): Use wide-int interfaces.
22443         (extract_range_from_unary_expr_1): Likewise.
22444         (adjust_range_with_scev): Likewise.
22445         (masked_increment): Take and return wide_ints rather than double_ints.
22446         (register_edge_assert_for_2): Use wide-int interfaces.
22447         (check_array_ref): Likewise.
22448         (search_for_addr_array): Likewise.
22449         (maybe_set_nonzero_bits): Likewise.
22450         (union_ranges): Pass an integer of the correct type instead of
22451         using integer_one_node.
22452         (intersect_ranges): Likewise.
22453         (simplify_truth_ops_using_ranges): Likewise.
22454         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
22455         (range_fits_type_p): Likewise.
22456         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
22457         a bool.
22458         (simplify_conversion_using_ranges): Use wide-int interfaces.
22459         (simplify_float_conversion_using_ranges): Likewise.
22460         (vrp_finalize): Likewise.
22461         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
22462         (gimple_stringops_transform): Likewise.
22463         * varasm.c (decode_addr_const): Likewise.
22464         (const_hash_1): Likewise.
22465         (const_rtx_hash_1): Likewise
22466         (output_constant): Likewise.
22467         (array_size_for_constructor): Likewise.
22468         (output_constructor_regular_field): Likewise.
22469         (output_constructor_bitfield): Likewise.
22470         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
22471         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
22472         GENERATOR_FILEs.
22473         * gencheck.c: Define BITS_PER_UNIT.
22474         * wide-int.cc: New.
22475         * wide-int.h: New.
22476         * wide-int-print.cc: New.
22477         * wide-int-print.h: New.
22478
22479 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22480
22481         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
22482
22483 2014-05-06  Richard Biener  <rguenther@suse.de>
22484
22485         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
22486         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
22487         (TODO_verify_all): Adjust.
22488         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
22489         TODO_verify_stmts and TODO_verify_rtl_sharing.
22490         * bb-reorder.c: Likewise.
22491         * cfgexpand.c: Likewise.
22492         * cprop.c: Likewise.
22493         * cse.c: Likewise.
22494         * function.c: Likewise.
22495         * fwprop.c: Likewise.
22496         * gcse.c: Likewise.
22497         * gimple-ssa-isolate-paths.c: Likewise.
22498         * gimple-ssa-strength-reduction.c: Likewise.
22499         * ipa-split.c: Likewise.
22500         * loop-init.c: Likewise.
22501         * loop-unroll.c: Likewise.
22502         * lower-subreg.c: Likewise.
22503         * modulo-sched.c: Likewise.
22504         * postreload-gcse.c: Likewise.
22505         * predict.c: Likewise.
22506         * recog.c: Likewise.
22507         * sched-rgn.c: Likewise.
22508         * store-motion.c: Likewise.
22509         * tracer.c: Likewise.
22510         * trans-mem.c: Likewise.
22511         * tree-call-cdce.c: Likewise.
22512         * tree-cfg.c: Likewise.
22513         * tree-cfgcleanup.c: Likewise.
22514         * tree-complex.c: Likewise.
22515         * tree-eh.c: Likewise.
22516         * tree-emutls.c: Likewise.
22517         * tree-if-conv.c: Likewise.
22518         * tree-into-ssa.c: Likewise.
22519         * tree-loop-distribution.c: Likewise.
22520         * tree-object-size.c: Likewise.
22521         * tree-parloops.c: Likewise.
22522         * tree-pass.h: Likewise.
22523         * tree-sra.c: Likewise.
22524         * tree-ssa-ccp.c: Likewise.
22525         * tree-ssa-copy.c: Likewise.
22526         * tree-ssa-copyrename.c: Likewise.
22527         * tree-ssa-dce.c: Likewise.
22528         * tree-ssa-dom.c: Likewise.
22529         * tree-ssa-dse.c: Likewise.
22530         * tree-ssa-forwprop.c: Likewise.
22531         * tree-ssa-ifcombine.c: Likewise.
22532         * tree-ssa-loop-ch.c: Likewise.
22533         * tree-ssa-loop-ivcanon.c: Likewise.
22534         * tree-ssa-loop.c: Likewise.
22535         * tree-ssa-math-opts.c: Likewise.
22536         * tree-ssa-phiopt.c: Likewise.
22537         * tree-ssa-phiprop.c: Likewise.
22538         * tree-ssa-pre.c: Likewise.
22539         * tree-ssa-reassoc.c: Likewise.
22540         * tree-ssa-sink.c: Likewise.
22541         * tree-ssa-strlen.c: Likewise.
22542         * tree-ssa-tail-merge.c: Likewise.
22543         * tree-ssa-uncprop.c: Likewise.
22544         * tree-switch-conversion.c: Likewise.
22545         * tree-tailcall.c: Likewise.
22546         * tree-vect-generic.c: Likewise.
22547         * tree-vectorizer.c: Likewise.
22548         * tree-vrp.c: Likewise.
22549         * tsan.c: Likewise.
22550         * var-tracking.c: Likewise.
22551         * bt-load.c: Likewise.
22552         * cfgcleanup.c: Likewise.
22553         * combine-stack-adj.c: Likewise.
22554         * combine.c: Likewise.
22555         * compare-elim.c: Likewise.
22556         * config/epiphany/resolve-sw-modes.c: Likewise.
22557         * config/i386/i386.c: Likewise.
22558         * config/mips/mips.c: Likewise.
22559         * config/s390/s390.c: Likewise.
22560         * config/sh/sh_treg_combine.cc: Likewise.
22561         * config/sparc/sparc.c: Likewise.
22562         * dce.c: Likewise.
22563         * dse.c: Likewise.
22564         * final.c: Likewise.
22565         * ifcvt.c: Likewise.
22566         * mode-switching.c: Likewise.
22567         * passes.c: Likewise.
22568         * postreload.c: Likewise.
22569         * ree.c: Likewise.
22570         * reg-stack.c: Likewise.
22571         * regcprop.c: Likewise.
22572         * regrename.c: Likewise.
22573         * web.c: Likewise.
22574
22575 2014-05-06  Richard Biener  <rguenther@suse.de>
22576
22577         PR middle-end/61070
22578         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
22579         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
22580
22581 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
22582
22583         PR ipa/60965
22584         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
22585
22586 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
22587             Tom de Vries  <tom@codesourcery.com>
22588
22589         * target.def (call_fusage_contains_non_callee_clobbers): New
22590         DEFHOOKPOD.
22591         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
22592         Hooks to @menu.
22593         (@node Miscellaneous Register Hooks): New node.
22594         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
22595         * doc/tm.texi: Regenerate.
22596
22597 2014-05-05  Marek Polacek  <polacek@redhat.com>
22598
22599         PR driver/61065
22600         * opts.c (common_handle_option): Call error_at instead of warning_at.
22601
22602 2014-05-05  Richard Biener  <rguenther@suse.de>
22603
22604         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
22605         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
22606         under the TODO_verify_il umbrella.
22607
22608 2014-05-05  Richard Biener  <rguenther@suse.de>
22609
22610         * passes.c (execute_function_todo): Move TODO_verify_flow under
22611         the TODO_verify_ul umbrella.
22612
22613 2014-05-05  Richard Biener  <rguenther@suse.de>
22614
22615         PR middle-end/61010
22616         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
22617         X & CST away from a CST that is the mask of a mode.
22618
22619 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22620
22621         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
22622         int argument to enum machine_mode.
22623         (picochip_class_max_nregs): Ditto.
22624         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
22625         (picochip_class_max_nregs): Ditto.
22626
22627 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22628
22629         * target.def: Add new target hook.
22630         * doc/tm.texi: Regenerate.
22631         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
22632         * targhooks.c (default_keep_leaf_when_profiled): New function.
22633
22634         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
22635         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
22636
22637 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
22638
22639         PR tree-optimization/60363
22640         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
22641         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
22642         (update_destination_phis): New parameter.
22643         (create_edge_and_update_destination_phis): Ditto.
22644         (ssa_fix_duplicate_block_edges): Pass new arguments.
22645         (thread_single_edge): Ditto.
22646
22647 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
22648
22649         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
22650         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
22651         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
22652         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
22653         Use RS6000_BTM_HARD_FLOAT.
22654         (BU_MISC_2): Likewise.
22655         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
22656         RS6000_BTM_HARD_FLOAT.
22657         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
22658         is explicitly used.
22659         (rs6000_invalid_builtin): Add hard floating builtin support.
22660         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
22661         hard float builtins.
22662         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
22663
22664 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22665
22666         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
22667         Add missing function* argument.
22668
22669 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
22670
22671         * lra-constraints.c (valid_address_p): Move earlier in file.
22672         Add a constraint argument to the address_info version.
22673         (satisfies_memory_constraint_p): New function.
22674         (satisfies_address_constraint_p): Likewise.
22675         (process_alt_operands, curr_insn_transform): Use them.
22676         (process_address): Pass the constraint to valid_address_p when
22677         checking address operands.
22678
22679 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
22680
22681         * config/mips/mips.c (mips_isa_rev): New variable.
22682         (mips_set_architecture): Set it.
22683         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
22684         from mips_isa_rev.
22685         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
22686         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
22687         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
22688         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
22689         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
22690         conditions in terms of mips_isa_rev.
22691         (mips_isa_rev): Declare.
22692
22693 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22694
22695         * config/sh/sh-mem.cc: Use tabs instead of spaces.
22696         (prob_unlikely, prob_likely): Make variables const.
22697
22698 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
22699
22700         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
22701
22702 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22703
22704         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
22705
22706 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22707
22708         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
22709         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
22710         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
22711         functions.
22712         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
22713         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
22714         sh_pass_in_reg_p.
22715         Replace usage of ROUND_REG with sh_round_reg.
22716         Use CEIL instead of ROUND_ADVANCE.
22717
22718 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22719
22720         PR target/61026
22721         * config/sh/sh.c: Include stdlib headers before everything else.
22722
22723 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
22724
22725         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
22726         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
22727         (gimplify_adjust_omp_clauses): Simd region is never
22728         directly nested in combined parallel.  Instead, for linear
22729         with copyin/copyout, if in combined for simd loop, make decl
22730         firstprivate/lastprivate on OMP_FOR.
22731         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
22732         expand_omp_for_static_chunk): When setting endvar, also set
22733         fd->loop.v to the same value.
22734
22735 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
22736
22737         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
22738
22739 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
22740
22741         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
22742         expression.
22743
22744 2014-05-02  Marek Polacek  <polacek@redhat.com>
22745
22746         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
22747
22748 2014-05-02  Kito Cheng  <kito@0xlab.org>
22749
22750         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
22751         to a C expression marco.
22752         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
22753         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
22754         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
22755         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
22756         HONOR_REG_ALLOC_ORDER.
22757         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
22758
22759 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22760
22761         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
22762
22763 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22764
22765         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
22766
22767 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
22768
22769         * tree-if-conv.c (is_cond_scalar_reduction): New function.
22770         (convert_scalar_cond_reduction): Likewise.
22771         (predicate_scalar_phi): Add recognition and transformation
22772         of simple conditioanl reduction to be vectorizable.
22773
22774 2014-05-01  Marek Polacek  <polacek@redhat.com>
22775
22776         PR c/43245
22777         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
22778
22779 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
22780
22781         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
22782         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
22783         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
22784         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
22785         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
22786         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
22787         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
22788         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
22789
22790 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
22791
22792         * config/arc/arc.opt (mlra): Move comment above option name
22793         to avoid mis-parsing as language options.
22794
22795 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22796
22797         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
22798         * config/sol2.h: ... here.
22799         * config/sol2-10.h: Remove.
22800
22801         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
22802         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
22803         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
22804         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
22805         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
22806         * config/sol2.h: ... here.
22807         (SECTION_NAME_FORMAT): Don't redefine.
22808         (STARTFILE_ARCH32_SPEC): Rename to ...
22809         (STARTFILE_ARCH_SPEC): ... this.
22810         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
22811         * config/sparc/sol2.h: ... here.
22812         (SECTION_NAME_FORMAT): Don't undef.
22813         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
22814         (SUBTARGET_EXTRA_SPECS): Remove.
22815         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
22816
22817         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
22818         (MD_STARTFILE_PREFIX): Remove.
22819         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
22820         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
22821         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
22822         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
22823         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
22824         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
22825         * config/i386/sol2.h: ... here.
22826         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
22827         * config/i386/sol2-bi.h: Remove.
22828         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
22829         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
22830
22831         * config/i386/t-sol2-64: Rename to ...
22832         * config/i386/t-sol2: ... this.
22833         * config/sparc/t-sol2-64: Rename to ...
22834         * config/sparc/t-sol2: ... this.
22835
22836         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
22837         sol2_tm_file_head, sol2_tm_file_tail.
22838         Include ${cpu_type}/sol2.h before sol2.h.
22839         Remove sol2-10.h.
22840         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
22841         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
22842         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
22843         Reflect i386/t-sol2-64 renaming.
22844         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
22845         Reflect sparc/t-sol2-64 renaming.
22846
22847 2014-04-30  Richard Biener  <rguenther@suse.de>
22848
22849         * passes.c (execute_function_todo): Move TODO_verify_stmts
22850         and TODO_verify_ssa under the TODO_verify_il umbrella.
22851         * tree-ssa.h (verify_ssa): Adjust prototype.
22852         * tree-ssa.c (verify_ssa): Add parameter to tell whether
22853         we should verify SSA operands.
22854         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
22855         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
22856         whether we should verify whether not throwing stmts have EH info.
22857         * graphite-scop-detection.c (create_sese_edges): Adjust.
22858         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
22859         * tree-eh.c (lower_try_finally_switch): Do not add the
22860         default case label twice.
22861
22862 2014-04-30  Marek Polacek  <polacek@redhat.com>
22863
22864         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
22865         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
22866         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
22867         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
22868
22869 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
22870
22871         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
22872         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
22873         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
22874         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
22875         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
22876         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
22877         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
22878         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
22879
22880 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
22881
22882         * tree-cfg.c (dump_function_to_file): Dump the return type of
22883         functions, in a line to itself before the function body, mimicking
22884         the layout of a C function.
22885
22886 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
22887
22888         PR tree-optimization/60971
22889         * tree-tailcall.c (process_assignment): Reject conversions which
22890         reduce precision.
22891
22892 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
22893
22894         * calls.c (initialize_argument_information): Always treat
22895         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
22896         (expand_call): Likewise.
22897         (emit_library_call_calue_1): Likewise.
22898         * expr.c (PUSH_ARGS_REVERSED): Do not define.
22899         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
22900         code accordingly.
22901
22902 2014-04-29  Nick Clifton  <nickc@redhat.com>
22903
22904         * config/msp430/msp430.md (umulsidi): Fix typo.
22905         (mulhisi3): Enable even inside interrupt handlers.
22906         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
22907         bigger return address pushed in large mode.
22908
22909 2014-04-29  Nick Clifton  <nickc@redhat.com>
22910
22911         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
22912         (arc_init_reg_tables): Use a machine_mode enum to iterate over
22913         available modes.
22914         * config/m32r/m32r.c (init_reg_tables): Likewise.
22915         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
22916         enum to hold the modes.
22917
22918 2014-04-29  Richard Biener  <rguenther@suse.de>
22919
22920         * dominance.c (free_dominance_info): Add overload with
22921         function parameter.
22922         (dom_info_state): Likewise.
22923         (dom_info_available_p): Likewise.
22924         * basic-block.h (free_dominance_info, dom_info_state,
22925         dom_info_available_p): Declare overloads.
22926         * passes.c (execute_function_todo): Verify that verifiers
22927         don't change dominator info state.  Drop dominator info
22928         for IPA pass invocations.
22929         * cgraph.c (release_function_body): Restore asserts that
22930         dominator information is released.
22931
22932 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
22933
22934         * doc/invoke.texi: Fix typo.
22935         * tree-vrp.c: Fix typos.
22936         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
22937
22938 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
22939
22940         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
22941
22942 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
22943
22944         * config/aarch64/aarch64-builtins.c
22945         (aarch64_types_storestruct_lane_qualifiers): New.
22946         (TYPES_STORESTRUCT_LANE): Likewise.
22947         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
22948         (st3_lane): Likewise.
22949         (st4_lane): Likewise.
22950         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
22951         (vec_store_lanesci_lane<mode>): Likewise.
22952         (vec_store_lanesxi_lane<mode>): Likewise.
22953         (aarch64_st2_lane<VQ:mode>): Likewise.
22954         (aarch64_st3_lane<VQ:mode>): Likewise.
22955         (aarch64_st4_lane<VQ:mode>): Likewise.
22956         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
22957         * config/aarch64/arm_neon.h
22958         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
22959         use new macro arguments.
22960         (__ST3_LANE_FUNC): Likewise.
22961         (__ST4_LANE_FUNC): Likewise.
22962         * config/aarch64/iterators.md (V_TWO_ELEM): New.
22963         (V_THREE_ELEM): Likewise.
22964         (V_FOUR_ELEM): Likewise.
22965
22966 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
22967
22968         * doc/gimple.texi: Replace the description of the now-defunct
22969         union gimple_statement_d with a diagram showing the
22970         gimple_statement_base class hierarchy and its relationships to
22971         the GSS_ and GIMPLE_ enums.
22972
22973 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
22974
22975         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
22976         * config/aarch64/aarch64.c
22977         (aarch64_cannot_change_mode_class): Weaken conditions.
22978         (aarch64_modes_tieable_p): New.
22979         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
22980
22981 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
22982
22983         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
22984         (loadsync_<mode>): Change mode.
22985         (load_quadpti, store_quadpti): New.
22986         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
22987         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
22988
22989 2014-04-28  Martin Jambor  <mjambor@suse.cz>
22990
22991         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
22992         same alias type as the original statement.
22993         (subreplacement_assignment_data): New type.
22994         (handle_unscalarized_data_in_subtree): New type of parameter,
22995         generate new memory accesses with same alias type as the original
22996         statement.
22997         (load_assign_lhs_subreplacements): Likewise.
22998         (sra_modify_constructor_assign): Generate new memory accesses with
22999         same alias type as the original statement.
23000
23001 2014-04-28  Richard Biener  <rguenther@suse.de>
23002
23003         * tree-pass.h (TODO_verify_il): Define.
23004         (TODO_verify_all): Complete properly.
23005         * passes.c (execute_function_todo): Move existing loop-closed
23006         SSA verification under TODO_verify_il.
23007         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
23008         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
23009         Fix tree sharing issue.
23010
23011 2014-04-28  Richard Biener  <rguenther@suse.de>
23012
23013         PR middle-end/60092
23014         * builtins.def (DEF_C11_BUILTIN): Add.
23015         (BUILT_IN_ALIGNED_ALLOC): Likewise.
23016         * coretypes.h (enum function_class): Add function_c11_misc.
23017         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
23018         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
23019         (call_may_clobber_ref_p_1): Likewise.
23020         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
23021         (mark_all_reaching_defs_necessary_1): Likewise.
23022         (propagate_necessity): Likewise.
23023         (eliminate_unnecessary_stmts): Likewise.
23024         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
23025
23026 2014-04-28  Richard Biener  <rguenther@suse.de>
23027
23028         * tree-vrp.c (vrp_var_may_overflow): Remove.
23029         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
23030         with overflow immediately bump to one before that value and
23031         let iteration figure out overflow status.
23032
23033 2014-04-28  Richard Biener  <rguenther@suse.de>
23034
23035         * configure.ac: Do valgrind header checks unconditionally.
23036         Add --enable-valgrind-annotations.
23037         * system.h: Guard valgrind header inclusion with
23038         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
23039         * alloc-pool.c (pool_alloc, pool_free): Use
23040         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
23041         to guard possibly dead code.
23042         * config.in: Regenerated.
23043         * configure: Likewise.
23044
23045 2014-04-28  Jeff Law  <law@redhat.com>
23046
23047         PR tree-optimization/60902
23048         * tree-ssa-threadedge.c
23049         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
23050         over real defs when invalidating outputs from statements that do not
23051         produce useful outputs for threading.
23052
23053 2014-04-28  Richard Biener  <rguenther@suse.de>
23054
23055         PR tree-optimization/60979
23056         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
23057         SCOPs that end in a block with a successor with abnormal
23058         predecessors.
23059
23060 2014-04-28  Richard Biener  <rguenther@suse.de>
23061
23062         * tree-pass.h (execute_pass_list): Adjust prototype.
23063         * passes.c (pass_manager::execute_early_local_passes): Adjust.
23064         (do_per_function): Change callback signature, push all actual
23065         work to the callbals.
23066         (do_per_function_toporder): Likewise.
23067         (execute_function_dump): Adjust.
23068         (execute_function_todo): Likewise.
23069         (clear_last_verified): Likewise.
23070         (verify_curr_properties): Likewise.
23071         (update_properties_after_pass): Likewise.
23072         (execute_pass_list_1): Split out from ...
23073         (execute_pass_list): ... here.  Adjust.
23074         (execute_ipa_pass_list): Likewise.
23075         * cgraphunit.c (cgraph_add_new_function): Adjust.
23076         (analyze_function): Likewise.
23077         (expand_function): Likewise.
23078         * cgraph.c (release_function_body): Free dominance info
23079         here instead of asserting it was magically freed elsewhere.
23080
23081 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
23082
23083         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
23084         * configure: Regenerate.
23085         * config/sparc/sparc.opt (muser-mode): New option.
23086         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
23087         for LEON3.
23088         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
23089         * doc/invoke.texi (SPARC options): Document -muser-mode.
23090
23091 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
23092
23093         * cselib.c (find_slot_memmode): Delete.
23094         (cselib_hasher): Change compare_type to a struct.
23095         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
23096         constants.
23097         (preserve_constants_and_equivs): Adjust for new compare_type.
23098         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
23099         (wrap_constant): Delete.
23100         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
23101
23102 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
23103
23104         * doc/install.texi (Building with profile feedback): Remove
23105         outdated sentence.
23106
23107 2014-04-26  Tom de Vries  <tom@codesourcery.com>
23108
23109         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
23110         array accesses.
23111
23112 2014-04-25  Cary Coutant  <ccoutant@google.com>
23113
23114         PR debug/60929
23115         * dwarf2out.c (should_move_die_to_comdat): A type definition
23116         can contain a subprogram definition, but don't move it to a
23117         comdat unit.
23118         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
23119         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
23120         from original DIE.
23121         (clone_tree_hash): Rename to...
23122         (clone_tree_partial): ...this; change callers.  Copy
23123         DW_TAG_subprogram DIEs as declarations.
23124         (copy_decls_walk): Don't copy children of a declaration into a
23125         type unit.
23126
23127 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
23128
23129         PR target/60969
23130         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
23131         alternative 12.
23132
23133 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
23134
23135         * config/arm/predicates.md (call_insn_operand): Add long_call check.
23136         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
23137         reg for long_call.
23138         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
23139         restriction.
23140
23141 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23142
23143         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
23144
23145 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23146
23147         PR tree-optimization/60930
23148         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
23149         creating a multiply candidate by folding two constant
23150         multiplicands when the result overflows.
23151
23152 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
23153
23154         PR tree-optimization/60960
23155         * tree-vect-generic.c (expand_vector_operation): Only call
23156         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
23157
23158 2014-04-25  Tom de Vries  <tom@codesourcery.com>
23159
23160         * expr.c (clobber_reg_mode): New function.
23161         * expr.h (clobber_reg): New function.
23162
23163 2014-04-25  Tom de Vries  <tom@codesourcery.com>
23164
23165         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
23166         clobbers.
23167
23168 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
23169             Tom de Vries  <tom@codesourcery.com>
23170
23171         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
23172         handle.
23173         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
23174         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
23175         new argument to find_all_hard_reg_sets call.
23176
23177 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23178
23179         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
23180         Use HOST_WIDE_INT_C for mask literal.
23181         (aarch_rev16_shleft_mask_imm_p): Likewise.
23182
23183 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
23184
23185         PR target/60941
23186         * config/sparc/sparc.md (ashlsi3_extend): Delete.
23187
23188 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
23189
23190         PR preprocessor/56540
23191         * config/i386/i386-c.c (ix86_target_macros): Define
23192         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
23193
23194 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23195
23196         * configure.ac (tga_func): Remove.
23197         (LIB_TLS_SPEC): Remove.
23198         * configure: Regenerate.
23199         * config.in: Regenerate.
23200         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
23201
23202 2014-04-25  Richard Biener  <rguenther@suse.de>
23203
23204         PR ipa/60912
23205         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
23206         call stmt use/clobber sets during stmt walk instead of
23207         walking the possibly incomplete set of caller edges.
23208
23209 2014-04-25  Richard Biener  <rguenther@suse.de>
23210
23211         PR ipa/60911
23212         * passes.c (apply_ipa_transforms): Inline into only caller ...
23213         (execute_one_pass): ... here.  Properly bring in function
23214         bodies for nodes we want to apply IPA transforms to.
23215
23216 2014-04-24  Cong Hou  <congh@google.com>
23217
23218         PR tree-optimization/60896
23219         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
23220         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
23221         (vect_mark_pattern_stmts): Set the def type of all statements in
23222         PATTERN_DEF_SEQ as vect_internal_def.
23223
23224 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
23225
23226         * doc/extend.texi (PowerPC Built-in Functions): Document new
23227         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
23228         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
23229
23230         * config/rs6000/predicates.md (const_0_to_3_operand): New
23231         predicate to match 0..3 integer constants.
23232
23233         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
23234         to support adding miscellaneous builtin functions.
23235         (BU_DFP_MISC_2): Likewise.
23236         (BU_P7_MISC_1): Likewise.
23237         (BU_P7_MISC_2): Likewise.
23238         (BU_P8V_MISC_3): Likewise.
23239         (BU_MISC_1): Likewise.
23240         (BU_MISC_2): Likewise.
23241         (DIVWE): Add extended divide builtin functions.
23242         (DIVWEO): Likewise.
23243         (DIVWEU): Likewise.
23244         (DIVWEUO): Likewise.
23245         (DIVDE): Likewise.
23246         (DIVDEO): Likewise.
23247         (DIVDEU): Likewise.
23248         (DIVDEUO): Likewise.
23249         (DXEX): Add decimal floating-point builtin functions.
23250         (DXEXQ): Likewise.
23251         (DDEDPD): Likewise.
23252         (DDEDPDQ): Likewise.
23253         (DENBCD): Likewise.
23254         (DENBCDQ): Likewise.
23255         (DIEX): Likewise.
23256         (DIEXQ): Likewise.
23257         (DSCLI): Likewise.
23258         (DSCLIQ): Likewise.
23259         (DSCRI): Likewise.
23260         (DSCRIQ): Likewise.
23261         (CDTBCD): Add new BCD builtin functions.
23262         (CBCDTD): Likewise.
23263         (ADDG6S): Likewise.
23264         (BCDADD): Likewise.
23265         (BCDADD_LT): Likewise.
23266         (BCDADD_EQ): Likewise.
23267         (BCDADD_GT): Likewise.
23268         (BCDADD_OV): Likewise.
23269         (BCDSUB): Likewise.
23270         (BCDSUB_LT): Likewise.
23271         (BCDSUB_EQ): Likewise.
23272         (BCDSUB_GT): Likewise.
23273         (BCDSUB_OV): Likewise.
23274         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
23275         (UNPACK_TD): Likewise.
23276         (PACK_TF): Likewise.
23277         (UNPACK_TF): Likewise.
23278         (UNPACK_TF_0): Likewise.
23279         (UNPACK_TF_1): Likewise.
23280         (PACK_V1TI): Likewise.
23281         (UNPACK_V1TI): Likewise.
23282
23283         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
23284         support for decimal floating point builtin functions.
23285         (rs6000_expand_ternop_builtin): Add checks for the new builtin
23286         functions that take constant arguments.
23287         (rs6000_invalid_builtin): Add decimal floating point builtin support.
23288         (rs6000_init_builtins): Setup long double, _Decimal64, and
23289         _Decimal128 types for new builtin functions.
23290         (builtin_function_type): Set the unsigned flags appropriately for
23291         the new builtin functions.
23292         (rs6000_opt_masks): Add support for decimal floating point builtin
23293         functions.
23294
23295         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
23296         floating point builtin functions.
23297         (RS6000_BTM_COMMON): Likewise.
23298         (RS6000_BTI_long_double): Likewise.
23299         (RS6000_BTI_dfloat64): Likewise.
23300         (RS6000_BTI_dfloat128): Likewise.
23301         (long_double_type_internal_node): Likewise.
23302         (dfloat64_type_internal_node): Likewise.
23303         (dfloat128_type_internal_node): Likewise.
23304
23305         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
23306         2.07 bcd arithmetic instructions.
23307         (UNSPEC_BCDSUB): Likewise.
23308         (UNSPEC_BCD_OVERFLOW): Likewise.
23309         (UNSPEC_BCD_ADD_SUB): Likewise.
23310         (bcd_add_sub): Likewise.
23311         (BCD_TEST): Likewise.
23312         (bcd<bcd_add_sub>): Likewise.
23313         (bcd<bcd_add_sub>_test): Likewise.
23314         (bcd<bcd_add_sub>_test2): Likewise.
23315         (bcd<bcd_add_sub>_<code>): Likewise.
23316         (peephole2 for combined bcd ops): Likewise.
23317
23318         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
23319         decimal floating point builtin functions.
23320         (UNSPEC_DENBCD): Likewise.
23321         (UNSPEC_DXEX): Likewise.
23322         (UNSPEC_DIEX): Likewise.
23323         (UNSPEC_DSCLI): Likewise.
23324         (UNSPEC_DSCRI): Likewise.
23325         (D64_D128): Likewise.
23326         (dfp_suffix): Likewise.
23327         (dfp_ddedpd_<mode>): Likewise.
23328         (dfp_denbcd_<mode>): Likewise.
23329         (dfp_dxex_<mode>): Likewise.
23330         (dfp_diex_<mode>): Likewise.
23331         (dfp_dscli_<mode>): Likewise.
23332         (dfp_dscri_<mode>): Likewise.
23333
23334         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
23335         builtin functions.
23336         (UNSPEC_CDTBCD): Likewise.
23337         (UNSPEC_CBCDTD): Likewise.
23338         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
23339         (UNSPEC_DIVEO): Likewise.
23340         (UNSPEC_DIVEU): Likewise.
23341         (UNSPEC_DIVEUO): Likewise.
23342         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
23343         pack/unpack 128-bit types.
23344         (UNSPEC_PACK_128BIT): Likewise.
23345         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
23346         (udiv<mode>3): Use idiv_ldiv mode attribute.
23347         (div<mode>3): Likewise.
23348         (addg6s): Add new BCD builtin functions.
23349         (cdtbcd): Likewise.
23350         (cbcdtd): Likewise.
23351         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
23352         (div_extend): Likewise.
23353         (div<div_extend>_<mode>"): Likewise.
23354         (FP128_64): Add support for new builtin functions to pack/unpack
23355         128-bit types.
23356         (unpack<mode>): Likewise.
23357         (unpacktf_0): Likewise.
23358         (unpacktf_1): Likewise.
23359         (unpack<mode>_dm): Likewise.
23360         (unpack<mode>_nodm): Likewise.
23361         (pack<mode>): Likewise.
23362         (unpackv1ti): Likewise.
23363         (packv1ti): Likewise.
23364
23365 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
23366
23367         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
23368         is disabled.
23369
23370 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
23371
23372         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
23373         * gimplify.c (omp_is_private): Change last argument's type to int.
23374         Only diagnose lastprivate if the simd argument is 1, only diagnose
23375         linear if the simd argument is 2.
23376         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
23377         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
23378         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
23379         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
23380         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
23381         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
23382         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
23383         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
23384         * tree-nested.c (convert_nonlocal_omp_clauses,
23385         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
23386
23387 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
23388
23389         PR target/60822
23390         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
23391         operand 1.
23392
23393 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
23394
23395         * flag-types.h (enum ivar_visibility): Add.
23396
23397 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
23398
23399         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
23400         function * argument.
23401
23402 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
23403
23404         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
23405
23406 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
23407             Tom de Vries  <tom@codesourcery.com>
23408
23409         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
23410         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
23411         reg-note.
23412         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
23413         * emit-rtl.c (try_split): Same.
23414
23415 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
23416             Tom de Vries  <tom@codesourcery.com>
23417
23418         * common.opt (fuse-caller-save): New option.
23419
23420 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
23421
23422         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
23423         elements for big-endian.
23424
23425 2014-04-24  Richard Biener  <rguenther@suse.de>
23426
23427         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
23428         during TER and instead use the sepops interface for expanding
23429         non-GIMPLE_SINGLE_RHS.
23430
23431 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23432
23433         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
23434         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
23435
23436 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23437
23438         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
23439         assembler 64-bit option.
23440         * configure: Regenerate.
23441
23442 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23443
23444         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
23445         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
23446         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
23447         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
23448         (TARGET_CRYPTO): Take TARGET_SIMD into account.
23449
23450 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23451
23452         * config/aarch64/aarch64-builtins.c
23453         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
23454         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
23455         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
23456         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
23457         builtins.
23458         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
23459         (Vrevsuff): New mode attribute.
23460
23461 2014-04-24  Terry Guo  <terry.guo@arm.com>
23462
23463         * config/arm/arm.h (machine_function): Define variable
23464         after_arm_reorg here.
23465         * config/arm/arm.c (after_arm_reorg): Remove the definition.
23466         (arm_split_constant): Update the way to access variable
23467         after_arm_reorg.
23468         (arm_reorg): Ditto.
23469         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
23470
23471 2014-04-23  Tom de Vries  <tom@codesourcery.com>
23472
23473         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
23474
23475 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
23476
23477         * is-a.h: Update comments to reflect the following changes to the
23478         "pointerness" of the API, making the template parameter match the
23479         return type, allowing use of is-a.h with typedefs of pointers.
23480         (is_a_helper::cast): Return a T rather then a pointer to a T, so
23481         that the return type matches the parameter to the is_a_helper.
23482         (as_a): Likewise.
23483         (dyn_cast): Likewise.
23484
23485         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
23486         pointer from the is-a.h API.
23487
23488         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
23489         (is_a_helper <cgraph_node *>::test): ...this, matching change to
23490         is-a.h API.
23491         (is_a_helper <varpool_node>::test): Likewise, convert to...
23492         (is_a_helper <varpool_node *>::test): ...this.
23493
23494         (varpool_first_variable): Update for removal of implicit pointer
23495         from the is-a.h API.
23496         (varpool_next_variable): Likewise.
23497         (varpool_first_static_initializer): Likewise.
23498         (varpool_next_static_initializer): Likewise.
23499         (varpool_first_defined_variable): Likewise.
23500         (varpool_next_defined_variable): Likewise.
23501         (cgraph_first_defined_function): Likewise.
23502         (cgraph_next_defined_function): Likewise.
23503         (cgraph_first_function): Likewise.
23504         (cgraph_next_function): Likewise.
23505         (cgraph_first_function_with_gimple_body): Likewise.
23506         (cgraph_next_function_with_gimple_body): Likewise.
23507         (cgraph_alias_target): Likewise.
23508         (varpool_alias_target): Likewise.
23509         (cgraph_function_or_thunk_node): Likewise.
23510         (varpool_variable_node): Likewise.
23511         (symtab_real_symbol_p): Likewise.
23512         * cgraphunit.c (referred_to_p): Likewise.
23513         (analyze_functions): Likewise.
23514         (handle_alias_pairs): Likewise.
23515         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
23516         * gimple-ssa.h (gimple_vuse_op): Likewise.
23517         (gimple_vdef_op): Likewise.
23518         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
23519         * gimple.c (gimple_build_asm_1): Likewise.
23520         (gimple_build_try): Likewise.
23521         (gimple_build_resx): Likewise.
23522         (gimple_build_eh_dispatch): Likewise.
23523         (gimple_build_omp_for): Likewise.
23524         (gimple_omp_for_set_clauses): Likewise.
23525
23526         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
23527         (is_a_helper <gimple_statement_asm *>::test): ...this.
23528         (is_a_helper <gimple_statement_bind>::test): Convert to...
23529         (is_a_helper <gimple_statement_bind *>::test): ...this.
23530         (is_a_helper <gimple_statement_call>::test): Convert to...
23531         (is_a_helper <gimple_statement_call *>::test): ...this.
23532         (is_a_helper <gimple_statement_catch>::test): Convert to...
23533         (is_a_helper <gimple_statement_catch *>::test): ...this.
23534         (is_a_helper <gimple_statement_resx>::test): Convert to...
23535         (is_a_helper <gimple_statement_resx *>::test): ...this.
23536         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
23537         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
23538         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
23539         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
23540         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
23541         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
23542         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
23543         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
23544         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
23545         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
23546         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
23547         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
23548         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
23549         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
23550         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
23551         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
23552         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
23553         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
23554         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
23555         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
23556         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
23557         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
23558         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
23559         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
23560         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
23561         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
23562         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
23563         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
23564         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
23565         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
23566         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
23567         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
23568         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
23569         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
23570         (is_a_helper <gimple_statement_phi>::test): Convert to...
23571         (is_a_helper <gimple_statement_phi *>::test): ...this.
23572         (is_a_helper <gimple_statement_transaction>::test): Convert to...
23573         (is_a_helper <gimple_statement_transaction *>::test): ...this.
23574         (is_a_helper <gimple_statement_try>::test): Convert to...
23575         (is_a_helper <gimple_statement_try *>::test): ...this.
23576         (is_a_helper <gimple_statement_wce>::test): Convert to...
23577         (is_a_helper <gimple_statement_wce *>::test): ...this.
23578         (is_a_helper <const gimple_statement_asm>::test): Convert to...
23579         (is_a_helper <const gimple_statement_asm *>::test): ...this.
23580         (is_a_helper <const gimple_statement_bind>::test): Convert to...
23581         (is_a_helper <const gimple_statement_bind *>::test): ...this.
23582         (is_a_helper <const gimple_statement_call>::test): Convert to...
23583         (is_a_helper <const gimple_statement_call *>::test): ...this.
23584         (is_a_helper <const gimple_statement_catch>::test): Convert to...
23585         (is_a_helper <const gimple_statement_catch *>::test): ...this.
23586         (is_a_helper <const gimple_statement_resx>::test): Convert to...
23587         (is_a_helper <const gimple_statement_resx *>::test): ...this.
23588         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
23589         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
23590         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
23591         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
23592         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
23593         Convert to...
23594         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
23595         ...this.
23596         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
23597         Convert to...
23598         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
23599         ...this.
23600         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
23601         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
23602         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
23603         to...
23604         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
23605         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
23606         to...
23607         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
23608         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
23609         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
23610         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
23611         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
23612         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
23613         to...
23614         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
23615         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
23616         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
23617         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
23618         to...
23619         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
23620         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
23621         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
23622         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
23623         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
23624         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
23625         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
23626         (is_a_helper <const gimple_statement_phi>::test): Convert to...
23627         (is_a_helper <const gimple_statement_phi *>::test): ...this.
23628         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
23629         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
23630         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
23631         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
23632         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
23633         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
23634         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
23635         to...
23636         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
23637         ...this.
23638         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
23639         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
23640
23641         (gimple_use_ops): Update for removal of implicit pointer from the
23642         is-a.h API.
23643         (gimple_set_use_ops): Likewise.
23644         (gimple_vuse): Likewise.
23645         (gimple_vdef): Likewise.
23646         (gimple_vuse_ptr): Likewise.
23647         (gimple_vdef_ptr): Likewise.
23648         (gimple_set_vuse): Likewise.
23649         (gimple_set_vdef): Likewise.
23650         (gimple_omp_return_set_lhs): Likewise.
23651         (gimple_omp_return_lhs): Likewise.
23652         (gimple_omp_return_lhs_ptr): Likewise.
23653         (gimple_call_fntype): Likewise.
23654         (gimple_call_set_fntype): Likewise.
23655         (gimple_call_set_internal_fn): Likewise.
23656         (gimple_call_use_set): Likewise.
23657         (gimple_call_clobber_set): Likewise.
23658         (gimple_bind_vars): Likewise.
23659         (gimple_bind_set_vars): Likewise.
23660         (gimple_bind_body_ptr): Likewise.
23661         (gimple_bind_set_body): Likewise.
23662         (gimple_bind_add_stmt): Likewise.
23663         (gimple_bind_block): Likewise.
23664         (gimple_bind_set_block): Likewise.
23665         (gimple_asm_ninputs): Likewise.
23666         (gimple_asm_noutputs): Likewise.
23667         (gimple_asm_nclobbers): Likewise.
23668         (gimple_asm_nlabels): Likewise.
23669         (gimple_asm_input_op): Likewise.
23670         (gimple_asm_input_op_ptr): Likewise.
23671         (gimple_asm_output_op): Likewise.
23672         (gimple_asm_output_op_ptr): Likewise.
23673         (gimple_asm_set_output_op): Likewise.
23674         (gimple_asm_clobber_op): Likewise.
23675         (gimple_asm_set_clobber_op): Likewise.
23676         (gimple_asm_label_op): Likewise.
23677         (gimple_asm_set_label_op): Likewise.
23678         (gimple_asm_string): Likewise.
23679         (gimple_catch_types): Likewise.
23680         (gimple_catch_types_ptr): Likewise.
23681         (gimple_catch_handler_ptr): Likewise.
23682         (gimple_catch_set_types): Likewise.
23683         (gimple_catch_set_handler): Likewise.
23684         (gimple_eh_filter_types): Likewise.
23685         (gimple_eh_filter_types_ptr): Likewise.
23686         (gimple_eh_filter_failure_ptr): Likewise.
23687         (gimple_eh_filter_set_types): Likewise.
23688         (gimple_eh_filter_set_failure): Likewise.
23689         (gimple_eh_must_not_throw_fndecl): Likewise.
23690         (gimple_eh_must_not_throw_set_fndecl): Likewise.
23691         (gimple_eh_else_n_body_ptr): Likewise.
23692         (gimple_eh_else_e_body_ptr): Likewise.
23693         (gimple_eh_else_set_n_body): Likewise.
23694         (gimple_eh_else_set_e_body): Likewise.
23695         (gimple_try_eval_ptr): Likewise.
23696         (gimple_try_cleanup_ptr): Likewise.
23697         (gimple_try_set_eval): Likewise.
23698         (gimple_try_set_cleanup): Likewise.
23699         (gimple_wce_cleanup_ptr): Likewise.
23700         (gimple_wce_set_cleanup): Likewise.
23701         (gimple_phi_capacity): Likewise.
23702         (gimple_phi_num_args): Likewise.
23703         (gimple_phi_result): Likewise.
23704         (gimple_phi_result_ptr): Likewise.
23705         (gimple_phi_set_result): Likewise.
23706         (gimple_phi_arg): Likewise.
23707         (gimple_phi_set_arg): Likewise.
23708         (gimple_resx_region): Likewise.
23709         (gimple_resx_set_region): Likewise.
23710         (gimple_eh_dispatch_region): Likewise.
23711         (gimple_eh_dispatch_set_region): Likewise.
23712         (gimple_omp_critical_name): Likewise.
23713         (gimple_omp_critical_name_ptr): Likewise.
23714         (gimple_omp_critical_set_name): Likewise.
23715         (gimple_omp_for_clauses): Likewise.
23716         (gimple_omp_for_clauses_ptr): Likewise.
23717         (gimple_omp_for_set_clauses): Likewise.
23718         (gimple_omp_for_collapse): Likewise.
23719         (gimple_omp_for_index): Likewise.
23720         (gimple_omp_for_index_ptr): Likewise.
23721         (gimple_omp_for_set_index): Likewise.
23722         (gimple_omp_for_initial): Likewise.
23723         (gimple_omp_for_initial_ptr): Likewise.
23724         (gimple_omp_for_set_initial): Likewise.
23725         (gimple_omp_for_final): Likewise.
23726         (gimple_omp_for_final_ptr): Likewise.
23727         (gimple_omp_for_set_final): Likewise.
23728         (gimple_omp_for_incr): Likewise.
23729         (gimple_omp_for_incr_ptr): Likewise.
23730         (gimple_omp_for_set_incr): Likewise.
23731         (gimple_omp_for_pre_body_ptr): Likewise.
23732         (gimple_omp_for_set_pre_body): Likewise.
23733         (gimple_omp_parallel_clauses): Likewise.
23734         (gimple_omp_parallel_clauses_ptr): Likewise.
23735         (gimple_omp_parallel_set_clauses): Likewise.
23736         (gimple_omp_parallel_child_fn): Likewise.
23737         (gimple_omp_parallel_child_fn_ptr): Likewise.
23738         (gimple_omp_parallel_set_child_fn): Likewise.
23739         (gimple_omp_parallel_data_arg): Likewise.
23740         (gimple_omp_parallel_data_arg_ptr): Likewise.
23741         (gimple_omp_parallel_set_data_arg): Likewise.
23742         (gimple_omp_task_clauses): Likewise.
23743         (gimple_omp_task_clauses_ptr): Likewise.
23744         (gimple_omp_task_set_clauses): Likewise.
23745         (gimple_omp_task_child_fn): Likewise.
23746         (gimple_omp_task_child_fn_ptr): Likewise.
23747         (gimple_omp_task_set_child_fn): Likewise.
23748         (gimple_omp_task_data_arg): Likewise.
23749         (gimple_omp_task_data_arg_ptr): Likewise.
23750         (gimple_omp_task_set_data_arg): Likewise.
23751         (gimple_omp_taskreg_clauses): Likewise.
23752         (gimple_omp_taskreg_clauses_ptr): Likewise.
23753         (gimple_omp_taskreg_set_clauses): Likewise.
23754         (gimple_omp_taskreg_child_fn): Likewise.
23755         (gimple_omp_taskreg_child_fn_ptr): Likewise.
23756         (gimple_omp_taskreg_set_child_fn): Likewise.
23757         (gimple_omp_taskreg_data_arg): Likewise.
23758         (gimple_omp_taskreg_data_arg_ptr): Likewise.
23759         (gimple_omp_taskreg_set_data_arg): Likewise.
23760         (gimple_omp_task_copy_fn): Likewise.
23761         (gimple_omp_task_copy_fn_ptr): Likewise.
23762         (gimple_omp_task_set_copy_fn): Likewise.
23763         (gimple_omp_task_arg_size): Likewise.
23764         (gimple_omp_task_arg_size_ptr): Likewise.
23765         (gimple_omp_task_set_arg_size): Likewise.
23766         (gimple_omp_task_arg_align): Likewise.
23767         (gimple_omp_task_arg_align_ptr): Likewise.
23768         (gimple_omp_task_set_arg_align): Likewise.
23769         (gimple_omp_single_clauses): Likewise.
23770         (gimple_omp_single_clauses_ptr): Likewise.
23771         (gimple_omp_single_set_clauses): Likewise.
23772         (gimple_omp_target_clauses): Likewise.
23773         (gimple_omp_target_clauses_ptr): Likewise.
23774         (gimple_omp_target_set_clauses): Likewise.
23775         (gimple_omp_target_child_fn): Likewise.
23776         (gimple_omp_target_child_fn_ptr): Likewise.
23777         (gimple_omp_target_set_child_fn): Likewise.
23778         (gimple_omp_target_data_arg): Likewise.
23779         (gimple_omp_target_data_arg_ptr): Likewise.
23780         (gimple_omp_target_set_data_arg): Likewise.
23781         (gimple_omp_teams_clauses): Likewise.
23782         (gimple_omp_teams_clauses_ptr): Likewise.
23783         (gimple_omp_teams_set_clauses): Likewise.
23784         (gimple_omp_sections_clauses): Likewise.
23785         (gimple_omp_sections_clauses_ptr): Likewise.
23786         (gimple_omp_sections_set_clauses): Likewise.
23787         (gimple_omp_sections_control): Likewise.
23788         (gimple_omp_sections_control_ptr): Likewise.
23789         (gimple_omp_sections_set_control): Likewise.
23790         (gimple_omp_for_set_cond): Likewise.
23791         (gimple_omp_for_cond): Likewise.
23792         (gimple_omp_atomic_store_set_val): Likewise.
23793         (gimple_omp_atomic_store_val): Likewise.
23794         (gimple_omp_atomic_store_val_ptr): Likewise.
23795         (gimple_omp_atomic_load_set_lhs): Likewise.
23796         (gimple_omp_atomic_load_lhs): Likewise.
23797         (gimple_omp_atomic_load_lhs_ptr): Likewise.
23798         (gimple_omp_atomic_load_set_rhs): Likewise.
23799         (gimple_omp_atomic_load_rhs): Likewise.
23800         (gimple_omp_atomic_load_rhs_ptr): Likewise.
23801         (gimple_omp_continue_control_def): Likewise.
23802         (gimple_omp_continue_control_def_ptr): Likewise.
23803         (gimple_omp_continue_set_control_def): Likewise.
23804         (gimple_omp_continue_control_use): Likewise.
23805         (gimple_omp_continue_control_use_ptr): Likewise.
23806         (gimple_omp_continue_set_control_use): Likewise.
23807         (gimple_transaction_body_ptr): Likewise.
23808         (gimple_transaction_label): Likewise.
23809         (gimple_transaction_label_ptr): Likewise.
23810         (gimple_transaction_set_body): Likewise.
23811         (gimple_transaction_set_label): Likewise.
23812
23813         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
23814         * ipa-inline-analysis.c (inline_write_summary): Likewise.
23815         * ipa-ref.c (ipa_record_reference): Likewise.
23816         * ipa-reference.c (analyze_function): Likewise.
23817         (ipa_reference_write_optimization_summary): Likewise.
23818         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
23819         (address_taken_from_non_vtable_p): Likewise.
23820         (comdat_can_be_unshared_p_1): Likewise.
23821         * lto-cgraph.c (lto_output_ref): Likewise.
23822         (add_references): Likewise.
23823         (compute_ltrans_boundary): Likewise.
23824         (output_symtab): Likewise.
23825         (input_ref): Likewise.
23826         (input_cgraph_1): Likewise.
23827         (output_cgraph_opt_summary): Likewise.
23828         * lto-streamer-out.c (lto_output): Likewise.
23829         (output_symbol_p): Likewise.
23830         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
23831         (lsei_start_function_in_partition): Likewise.
23832         (lsei_next_variable_in_partition): Likewise.
23833         (lsei_start_variable_in_partition): Likewise.
23834         * symtab.c (insert_to_assembler_name_hash): Likewise.
23835         (unlink_from_assembler_name_hash): Likewise.
23836         (symtab_unregister_node): Likewise.
23837         (symtab_remove_node): Likewise.
23838         (dump_symtab_node): Likewise.
23839         (verify_symtab_base): Likewise.
23840         (verify_symtab_node): Likewise.
23841         (symtab_make_decl_local): Likewise.
23842         (symtab_alias_ultimate_target): Likewise.
23843         (symtab_resolve_alias): Likewise.
23844         (symtab_get_symbol_partitioning_class): Likewise.
23845         * tree-phinodes.c (allocate_phi_node): Likewise.
23846         (reserve_phi_args_for_new_edge): Likewise.
23847         (remove_phi_args): Likewise.
23848         * varpool.c (varpool_node_for_asm): Likewise.
23849         (varpool_remove_unreferenced_decls): Likewise.
23850
23851 2014-04-23  Jeff Law  <law@redhat.com>
23852
23853         PR tree-optimization/60902
23854         * tree-ssa-threadedge.c
23855         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
23856         invalidate outputs from statements that do not produce useful
23857         outputs for threading.
23858
23859 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
23860
23861         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
23862         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
23863         machine descriptions for Stack Smashing Protector.
23864
23865 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
23866
23867         * aarch64.md (<optab>_rol<mode>3): New pattern.
23868         (<optab>_rolsi3_uxtw): Likewise.
23869         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
23870
23871 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
23872
23873         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
23874         (arm_cortex_a12_tune): Likewise.
23875
23876 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23877
23878         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
23879
23880 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23881
23882         * config/arm/arm.md (arm_rev16si2): New pattern.
23883         (arm_rev16si2_alt): Likewise.
23884         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
23885
23886 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23887
23888         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
23889         (rev16<mode>2_alt): Likewise.
23890         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
23891         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
23892         (aarch_rev16_shleft_mask_imm_p): Likewise.
23893         (aarch_rev16_p_1): Likewise.
23894         (aarch_rev16_p): Likewise.
23895         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
23896         (aarch_rev16_shright_mask_imm_p): Likewise.
23897         (aarch_rev16_shleft_mask_imm_p): Likewise.
23898
23899 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23900
23901         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
23902         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
23903         rev cost.
23904         (cortex_a53_extra_costs): Likewise.
23905         (cortex_a57_extra_costs): Likewise.
23906         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
23907         (cortexa7_extra_costs): Likewise.
23908         (cortexa8_extra_costs): Likewise.
23909         (cortexa12_extra_costs): Likewise.
23910         (cortexa15_extra_costs): Likewise.
23911         (v7m_extra_costs): Likewise.
23912         (arm_new_rtx_costs): Handle BSWAP.
23913
23914 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23915
23916         * config/arm/arm.c (cortexa8_extra_costs): New table.
23917         (arm_cortex_a8_tune): New tuning struct.
23918         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
23919
23920 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23921
23922         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
23923
23924 2014-04-23  Richard Biener  <rguenther@suse.de>
23925
23926         * Makefile.in (OBJS): Remove loop-unswitch.o.
23927         * tree-pass.h (make_pass_rtl_unswitch): Remove.
23928         * passes.def (pass_rtl_unswitch): Likewise.
23929         * loop-init.c (gate_rtl_unswitch): Likewise.
23930         (rtl_unswitch): Likewise.
23931         (pass_data_rtl_unswitch): Likewise.
23932         (pass_rtl_unswitch): Likewise.
23933         (make_pass_rtl_unswitch): Likewise.
23934         * rtl.h (reversed_condition): Likewise.
23935         (compare_and_jump_seq): Likewise.
23936         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
23937         and make static.
23938         * loop-unroll.c (compare_and_jump_seq): Likewise.
23939
23940 2014-04-23  Richard Biener  <rguenther@suse.de>
23941
23942         PR tree-optimization/60903
23943         * tree-ssa-loop-im.c (analyze_memory_references): Remove
23944         commented code block.
23945         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
23946         loop flags to newly created BBs and edges.
23947
23948 2014-04-23  Nick Clifton  <nickc@redhat.com>
23949
23950         * config/msp430/msp430.c (msp430_handle_option): Move function
23951         to msp430-common.c
23952         (msp430_option_override): Simplify mcu and mcpu option handling.
23953         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
23954         support for -mhwmult command line option.
23955         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
23956         -mhwmult command line option.
23957         (msp430_hwmult_enabled): Delete.
23958         (msp43o_output_labelref): Add support for -mhwmult command line option.
23959         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
23960         (umulsidi3): Likewise.
23961         * config/msp430/msp430.opt (mmcu): Add Report attribute.
23962         (mcpu, mlarge, msmall): Likewise.
23963         (mhwmult): New option.
23964         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
23965         prototype.
23966         (msp430_is_f5_mcu): Remove prototype.
23967         (msp430_use_f5_series_hwmult): Add prototype.
23968         * config/msp430/msp430-opts.h: New file.
23969         * common/config/msp430: New directory.
23970         * common/config/msp430/msp430-common.c: New file.
23971         * config.gcc (msp430): Remove target_has_targetm_common.
23972         * doc/invoke.texi: Document -mhwmult command line option.
23973
23974 2014-04-23  Nick Clifton  <nickc@redhat.com>
23975
23976         * config/i386/cygwin.h (ENDFILE_SPEC): Include
23977         default-manifest.o if it can be found in the search path.
23978         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
23979
23980 2014-04-23  Terry Guo  <terry.guo@arm.com>
23981
23982         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
23983
23984 2014-04-23  Richard Biener  <rguenther@suse.de>
23985
23986         PR middle-end/60895
23987         * tree-inline.c (declare_return_variable): Use mark_addressable.
23988
23989 2014-04-23  Richard Biener  <rguenther@suse.de>
23990
23991         PR middle-end/60891
23992         * loop-init.c (loop_optimizer_init): Make sure to apply
23993         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
23994
23995 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
23996
23997         PR sanitizer/60275
23998         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
23999         New options.
24000         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
24001         if flag_sanitize_undefined_trap_on_error.
24002         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
24003         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
24004         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
24005         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
24006         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
24007         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
24008         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
24009         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
24010         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
24011         * ubsan.c (ubsan_instrument_unreachable): Return
24012         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
24013         (ubsan_expand_null_ifn): Emit __builtin_trap ()
24014         if flag_sanitize_undefined_trap_on_error and
24015         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
24016         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
24017         instrument_bool_enum_load): Emit __builtin_trap () if
24018         flag_sanitize_undefined_trap_on_error and
24019         __builtin_handle_*_abort () if !flag_sanitize_recover.
24020         * doc/invoke.texi (-fsanitize-recover,
24021         -fsanitize-undefined-trap-on-error): Document.
24022
24023 2014-04-22  Christian Bruel  <christian.bruel@st.com>
24024
24025         * config/sh/sh.md (mov<mode>): Replace movQIHI.
24026          Force immediates to SImode.
24027
24028 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
24029
24030         * config/nios2/nios2.md (UNSPEC_ROUND): New.
24031         (lroundsfsi2): New.
24032         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
24033         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
24034         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
24035         (nios2_fpu_insn): Add entry for round.
24036         (N2FPU_NO_ERRNO_P): Define.
24037         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
24038         flag_errno_math.
24039         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
24040
24041 2014-04-22  Richard Henderson  <rth@redhat.com>
24042
24043         * config/aarch64/aarch64 (addti3, subti3): New expanders.
24044         (add<GPI>3_compare0): Remove leading * from name.
24045         (add<GPI>3_carryin): Likewise.
24046         (sub<GPI>3_compare0): Likewise.
24047         (sub<GPI>3_carryin): Likewise.
24048         (<su_optab>mulditi3): New expander.
24049         (multi3): New expander.
24050         (madd<GPI>): Remove leading * from name.
24051
24052 2014-04-22  Martin Jambor  <mjambor@suse.cz>
24053
24054         * cgraphclones.c (cgraph_function_versioning): Copy
24055         ipa_transforms_to_apply instead of asserting it is empty.
24056
24057 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
24058
24059         PR target/60868
24060         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
24061         on count_exp to get mode.
24062
24063 2014-04-22  Andrew Pinski  <apinski@cavium.com>
24064
24065         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
24066         Handle TLS for ILP32.
24067         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
24068         (tlsie_small_<mode>): this and handle PTR.
24069         (tlsie_small_sidi): New pattern.
24070         (tlsle_small): Change to an expand to handle ILP32.
24071         (tlsle_small_<mode>): New pattern.
24072         (tlsdesc_small): Rename to ...
24073         (tlsdesc_small_<mode>): this and handle PTR.
24074
24075 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24076
24077         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
24078
24079 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24080
24081         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
24082         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
24083         (aarch64_types_signed_poly_qualifiers): Likewise.
24084         (aarch64_types_unsigned_signed_qualifiers): Likewise.
24085         (aarch64_types_poly_signed_qualifiers): Likewise.
24086         (TYPES_REINTERP_SS): Type macro added.
24087         (TYPES_REINTERP_SU): Likewise.
24088         (TYPES_REINTERP_SP): Likewise.
24089         (TYPES_REINTERP_US): Likewise.
24090         (TYPES_REINTERP_PS): Likewise.
24091         (aarch64_fold_builtin): New expression folding added.
24092         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
24093         Declarations removed.
24094         (REINTERP_SS): Declarations added.
24095         (REINTERP_US): Likewise.
24096         (REINTERP_PS): Likewise.
24097         (REINTERP_SU): Likewise.
24098         (REINTERP_SP): Likewise.
24099         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
24100         (vreinterpretq_p8_f64): Likewise.
24101         (vreinterpret_p16_f64): Likewise.
24102         (vreinterpretq_p16_f64): Likewise.
24103         (vreinterpret_f32_f64): Likewise.
24104         (vreinterpretq_f32_f64): Likewise.
24105         (vreinterpret_f64_f32): Likewise.
24106         (vreinterpret_f64_p8): Likewise.
24107         (vreinterpret_f64_p16): Likewise.
24108         (vreinterpret_f64_s8): Likewise.
24109         (vreinterpret_f64_s16): Likewise.
24110         (vreinterpret_f64_s32): Likewise.
24111         (vreinterpret_f64_s64): Likewise.
24112         (vreinterpret_f64_u8): Likewise.
24113         (vreinterpret_f64_u16): Likewise.
24114         (vreinterpret_f64_u32): Likewise.
24115         (vreinterpret_f64_u64): Likewise.
24116         (vreinterpretq_f64_f32): Likewise.
24117         (vreinterpretq_f64_p8): Likewise.
24118         (vreinterpretq_f64_p16): Likewise.
24119         (vreinterpretq_f64_s8): Likewise.
24120         (vreinterpretq_f64_s16): Likewise.
24121         (vreinterpretq_f64_s32): Likewise.
24122         (vreinterpretq_f64_s64): Likewise.
24123         (vreinterpretq_f64_u8): Likewise.
24124         (vreinterpretq_f64_u16): Likewise.
24125         (vreinterpretq_f64_u32): Likewise.
24126         (vreinterpretq_f64_u64): Likewise.
24127         (vreinterpret_s64_f64): Likewise.
24128         (vreinterpretq_s64_f64): Likewise.
24129         (vreinterpret_u64_f64): Likewise.
24130         (vreinterpretq_u64_f64): Likewise.
24131         (vreinterpret_s8_f64): Likewise.
24132         (vreinterpretq_s8_f64): Likewise.
24133         (vreinterpret_s16_f64): Likewise.
24134         (vreinterpretq_s16_f64): Likewise.
24135         (vreinterpret_s32_f64): Likewise.
24136         (vreinterpretq_s32_f64): Likewise.
24137         (vreinterpret_u8_f64): Likewise.
24138         (vreinterpretq_u8_f64): Likewise.
24139         (vreinterpret_u16_f64): Likewise.
24140         (vreinterpretq_u16_f64): Likewise.
24141         (vreinterpret_u32_f64): Likewise.
24142         (vreinterpretq_u32_f64): Likewise.
24143
24144 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24145
24146         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
24147         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
24148         (vreinterpret_p8_s8): Likewise.
24149         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
24150         (vreinterpret_p8_s16): Likewise.
24151         (vreinterpret_p8_s32): Likewise.
24152         (vreinterpret_p8_s64): Likewise.
24153         (vreinterpret_p8_f32): Likewise.
24154         (vreinterpret_p8_u8): Likewise.
24155         (vreinterpret_p8_u16): Likewise.
24156         (vreinterpret_p8_u32): Likewise.
24157         (vreinterpret_p8_u64): Likewise.
24158         (vreinterpret_p8_p16): Likewise.
24159         (vreinterpretq_p8_s8): Likewise.
24160         (vreinterpretq_p8_s16): Likewise.
24161         (vreinterpretq_p8_s32): Likewise.
24162         (vreinterpretq_p8_s64): Likewise.
24163         (vreinterpretq_p8_f32): Likewise.
24164         (vreinterpretq_p8_u8): Likewise.
24165         (vreinterpretq_p8_u16): Likewise.
24166         (vreinterpretq_p8_u32): Likewise.
24167         (vreinterpretq_p8_u64): Likewise.
24168         (vreinterpretq_p8_p16): Likewise.
24169         (vreinterpret_p16_s8): Likewise.
24170         (vreinterpret_p16_s16): Likewise.
24171         (vreinterpret_p16_s32): Likewise.
24172         (vreinterpret_p16_s64): Likewise.
24173         (vreinterpret_p16_f32): Likewise.
24174         (vreinterpret_p16_u8): Likewise.
24175         (vreinterpret_p16_u16): Likewise.
24176         (vreinterpret_p16_u32): Likewise.
24177         (vreinterpret_p16_u64): Likewise.
24178         (vreinterpret_p16_p8): Likewise.
24179         (vreinterpretq_p16_s8): Likewise.
24180         (vreinterpretq_p16_s16): Likewise.
24181         (vreinterpretq_p16_s32): Likewise.
24182         (vreinterpretq_p16_s64): Likewise.
24183         (vreinterpretq_p16_f32): Likewise.
24184         (vreinterpretq_p16_u8): Likewise.
24185         (vreinterpretq_p16_u16): Likewise.
24186         (vreinterpretq_p16_u32): Likewise.
24187         (vreinterpretq_p16_u64): Likewise.
24188         (vreinterpretq_p16_p8): Likewise.
24189         (vreinterpret_f32_s8): Likewise.
24190         (vreinterpret_f32_s16): Likewise.
24191         (vreinterpret_f32_s32): Likewise.
24192         (vreinterpret_f32_s64): Likewise.
24193         (vreinterpret_f32_u8): Likewise.
24194         (vreinterpret_f32_u16): Likewise.
24195         (vreinterpret_f32_u32): Likewise.
24196         (vreinterpret_f32_u64): Likewise.
24197         (vreinterpret_f32_p8): Likewise.
24198         (vreinterpret_f32_p16): Likewise.
24199         (vreinterpretq_f32_s8): Likewise.
24200         (vreinterpretq_f32_s16): Likewise.
24201         (vreinterpretq_f32_s32): Likewise.
24202         (vreinterpretq_f32_s64): Likewise.
24203         (vreinterpretq_f32_u8): Likewise.
24204         (vreinterpretq_f32_u16): Likewise.
24205         (vreinterpretq_f32_u32): Likewise.
24206         (vreinterpretq_f32_u64): Likewise.
24207         (vreinterpretq_f32_p8): Likewise.
24208         (vreinterpretq_f32_p16): Likewise.
24209         (vreinterpret_s64_s8): Likewise.
24210         (vreinterpret_s64_s16): Likewise.
24211         (vreinterpret_s64_s32): Likewise.
24212         (vreinterpret_s64_f32): Likewise.
24213         (vreinterpret_s64_u8): Likewise.
24214         (vreinterpret_s64_u16): Likewise.
24215         (vreinterpret_s64_u32): Likewise.
24216         (vreinterpret_s64_u64): Likewise.
24217         (vreinterpret_s64_p8): Likewise.
24218         (vreinterpret_s64_p16): Likewise.
24219         (vreinterpretq_s64_s8): Likewise.
24220         (vreinterpretq_s64_s16): Likewise.
24221         (vreinterpretq_s64_s32): Likewise.
24222         (vreinterpretq_s64_f32): Likewise.
24223         (vreinterpretq_s64_u8): Likewise.
24224         (vreinterpretq_s64_u16): Likewise.
24225         (vreinterpretq_s64_u32): Likewise.
24226         (vreinterpretq_s64_u64): Likewise.
24227         (vreinterpretq_s64_p8): Likewise.
24228         (vreinterpretq_s64_p16): Likewise.
24229         (vreinterpret_u64_s8): Likewise.
24230         (vreinterpret_u64_s16): Likewise.
24231         (vreinterpret_u64_s32): Likewise.
24232         (vreinterpret_u64_s64): Likewise.
24233         (vreinterpret_u64_f32): Likewise.
24234         (vreinterpret_u64_u8): Likewise.
24235         (vreinterpret_u64_u16): Likewise.
24236         (vreinterpret_u64_u32): Likewise.
24237         (vreinterpret_u64_p8): Likewise.
24238         (vreinterpret_u64_p16): Likewise.
24239         (vreinterpretq_u64_s8): Likewise.
24240         (vreinterpretq_u64_s16): Likewise.
24241         (vreinterpretq_u64_s32): Likewise.
24242         (vreinterpretq_u64_s64): Likewise.
24243         (vreinterpretq_u64_f32): Likewise.
24244         (vreinterpretq_u64_u8): Likewise.
24245         (vreinterpretq_u64_u16): Likewise.
24246         (vreinterpretq_u64_u32): Likewise.
24247         (vreinterpretq_u64_p8): Likewise.
24248         (vreinterpretq_u64_p16): Likewise.
24249         (vreinterpret_s8_s16): Likewise.
24250         (vreinterpret_s8_s32): Likewise.
24251         (vreinterpret_s8_s64): Likewise.
24252         (vreinterpret_s8_f32): Likewise.
24253         (vreinterpret_s8_u8): Likewise.
24254         (vreinterpret_s8_u16): Likewise.
24255         (vreinterpret_s8_u32): Likewise.
24256         (vreinterpret_s8_u64): Likewise.
24257         (vreinterpret_s8_p8): Likewise.
24258         (vreinterpret_s8_p16): Likewise.
24259         (vreinterpretq_s8_s16): Likewise.
24260         (vreinterpretq_s8_s32): Likewise.
24261         (vreinterpretq_s8_s64): Likewise.
24262         (vreinterpretq_s8_f32): Likewise.
24263         (vreinterpretq_s8_u8): Likewise.
24264         (vreinterpretq_s8_u16): Likewise.
24265         (vreinterpretq_s8_u32): Likewise.
24266         (vreinterpretq_s8_u64): Likewise.
24267         (vreinterpretq_s8_p8): Likewise.
24268         (vreinterpretq_s8_p16): Likewise.
24269         (vreinterpret_s16_s8): Likewise.
24270         (vreinterpret_s16_s32): Likewise.
24271         (vreinterpret_s16_s64): Likewise.
24272         (vreinterpret_s16_f32): Likewise.
24273         (vreinterpret_s16_u8): Likewise.
24274         (vreinterpret_s16_u16): Likewise.
24275         (vreinterpret_s16_u32): Likewise.
24276         (vreinterpret_s16_u64): Likewise.
24277         (vreinterpret_s16_p8): Likewise.
24278         (vreinterpret_s16_p16): Likewise.
24279         (vreinterpretq_s16_s8): Likewise.
24280         (vreinterpretq_s16_s32): Likewise.
24281         (vreinterpretq_s16_s64): Likewise.
24282         (vreinterpretq_s16_f32): Likewise.
24283         (vreinterpretq_s16_u8): Likewise.
24284         (vreinterpretq_s16_u16): Likewise.
24285         (vreinterpretq_s16_u32): Likewise.
24286         (vreinterpretq_s16_u64): Likewise.
24287         (vreinterpretq_s16_p8): Likewise.
24288         (vreinterpretq_s16_p16): Likewise.
24289         (vreinterpret_s32_s8): Likewise.
24290         (vreinterpret_s32_s16): Likewise.
24291         (vreinterpret_s32_s64): Likewise.
24292         (vreinterpret_s32_f32): Likewise.
24293         (vreinterpret_s32_u8): Likewise.
24294         (vreinterpret_s32_u16): Likewise.
24295         (vreinterpret_s32_u32): Likewise.
24296         (vreinterpret_s32_u64): Likewise.
24297         (vreinterpret_s32_p8): Likewise.
24298         (vreinterpret_s32_p16): Likewise.
24299         (vreinterpretq_s32_s8): Likewise.
24300         (vreinterpretq_s32_s16): Likewise.
24301         (vreinterpretq_s32_s64): Likewise.
24302         (vreinterpretq_s32_f32): Likewise.
24303         (vreinterpretq_s32_u8): Likewise.
24304         (vreinterpretq_s32_u16): Likewise.
24305         (vreinterpretq_s32_u32): Likewise.
24306         (vreinterpretq_s32_u64): Likewise.
24307         (vreinterpretq_s32_p8): Likewise.
24308         (vreinterpretq_s32_p16): Likewise.
24309         (vreinterpret_u8_s8): Likewise.
24310         (vreinterpret_u8_s16): Likewise.
24311         (vreinterpret_u8_s32): Likewise.
24312         (vreinterpret_u8_s64): Likewise.
24313         (vreinterpret_u8_f32): Likewise.
24314         (vreinterpret_u8_u16): Likewise.
24315         (vreinterpret_u8_u32): Likewise.
24316         (vreinterpret_u8_u64): Likewise.
24317         (vreinterpret_u8_p8): Likewise.
24318         (vreinterpret_u8_p16): Likewise.
24319         (vreinterpretq_u8_s8): Likewise.
24320         (vreinterpretq_u8_s16): Likewise.
24321         (vreinterpretq_u8_s32): Likewise.
24322         (vreinterpretq_u8_s64): Likewise.
24323         (vreinterpretq_u8_f32): Likewise.
24324         (vreinterpretq_u8_u16): Likewise.
24325         (vreinterpretq_u8_u32): Likewise.
24326         (vreinterpretq_u8_u64): Likewise.
24327         (vreinterpretq_u8_p8): Likewise.
24328         (vreinterpretq_u8_p16): Likewise.
24329         (vreinterpret_u16_s8): Likewise.
24330         (vreinterpret_u16_s16): Likewise.
24331         (vreinterpret_u16_s32): Likewise.
24332         (vreinterpret_u16_s64): Likewise.
24333         (vreinterpret_u16_f32): Likewise.
24334         (vreinterpret_u16_u8): Likewise.
24335         (vreinterpret_u16_u32): Likewise.
24336         (vreinterpret_u16_u64): Likewise.
24337         (vreinterpret_u16_p8): Likewise.
24338         (vreinterpret_u16_p16): Likewise.
24339         (vreinterpretq_u16_s8): Likewise.
24340         (vreinterpretq_u16_s16): Likewise.
24341         (vreinterpretq_u16_s32): Likewise.
24342         (vreinterpretq_u16_s64): Likewise.
24343         (vreinterpretq_u16_f32): Likewise.
24344         (vreinterpretq_u16_u8): Likewise.
24345         (vreinterpretq_u16_u32): Likewise.
24346         (vreinterpretq_u16_u64): Likewise.
24347         (vreinterpretq_u16_p8): Likewise.
24348         (vreinterpretq_u16_p16): Likewise.
24349         (vreinterpret_u32_s8): Likewise.
24350         (vreinterpret_u32_s16): Likewise.
24351         (vreinterpret_u32_s32): Likewise.
24352         (vreinterpret_u32_s64): Likewise.
24353         (vreinterpret_u32_f32): Likewise.
24354         (vreinterpret_u32_u8): Likewise.
24355         (vreinterpret_u32_u16): Likewise.
24356         (vreinterpret_u32_u64): Likewise.
24357         (vreinterpret_u32_p8): Likewise.
24358         (vreinterpret_u32_p16): Likewise.
24359         (vreinterpretq_u32_s8): Likewise.
24360         (vreinterpretq_u32_s16): Likewise.
24361         (vreinterpretq_u32_s32): Likewise.
24362         (vreinterpretq_u32_s64): Likewise.
24363         (vreinterpretq_u32_f32): Likewise.
24364         (vreinterpretq_u32_u8): Likewise.
24365         (vreinterpretq_u32_u16): Likewise.
24366         (vreinterpretq_u32_u64): Likewise.
24367         (vreinterpretq_u32_p8): Likewise.
24368         (vreinterpretq_u32_p16): Likewise.
24369
24370 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24371
24372         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
24373         Pattern extended.
24374         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
24375         (sqabs): Likewise.
24376         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
24377         (vqnegd_s64): Likewise.
24378         (vqabs_s64): Likewise.
24379         (vqabsd_s64): Likewise.
24380
24381 2014-04-22  Richard Henderson  <rth@redhat.com>
24382
24383         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
24384         computation to the top of the loop.
24385
24386 2014-04-22  Renlin  <renlin.li@arm.com>
24387             Jiong Wang  <jiong.wang@arm.com>
24388
24389         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
24390         * config/aarch64/aarch64.c (aarch64_layout_frame)
24391         (aarch64_initial_elimination_offset): Likewise.
24392
24393 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
24394
24395         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
24396         Fix indentation.
24397
24398 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
24399
24400         * machmode.h (bitwise_mode_for_mode): Declare.
24401         * stor-layout.h (bitwise_type_for_mode): Likewise.
24402         * stor-layout.c (bitwise_mode_for_mode): New function.
24403         (bitwise_type_for_mode): Likewise.
24404         * builtins.c (fold_builtin_memory_op): Use it instead of
24405         int_mode_for_mode and build_nonstandard_integer_type.
24406
24407 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24408
24409         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
24410         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
24411         (*-*-solaris2*): Simplify.
24412         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
24413         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
24414         *-*-solaris2.9* handling.
24415
24416         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
24417         as bug.
24418         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
24419         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
24420         handling, simplify.
24421         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
24422         * configure: Regenerate.
24423
24424         * config/i386/sol2-9.h: Remove.
24425
24426         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
24427         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
24428         Remove Solaris 9 references.
24429
24430 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
24431
24432         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
24433         (floatuns<GPI:mode><GPF:mode>2): Remove.
24434         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
24435         and floatuns conversions.
24436         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
24437         and floatuns conversions.
24438         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
24439         (w1,w2): New mode attributes for inequal width conversions.
24440
24441 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
24442
24443         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
24444         the output asm format.
24445
24446 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
24447
24448         * config/aarch64/aarch64-simd.md
24449         (aarch64_cm<optab>di): Always split.
24450         (*aarch64_cm<optab>di): New.
24451         (aarch64_cmtstdi): Always split.
24452         (*aarch64_cmtstdi): New.
24453
24454 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
24455
24456         PR tree-optimization/60823
24457         * omp-low.c (ipa_simd_modify_function_body): Go through
24458         all SSA_NAMEs and for those refering to vector arguments
24459         which are going to be replaced adjust SSA_NAME_VAR and,
24460         if it is a default definition, change it into a non-default
24461         definition assigned at the beginning of function from new_decl.
24462         (ipa_simd_modify_stmt_ops): Rewritten.
24463         * tree-dfa.c (set_ssa_default_def): When removing default def,
24464         check for NULL loc instead of NULL *loc.
24465
24466 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24467
24468         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
24469         restrictions on core registers for DImode values in Thumb2.
24470
24471 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
24472
24473         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
24474         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
24475
24476 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
24477
24478         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
24479         (*iordi_notzesidi_di): Likewise.
24480         (*iordi_notsesidi_di): Likewise.
24481
24482 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
24483
24484         * config/arm/arm-protos.h (tune_params): New struct members.
24485         * config/arm/arm.c: Initialise tune_params per processor.
24486         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
24487         for speed, based on new tune_params.
24488
24489 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24490
24491         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
24492         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
24493         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
24494         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
24495         * config/aarch64/arm_neon.h (vrnd_f64): Added.
24496         (vrnda_f64): Likewise.
24497         (vrndi_f64): Likewise.
24498         (vrndm_f64): Likewise.
24499         (vrndn_f64): Likewise.
24500         (vrndp_f64): Likewise.
24501         (vrndx_f64): Likewise.
24502
24503 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24504
24505         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
24506         GET_MODE_SIZE argument is enum machine_mode.
24507
24508 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
24509
24510         PR target/60910
24511         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
24512         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
24513
24514 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
24515
24516         PR middle-end/60281
24517         * asan.c (asan_emit_stack_protection): Force the base to align to
24518         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
24519         appropriate bits if STRICT_ALIGNMENT.
24520         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
24521         when asan is on.
24522         (expand_used_vars): Leave a space in the stack frame for alignment
24523         if STRICT_ALIGNMENT.
24524
24525 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
24526
24527         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
24528         than a gimple.
24529         (gimple_store_p): Likewise.
24530         (gimple_assign_load_p): Likewise.
24531         (gimple_assign_cast_p): Likewise.
24532         (gimple_clobber_p): Likewise.
24533
24534         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
24535         rather than a gimple.
24536         (gimple_assign_cast_p): Likewise.
24537
24538 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
24539
24540         PR target/60735
24541         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
24542         If mode is DDmode and TARGET_E500_DOUBLE allow move.
24543
24544         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
24545         more debug information for E500 if -mdebug=reg.
24546
24547 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
24548
24549         PR target/60909
24550         * config/i386/i386.c (ix86_expand_builtin)
24551         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
24552         register for target RTX.
24553         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
24554
24555 2014-04-18  Cong Hou  <congh@google.com>
24556
24557         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
24558         the widen-mult pattern by handling two operands with different sizes,
24559         and operands whose size is smaller than half of the result type.
24560
24561 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
24562
24563         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
24564         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
24565         (do_estimate_edge_time): Compute it.
24566         * ipa-inline.c (want_inline_small_function_p): Bypass
24567         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
24568
24569 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
24570
24571         * ipa-inline.c (spec_rem): New static variable.
24572         (dump_overall_stats): New function.
24573         (dump_inline_stats): New function.
24574
24575 2014-04-18  Richard Henderson  <rth@redhat.com>
24576
24577         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
24578         to GET_MODE_SIZE, not a reg_class_t.
24579
24580 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24581
24582         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
24583         (vsx_xxmrglw_<mode>): Likewise.
24584
24585 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
24586
24587         PR target/60876
24588         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
24589         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
24590         (rs6000_init_hard_regno_mode_ok): Likewise.
24591
24592 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
24593
24594         * ipa-inline.c (inline_small_functions): Account only non-cold
24595         functions.
24596         * doc/invoke.texi (inline-unit-growth): Update documentation.
24597
24598 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
24599
24600         * config/rs6000/rs6000.md (addti3, subti3): New.
24601
24602 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
24603
24604         PR target/60863
24605         * config/i386/i386.c (ix86_expand_clear): Remove outdated
24606         comment.  Check optimize_insn_for_size_p instead of
24607         optimize_insn_for_speed_p.
24608
24609 2014-04-17  Martin Jambor  <mjambor@suse.cz>
24610
24611         * gimple-iterator.c (gsi_start_edge): New function.
24612         * gimple-iterator.h (gsi_start_edge): Declare.
24613         * tree-sra.c (single_non_eh_succ): New function.
24614         (disqualify_ops_if_throwing_stmt): Renamed to
24615         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
24616         having one non-EH successor BB.
24617         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
24618         generate loads into replacements.
24619         (sra_modify_assign): Likewise and and also use the simple path for
24620         such statements.
24621         (sra_modify_function_body): Commit statements on edges.
24622
24623 2014-04-17  Richard Biener  <rguenther@suse.de>
24624
24625         PR middle-end/60849
24626         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
24627         comparison results and add clarifying comment.
24628
24629 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
24630
24631         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
24632         (blank_mode): Initialize it.
24633         (emit_mode_size_inline, emit_mode_nunits_inline,
24634         emit_mode_inner_inline): New functions.
24635         (emit_insn_modes_h): Call them and surround their output with
24636         #if GCC_VERSION >= 4001 ... #endif.
24637         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
24638         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
24639         mode_* arrays if the argument is __builtin_constant_p.
24640         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
24641         is enum machine_mode.
24642
24643 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24644
24645         * passes.c (opt_pass::execute): Adjust.
24646         (pass_manager::execute_pass_mode_switching): Likewise.
24647         (early_local_passes::execute): Likewise.
24648         (execute_one_pass): Pass cfun to the pass's execute method.
24649         * tree-pass.h (opt_pass::execute): Add function * argument.
24650         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
24651         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
24652         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
24653         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
24654         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
24655         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
24656         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
24657         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
24658         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
24659         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
24660         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
24661         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
24662         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
24663         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
24664         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
24665         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
24666         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
24667         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
24668         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
24669         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
24670         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
24671         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
24672         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
24673         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
24674         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
24675         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
24676         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
24677         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
24678         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
24679         Adjust.
24680
24681 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24682
24683         * passes.c (opt_pass::gate): Take function * argument.
24684         (gate_all_early_local_passes): Merge into
24685         (early_local_passes::gate): this.
24686         (gate_all_early_optimizations): Merge into
24687         (all_early_optimizations::gate): this.
24688         (gate_all_optimizations): Mege into
24689         (all_optimizations::gate): this.
24690         (gate_all_optimizations_g): Merge into
24691         (all_optimizations_g::gate): this.
24692         (gate_rest_of_compilation): Mege into
24693         (rest_of_compilation::gate): this.
24694         (gate_postreload): Merge into
24695         (postreload::gate): this.
24696         (dump_one_pass): Pass cfun to the pass's gate method.
24697         (execute_ipa_summary_passes): Likewise.
24698         (execute_one_pass): Likewise.
24699         (ipa_write_summaries_2): Likewise.
24700         (ipa_write_optimization_summaries_1): Likewise.
24701         (ipa_read_summaries_1): Likewise.
24702         (ipa_read_optimization_summaries_1): Likewise.
24703         (execute_ipa_stmt_fixups): Likewise.
24704         * tree-pass.h (opt_pass::gate): Add function * argument.
24705         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
24706         combine-stack-adj.c, combine.c, compare-elim.c,
24707         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
24708         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
24709         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
24710         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
24711         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
24712         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
24713         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
24714         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
24715         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
24716         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
24717         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
24718         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
24719         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
24720         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
24721         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
24722         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
24723         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
24724         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
24725         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
24726         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
24727         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
24728         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
24729         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
24730         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
24731         var-tracking.c, vtable-verify.c, web.c: Adjust.
24732
24733 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24734
24735         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
24736         * configure: Regenerate.
24737
24738 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24739
24740         * passes.c (dump_one_pass): don't check pass->has_gate.
24741         (execute_ipa_summary_passes): Likewise.
24742         (execute_one_pass): Likewise.
24743         (ipa_write_summaries_2): Likewise.
24744         (ipa_write_optimization_summaries_1): Likewise.
24745         (ipa_read_optimization_summaries_1): Likewise.
24746         (execute_ipa_stmt_fixups): Likewise.
24747         * tree-pass.h (pass_data::has_gate): Remove.
24748         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
24749         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
24750         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
24751         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
24752         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
24753         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
24754         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
24755         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
24756         gimple-low.c, gimple-ssa-isolate-paths.c,
24757         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
24758         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
24759         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
24760         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
24761         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
24762         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
24763         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
24764         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
24765         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
24766         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
24767         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
24768         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
24769         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
24770         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
24771         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
24772         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
24773         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
24774         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
24775         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
24776         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
24777         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
24778         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
24779         Adjust.
24780
24781 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24782
24783         * pass_manager.h (pass_manager::register_dump_files_1): Remove
24784         declaration.
24785         * passes.c (pass_manager::register_dump_files_1): Merge into
24786         (pass_manager::register_dump_files): this, and remove its handling of
24787         properties since the pass always has the properties anyway.
24788         (pass_manager::pass_manager): Adjust.
24789
24790 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24791
24792         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
24793         * passes.c (pass_manager::register_dump_files_1): Remove dead code
24794         dealing with properties.
24795         (pass_manager::register_dump_files): Adjust.
24796
24797 2014-03-20  Mark Wielaard  <mjw@redhat.com>
24798
24799         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
24800         then represent the bound as normal constant value.
24801
24802 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
24803
24804         PR target/60847
24805         Forward port from 4.8 branch
24806         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
24807
24808         * config/i386/bmiintrin.h (_blsi_u32): New.
24809         (_blsi_u64): Ditto.
24810         (_blsr_u32): Ditto.
24811         (_blsr_u64): Ditto.
24812         (_blsmsk_u32): Ditto.
24813         (_blsmsk_u64): Ditto.
24814         (_tzcnt_u32): Ditto.
24815         (_tzcnt_u64): Ditto.
24816
24817 2014-04-17  Kito Cheng  <kito@0xlab.org>
24818
24819         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
24820
24821 2014-04-17  Richard Biener  <rguenther@suse.de>
24822
24823         PR middle-end/60849
24824         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
24825         boolean results for comparisons.
24826
24827 2014-04-17  Richard Biener  <rguenther@suse.de>
24828
24829         PR tree-optimization/60836
24830         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
24831         initial PHI args to be gimple values.
24832
24833 2014-04-17  Richard Biener  <rguenther@suse.de>
24834
24835         PR tree-optimization/60841
24836         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
24837         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
24838         of stmts to SLP build.
24839         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
24840         (vect_analyze_slp): Likewise.
24841         (vect_analyze_slp_instance): Likewise.
24842         (vect_build_slp_tree): Limit overall SLP tree growth.
24843         * tree-vectorizer.h (vect_analyze_data_refs,
24844         vect_analyze_slp): Adjust prototypes.
24845
24846 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
24847
24848         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
24849         Silvermont.
24850
24851 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
24852
24853         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
24854         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
24855         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
24856         for TARGET_SLOW_PSHUFB
24857
24858 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
24859
24860         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
24861         * config/i386/i386.c (intel_cost): Ditto.
24862
24863 2014-04-17  Joey Ye  <joey.ye@arm.com>
24864
24865         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
24866
24867 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
24868
24869         * opts.c (common_handle_option): Disable -fipa-reference coorectly
24870         with -fuse-profile.
24871
24872 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
24873
24874         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
24875         (type_all_derivations_known_p): New predicate.
24876         (type_all_ctors_visible_p): New predicate.
24877         (type_possibly_instantiated_p): New predicate.
24878         (get_odr_type): Compute all_derivations_known.
24879         (dump_odr_type): Dump the flag.
24880         (maybe_record_type): Cleanup.
24881         (record_target_from_binfo): Add bases_to_consider array;
24882         record bases for types w/o instances and skip CXX destructor.
24883         (possible_polymorphic_call_targets_1): Add bases_to_consider
24884         and consider_construction parameters; check if type may have instance.
24885         (get_polymorphic_call_info): Set maybe_in_construction to true
24886         when we know nothing.
24887         (record_targets_from_bases): Skip CXX destructors; they are
24888         never called for types in construction.
24889         (possible_polymorphic_call_targets): Do not record target when
24890         type may not have instance.
24891
24892 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
24893
24894         PR ipa/60854
24895         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
24896         external aliases alive, too.
24897
24898 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
24899
24900         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
24901         definition.
24902
24903 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
24904
24905         * final.c (compute_alignments): Do not apply loop alignment to a block
24906         falling through to the exit.
24907
24908 2014-04-16  Catherine Moore  <clm@codesourcery.com>
24909
24910         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
24911         Adjust constraints for microMIPS store patterns.
24912
24913 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
24914
24915         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
24916
24917 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
24918
24919         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
24920         (append_use): Run at -O0.
24921         (append_vdef): Likewise.
24922         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
24923         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
24924
24925 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
24926
24927         PR tree-optimization/60844
24928         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
24929         (propagate_op_to_single_use, remove_visited_stmt_chain,
24930         linearize_expr, repropagate_negates, reassociate_bb): Use it
24931         instead of gsi_remove.
24932
24933 2014-04-16  Martin Jambor  <mjambor@suse.cz>
24934
24935         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
24936         ipa_transforms_to_apply.
24937         (cgraph_function_versioning): Assert that old_node has empty
24938         ipa_transforms_to_apply.
24939         * trans-mem.c (ipa_tm_create_version): Likewise.
24940         * tree-inline.c (tree_function_versioning): Do not duplicate
24941         ipa_transforms_to_apply.
24942
24943 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24944
24945         PR target/60817
24946         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
24947         x86_64-*-* cases.
24948         Pass necessary as flags on 64-bit Solaris/x86.
24949         Use lowercase relocs for x86_64-*-*.
24950         * configure: Regenerate.
24951
24952 2014-04-15  Jan Hubicka  <jh@suse.cz>
24953
24954         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
24955         (maybe_record_node, likely_target_p): Use it.
24956
24957 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24958
24959         PR target/60839
24960         Revert following patch
24961
24962         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
24963
24964         PR target/60735
24965         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
24966         software floating point or no floating point registers, do not
24967         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
24968         in GPRs that occurs after we tested for GPRs that would never be
24969         true.
24970
24971         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
24972         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
24973         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
24974         specifically allow DDmode, since that does not use the SPE SIMD
24975         instructions.
24976
24977 2014-03-21  Mark Wielaard  <mjw@redhat.com>
24978
24979         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
24980         as unsigned or int depending on type and value used.
24981
24982 2014-04-15  Richard Biener  <rguenther@suse.de>
24983
24984         PR rtl-optimization/56965
24985         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
24986         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
24987         ... here.
24988         * alias.c (true_dependence_1): Do not call
24989         nonoverlapping_component_refs_p.
24990         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
24991         nonoverlapping_component_refs_p.
24992         (indirect_refs_may_alias_p): Likewise.
24993
24994 2014-04-15  Teresa Johnson  <tejohnson@google.com>
24995
24996         * cfg.c (dump_bb_info): Fix flags check.
24997         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
24998
24999 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25000
25001         PR rtl-optimization/60663
25002         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
25003         avoid 0 cost.
25004
25005 2014-04-15  Richard Biener  <rguenther@suse.de>
25006
25007         * lto-streamer.h (LTO_major_version): Bump to 4.
25008
25009 2014-04-15  Richard Biener  <rguenther@suse.de>
25010
25011         * common.opt (lto_partition_model): New enum.
25012         (flto-partition=): Merge separate options with a single with argument,
25013         add -flto-partition=one support.
25014         * flag-types.h (enum lto_partition_model): Declare.
25015         * opts.c (finish_options): Remove duplicate -flto-partition=
25016         option check.
25017         * lto-wrapper.c (run_gcc): Adjust.
25018
25019 2014-04-15  Richard Biener  <rguenther@suse.de>
25020
25021         * alias.c (ncr_compar): New function.
25022         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
25023
25024 2014-04-15  Richard Biener  <rguenther@suse.de>
25025
25026         * alias.c (record_component_aliases): Do not walk BINFOs.
25027
25028 2014-04-15  Richard Biener  <rguenther@suse.de>
25029
25030         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
25031         Add struct function argument and adjust.
25032         (find_func_aliases_for_call): Likewise.
25033         (find_func_aliases): Likewise.
25034         (find_func_clobbers): Likewise.
25035         (intra_create_variable_infos): Likewise.
25036         (compute_points_to_sets): Likewise.
25037         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
25038
25039 2014-04-15  Richard Biener  <rguenther@suse.de>
25040
25041         * tree.c (iterative_hash_expr): Use enum tree_code_class
25042         to store TREE_CODE_CLASS.
25043         (tree_block): Likewise.
25044         (tree_set_block): Likewise.
25045         * tree.h (fold_build_pointer_plus_loc): Use
25046         convert_to_ptrofftype_loc.
25047
25048 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
25049
25050         PR plugins/59335
25051         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
25052         added in 4.9.
25053
25054 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
25055
25056         * cfgloop.h (struct loop): Move force_vectorize down.
25057         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
25058         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
25059         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
25060         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
25061         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
25062         * tree-core.h (enum annot_expr_kind): Add new kind values.
25063         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
25064         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
25065         kinds.
25066         * tree.def (ANNOTATE_EXPR): Tweak comment.
25067
25068 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
25069
25070         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
25071         cxa_pure_virtual).
25072
25073 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
25074
25075         * tree.h (TYPE_IDENTIFIER): Declare.
25076         * tree.c (subrange_type_for_debug_p): Use it.
25077         * godump.c (go_format_type): Likewise.
25078         * dwarf2out.c (is_cxx_auto, modified_type_die,
25079         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
25080         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
25081
25082 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
25083
25084         PR lto/60820
25085         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
25086
25087 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
25088
25089         * config/i386/i386.c (examine_argument): Return bool.  Return true if
25090         parameter should be passed in memory.
25091         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
25092         (construct_container): Update calls to examine_argument.
25093         (function_arg_advance_64): Ditto.
25094         (return_in_memory_32): Merge with ix86_return_in_memory.
25095         (return_in_memory_64): Ditto.
25096         (return_in_memory_ms_64): Ditto.
25097
25098 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
25099
25100         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
25101         * coverage.c (coverage_compute_profile_id): Handle externally visible
25102         symbols.
25103
25104 2014-04-14  Martin Jambor  <mjambor@suse.cz>
25105
25106         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
25107         DECL_DISREGARD_INLINE_LIMITS functions.
25108
25109 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
25110
25111         PR target/60827
25112         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
25113
25114 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
25115
25116         PR target/60827
25117         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
25118         optimize_insn_for_speed_p instead of
25119         optimize_function_for_speed_p.
25120
25121 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
25122
25123         * doc/invoke.texi (free): Document AArch64.
25124
25125 2014-04-14  Richard Biener  <rguenther@suse.de>
25126
25127         PR tree-optimization/60042
25128         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
25129         (insert_into_preds_of_block): Do not prevent PHI insertion
25130         for REFERENCE exprs here ...
25131         (eliminate_dom_walker::before_dom_children): ... but prevent
25132         their use here under similar conditions when applied to the
25133         IL after PRE optimizations.
25134
25135 2014-04-14  Richard Biener  <rguenther@suse.de>
25136
25137         * passes.def: Move early points-to after early SRA.
25138
25139 2014-04-14  Richard Biener  <rguenther@suse.de>
25140
25141         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
25142         check for which sign-changes we allow when forwarding
25143         a converted value into a switch.
25144
25145 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
25146
25147         * stor-layout.c (place_field): Finalize non-constant offset for the
25148         field, if any.
25149
25150 2014-04-14  Richard Biener  <rguenther@suse.de>
25151
25152         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
25153         as argument.
25154         (expand_switch_using_bit_tests_p): Likewise.
25155         (process_switch): Compute and pass on speed_p based on the
25156         switch stmt.
25157         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
25158         optimize_bb_for_speed_p.
25159
25160 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
25161
25162         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
25163         * function.h (struct function): Rename has_force_vect_loops into
25164         has_force_vectorize_loops.
25165         * lto-streamer-in.c (input_cfg): Adjust for renaming.
25166         (input_struct_function_base): Likewise.
25167         * lto-streamer-out.c (output_cfg): Likewise.
25168         (output_struct_function_base): Likewise.
25169         * omp-low.c (expand_omp_simd): Likewise.
25170         * tree-cfg.c (move_sese_region_to_fn): Likewise.
25171         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
25172         (version_loop_for_if_conversion): Likewise.
25173         (tree_if_conversion): Likewise.
25174         (main_tree_if_conversion): Likewise.
25175         (gate_tree_if_conversion): Likewise.
25176         * tree-inline.c (copy_loops): Likewise.
25177         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
25178         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
25179         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
25180         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
25181         * tree-vectorizer.c (vectorize_loops): Likewise.
25182         * tree-vectorizer.h (unlimited_cost_model): Likewise.
25183
25184 2014-04-14  Richard Biener  <rguenther@suse.de>
25185
25186         PR lto/60720
25187         * lto-streamer-out.c (wrap_refs): New function.
25188         (lto_output): Wrap symbol references in global initializes in
25189         type-preserving MEM_REFs.
25190
25191 2014-04-14  Christian Bruel  <christian.bruel@st.com>
25192
25193         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
25194
25195 2014-04-14  Christian Bruel  <christian.bruel@st.com>
25196
25197         * config/sh/sh.md (setmemqi): New expand pattern.
25198         * config/sh/sh.h (CLEAR_RATIO): Define.
25199         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
25200         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
25201
25202 2014-04-14  Richard Biener  <rguenther@suse.de>
25203
25204         PR middle-end/55022
25205         * fold-const.c (negate_expr_p): Don't negate directional rounding
25206         division.
25207         (fold_negate_expr): Likewise.
25208
25209 2014-04-14  Richard Biener  <rguenther@suse.de>
25210
25211         PR tree-optimization/59817
25212         PR tree-optimization/60453
25213         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
25214         recursion to catch all CHRECs in the scalar evolution and restrict
25215         the predicate for the remains appropriately.
25216
25217 2014-04-12  Catherine Moore  <clm@codesourcery.com>
25218
25219         * config/mips/constraints.md: Add new register constraint "kb".
25220         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
25221         (*movhi_internal): Likewise.
25222         (*movqi_internal): Likewise.
25223         * config/mips/mips.h (M16_STORE_REGS): New register class.
25224         (REG_CLASS_NAMES): Add M16_STORE_REGS.
25225         (REG_CLASS_CONTENTS): Likewise.
25226         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
25227
25228 2014-04-11  Tobias Burnus  <burnus@net-b.de>
25229
25230         PR c/60194
25231         * doc/invoke.texi (-Wformat-signedness): Document it.
25232         (Wformat=2): Mention that this enables -Wformat-signedness.
25233
25234 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25235
25236         * common/config/epiphany/epiphany-common.c
25237         (epiphany_option_optimization_table): Enable section anchors by
25238         default at -O1 or higher.
25239         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
25240         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
25241         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
25242         carries no extra cost.
25243         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
25244         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
25245         * config/epiphany/predicates.md (memclob_operand): New predicate.
25246         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
25247         Use memclob_operand predicate and X constraint for operand 3.
25248
25249 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25250
25251         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
25252         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
25253         its operands.
25254
25255 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25256
25257         PR rtl-optimization/60651
25258         * mode-switching.c (optimize_mode_switching): Make sure to emit
25259         sets of a lower numbered entity before sets of a higher numbered
25260         entity to a mode of the same or lower priority.
25261         When creating a seginfo for a basic block that starts with a code
25262         label, move the insertion point past the code label.
25263         (new_seginfo): Document and enforce requirement that
25264         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
25265         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
25266         * doc/tm.texi: Regenerate.
25267
25268 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25269
25270         PR target/60811
25271         * config/arc/arc.c (arc_save_restore): Fix assert typo.
25272
25273 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
25274
25275         * BASE-VER: Set to 4.10.0.
25276
25277 2014-04-11  Tobias Burnus  <burnus@net-b.de>
25278
25279         PR other/59055
25280         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
25281         * doc/gcc.texi (Service): Update description in the @menu
25282         * doc/invoke.texi (Option Summary): Remove misplaced and
25283         duplicated @menu.
25284
25285 2014-04-11  Steve Ellcey  <sellcey@mips.com>
25286             Jakub Jelinek  <jakub@redhat.com>
25287
25288         PR middle-end/60556
25289         * expr.c (convert_move): Use emit_store_flag_force instead of
25290         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
25291         argument to it.
25292
25293 2014-04-11  Richard Biener  <rguenther@suse.de>
25294
25295         PR middle-end/60797
25296         * varasm.c (assemble_alias): Avoid endless error reporting
25297         recursion by setting TREE_ASM_WRITTEN.
25298
25299 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25300
25301         * config/s390/s390.md: Add a splitter for NOT rtx.
25302
25303 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
25304
25305         PR rtl-optimization/60663
25306         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
25307
25308 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
25309             Jakub Jelinek  <jakub@redhat.com>
25310
25311         PR lto/60567
25312         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
25313         flag from decl_node to node.
25314
25315 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25316
25317         PR debug/60655
25318         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
25319         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
25320         ameliorating the cases where it can be.
25321
25322 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
25323
25324         Revert
25325         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
25326
25327         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
25328         (loadsync_<mode>): Change mode.
25329         (load_quadpti, store_quadpti): New.
25330         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
25331         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
25332         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
25333
25334 2014-04-09  Cong Hou  <congh@google.com>
25335
25336         PR testsuite/60773
25337         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
25338         documentation.
25339
25340 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25341
25342         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
25343         instead of vnor to exploit possible fusion opportunity in the
25344         future.
25345         (altivec_expand_vec_perm_const_le): Likewise.
25346
25347 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
25348
25349         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
25350         (loadsync_<mode>): Change mode.
25351         (load_quadpti, store_quadpti): New.
25352         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
25353         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
25354
25355 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
25356
25357         PR target/60763
25358         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
25359         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
25360         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
25361
25362 2014-04-08  Richard Biener  <rguenther@suse.de>
25363
25364         PR middle-end/60706
25365         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
25366         a 64bit widest int print double-int similar to on HWI64 hosts.
25367
25368 2014-04-08  Richard Biener  <rguenther@suse.de>
25369
25370         PR tree-optimization/60785
25371         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
25372         default defs properly.
25373
25374 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
25375
25376         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
25377         (Weffc++): Likewise.
25378
25379 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
25380
25381         * ipa-devirt.c (maybe_record_node): When node is not recorded,
25382         set completep to false rather than true.
25383
25384 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
25385
25386         PR target/60504
25387         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
25388         ARM_TARGET2_DWARF_FORMAT.
25389
25390 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
25391
25392         PR target/60609
25393         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
25394         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
25395         ADDR_DIFF_VEC.
25396
25397 2014-04-07  Richard Biener  <rguenther@suse.de>
25398
25399         PR tree-optimization/60766
25400         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
25401         (may_eliminate_iv): Convert cand_value_at result to desired type.
25402
25403 2014-04-07  Jason Merrill  <jason@redhat.com>
25404
25405         PR c++/60731
25406         * common.opt (-fno-gnu-unique): Add.
25407         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
25408
25409 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25410
25411         * haifa-sched.c: Fix outdated function reference and minor
25412         grammar errors in introductory comment.
25413
25414 2014-04-07  Richard Biener  <rguenther@suse.de>
25415
25416         PR middle-end/60750
25417         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
25418         for noreturn calls.
25419         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
25420
25421 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
25422
25423         PR debug/55794
25424         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
25425         size accounting for thunks.
25426         (pa_asm_output_mi_thunk): Use final_start_function() and
25427         final_end_function() to output function start and end directives.
25428
25429 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
25430
25431         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
25432         device specific ISA/ feature information. Remove short_sp and
25433         errata_skip ds.  Add avr_device_specific_features enum to have device
25434         specific info.
25435         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
25436         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
25437         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
25438         updated device specific info.
25439         * config/avr/avr-mcus.def: Merge device specific details to
25440         dev_attribute field.
25441         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
25442         errata_skip.
25443         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
25444         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
25445         assembler if RMW isa supported by current device.
25446         * config/avr/genmultilib.awk: Update as device info structure changed.
25447         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
25448
25449 2014-04-04  Cong Hou  <congh@google.com>
25450
25451         PR tree-optimization/60656
25452         * tree-vect-stmts.c (supportable_widening_operation):
25453         Fix a bug that elements in a vector with vect_used_by_reduction
25454         property are incorrectly reordered when the operation on it is not
25455         consistant with the one in reduction operation.
25456
25457 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
25458
25459         PR rtl-optimization/60155
25460         * gcse.c (record_set_data): New function.
25461         (single_set_gcse): New function.
25462         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
25463         (hoist_code): Likewise.
25464         (get_pressure_class_and_nregs): Likewise.
25465
25466 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
25467
25468         * explow.c (probe_stack_range): Emit a final optimization blockage.
25469
25470 2014-04-04  Anthony Green  <green@moxielogic.com>
25471
25472         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
25473         typos.
25474
25475 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
25476
25477         PR ipa/59626
25478         * lto-cgraph.c (input_overwrite_node): Check that partitioning
25479         flags are set only during streaming.
25480         * ipa.c (process_references, walk_polymorphic_call_targets,
25481         symtab_remove_unreachable_nodes): Drop bodies of always inline
25482         after early inlining.
25483         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
25484
25485 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
25486         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25487
25488         PR debug/60655
25489         * dwarf2out.c (const_ok_for_output_1): Reject expressions
25490         containing a NOT.
25491
25492 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25493
25494         PR bootstrap/60743
25495         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
25496         duration.
25497         (cortex_a53_fdivd): Likewise.
25498
25499 2014-04-04  Martin Jambor  <mjambor@suse.cz>
25500
25501         PR ipa/60640
25502         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
25503         Adjust all callers.
25504         * cgraph.c (clone_of_p): Also return true if thunks match.
25505         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
25506         cgraph_function_or_thunk_node and an obsolete comment.
25507         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
25508         file.
25509         (build_function_decl_skip_args): Likewise.
25510         (set_new_clone_decl_and_node_flags): New function.
25511         (duplicate_thunk_for_node): Likewise.
25512         (redirect_edge_duplicating_thunks): Likewise.
25513         (cgraph_clone_node): New parameter args_to_skip, pass it to
25514         redirect_edge_duplicating_thunks which is called instead of
25515         cgraph_redirect_edge_callee.
25516         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
25517         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
25518
25519 2014-04-04  Jeff Law  <law@redhat.com>
25520
25521         PR target/60657
25522         * config/arm/predicates.md (const_int_I_operand): New predicate.
25523         (const_int_M_operand): Similarly.
25524         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
25525         const_int_operand.
25526         (insv_t2, extv_reg, extzv_t2): Likewise.
25527         (load_multiple_with_writeback): Similarly for const_int_I_operand.
25528         (pop_multiple_with_writeback_and_return): Likewise.
25529         (vfp_pop_multiple_with_writeback): Likewise
25530
25531 2014-04-04  Richard Biener  <rguenther@suse.de>
25532
25533         PR ipa/60746
25534         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
25535         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
25536         non-GIMPLE_LABELs.
25537         * gimplify.h (gimple_add_tmp_var_fn): Declare.
25538         * gimplify.c (gimple_add_tmp_var_fn): New function.
25539         * gimple-expr.h (create_tmp_reg_fn): Declare.
25540         * gimple-expr.c (create_tmp_reg_fn): New function.
25541         * gimple-low.c (record_vars_into): Don't change cfun.
25542         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
25543         code generation without cfun.
25544
25545 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
25546
25547         PR bootstrap/60719
25548         * Makefile.in (install-driver): Fix shell scripting.
25549
25550 2014-04-03  Cong Hou  <congh@google.com>
25551
25552         PR tree-optimization/60505
25553         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
25554         threshold of number of iterations below which no vectorization
25555         will be done.
25556         * tree-vect-loop.c (new_loop_vec_info):
25557         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
25558         * tree-vect-loop.c (vect_analyze_loop_operations):
25559         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
25560         * tree-vect-loop.c (vect_transform_loop):
25561         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
25562         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
25563         of iterations of the loop and see if we should build the epilogue.
25564
25565 2014-04-03  Richard Biener  <rguenther@suse.de>
25566
25567         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
25568         (streamer_tree_cache_create): Adjust.
25569         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
25570         to allow optional nodes array.
25571         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
25572         (streamer_tree_cache_append): Likewise.
25573         (streamer_tree_cache_create): Create nodes array optionally
25574         as specified by parameter.
25575         * lto-streamer-out.c (create_output_block): Avoid maintaining
25576         the node array in the writer cache.
25577         (DFS_write_tree): Remove assertion.
25578         (produce_asm_for_decls): Free the out decl state hash table early.
25579         * lto-streamer-in.c (lto_data_in_create): Adjust for
25580         streamer_tree_cache_create prototype change.
25581
25582 2014-04-03  Richard Biener  <rguenther@suse.de>
25583
25584         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
25585         set TREE_CHAIN to NULL_TREE.
25586
25587 2014-04-03  Richard Biener  <rguenther@suse.de>
25588
25589         PR tree-optimization/60740
25590         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
25591         over all GIMPLE_COND operands.
25592
25593 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
25594
25595         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
25596         (Weffc++): Remove Scott's numbering, merge lists and reference
25597         Wnon-virtual-dtor.
25598
25599 2014-04-03  Nick Clifton  <nickc@redhat.com>
25600
25601         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
25602         properly.
25603
25604 2014-04-03  Martin Jambor  <mjambor@suse.cz>
25605
25606         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
25607         mention gcc_unreachable before failing.
25608         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
25609         removed symbols.
25610
25611 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
25612
25613         PR ipa/60659
25614         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
25615         inconsistent code and instead mark the context inconsistent.
25616         (possible_polymorphic_call_targets): For inconsistent contexts
25617         return empty complete list.
25618
25619 2014-04-02  Anthony Green  <green@moxielogic.com>
25620
25621         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
25622         (extendqisi2, extendhisi2): Define.
25623         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
25624         (WCHAR_TYPE): Change to unsigned int.
25625
25626 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25627
25628         PR tree-optimization/60733
25629         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
25630         insertion point for PHI candidates to be the end of the feeding
25631         block for the PHI argument.
25632
25633 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
25634
25635         PR rtl-optimization/60650
25636         * lra-constraints.c (process_alt_operands): Decrease reject for
25637         earlyclobber matching.
25638
25639 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25640
25641         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
25642
25643 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25644
25645         * config/spu/spu.c (pad_bb): Do not crash when the last
25646         insn is CODE_FOR_blockage.
25647
25648 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25649
25650         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
25651         lies outside the target mode.
25652
25653 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25654
25655         PR target/60735
25656         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
25657         software floating point or no floating point registers, do not
25658         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
25659         in GPRs that occurs after we tested for GPRs that would never be
25660         true.
25661
25662         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
25663         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
25664         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
25665         specifically allow DDmode, since that does not use the SPE SIMD
25666         instructions.
25667
25668 2014-04-02  Richard Biener  <rguenther@suse.de>
25669
25670         PR middle-end/60729
25671         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
25672         MODE_INTs.  Properly use negv_optab.
25673         (expand_abs): Likewise.
25674
25675 2014-04-02  Richard Biener  <rguenther@suse.de>
25676
25677         PR bootstrap/60719
25678         * Makefile.in (install-driver): Guard extra installs with special
25679         names properly.
25680
25681 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
25682
25683         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25684         Document vec_vgbbd.
25685
25686 2014-04-01  Richard Henderson  <rth@redhat.com>
25687
25688         PR target/60704
25689         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
25690         alternative enabled before register allocation.
25691
25692 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
25693
25694         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
25695         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
25696         typo.
25697         (nios2_large_got_address): Remove unneeded 'sym' parameter.
25698         (nios2_got_address): Update nios2_large_got_address call site.
25699         (nios2_delegitimize_address): New function.
25700         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
25701         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
25702         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
25703
25704 2014-04-01  Martin Husemann  <martin@duskware.de>
25705
25706         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
25707         for -mabi=32.
25708
25709 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
25710
25711         PR rtl-optimization/60604
25712         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
25713         check from register_operand.
25714         (register_operand): Redefine in terms of general_operand.
25715         (nonmemory_operand): Use register_operand for the non-constant cases.
25716
25717 2014-04-01  Richard Biener  <rguenther@suse.de>
25718
25719         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
25720
25721 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25722
25723         * doc/invoke.texi (mapp-regs): Clarify.
25724
25725 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
25726
25727         * config/i386/avx512fintrin.h (__v32hi): Define type.
25728         (__v64qi): Likewise.
25729         (_mm512_set1_epi8): Define.
25730         (_mm512_set1_epi16): Define.
25731         (_mm512_set4_epi32): Define.
25732         (_mm512_set4_epi64): Define.
25733         (_mm512_set4_pd): Define.
25734         (_mm512_set4_ps): Define.
25735         (_mm512_setr4_epi64): Define.
25736         (_mm512_setr4_epi32): Define.
25737         (_mm512_setr4_pd): Define.
25738         (_mm512_setr4_ps): Define.
25739         (_mm512_setzero_epi32): Define.
25740
25741 2014-03-31  Martin Jambor  <mjambor@suse.cz>
25742
25743         PR middle-end/60647
25744         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
25745         callsite_arguments_match_p.  Updated all callers.  Also check types of
25746         corresponding formal parameters and actual arguments.
25747         (not_all_callers_have_enough_arguments_p) Renamed to
25748         some_callers_have_mismatched_arguments_p.
25749
25750 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
25751
25752         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
25753
25754 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
25755
25756         PR target/60034
25757         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
25758         section anchor.
25759
25760 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
25761
25762         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
25763         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
25764         Split out
25765         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
25766         Use FMAMODE_NOVF512 mode iterator.
25767         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
25768         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
25769         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
25770         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
25771         Split out
25772         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
25773         Use VF_128_256 mode iterator.
25774         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
25775         Ditto.
25776
25777 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
25778
25779         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
25780         static chain if needed.
25781
25782 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
25783
25784         PR target/60697
25785         * lra-constraints.c (index_part_to_reg): New.
25786         (process_address): Use it.
25787
25788 2014-03-27  Jeff Law  <law@redhat.com>
25789             Jakub Jelinek  <jakub@redhat.com>
25790
25791         PR target/60648
25792         * expr.c (do_tablejump): Use simplify_gen_binary rather than
25793         gen_rtx_{PLUS,MULT} to build up the address expression.
25794
25795         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
25796         creating non-canonical RTL.
25797
25798 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
25799
25800         PR ipa/60243
25801         * ipa-inline.c (want_inline_small_function_p): Short circuit large
25802         functions; reorganize to make cheap checks first.
25803         (inline_small_functions): Do not estimate growth when dumping;
25804         it is expensive.
25805         * ipa-inline.h (inline_summary): Add min_size.
25806         (growth_likely_positive): New function.
25807         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
25808         (set_cond_stmt_execution_predicate): Cleanup.
25809         (estimate_edge_size_and_time): Compute min_size.
25810         (estimate_calls_size_and_time): Likewise.
25811         (estimate_node_size_and_time): Likewise.
25812         (inline_update_overall_summary): Update min_size.
25813         (do_estimate_edge_time): Likewise.
25814         (do_estimate_edge_size): Update.
25815         (do_estimate_edge_hints): Update.
25816         (growth_likely_positive): New function.
25817
25818 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
25819
25820         PR target/60693
25821         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
25822         also if addr has VOIDmode.
25823
25824 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25825
25826         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
25827         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
25828         Declare extern.
25829         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
25830         instructions as well as AdvancedSIMD loads.
25831
25832 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25833
25834         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
25835         Use crypto_aese type.
25836         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
25837         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
25838         crypto_aese, crypto_aesmc.  Move to types.md.
25839         * config/arm/types.md (crypto_aes): Split into crypto_aese,
25840         crypto_aesmc.
25841         * config/arm/iterators.md (crypto_type): Likewise.
25842
25843 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
25844
25845         * cgraph.c: Include expr.h and tree-dfa.h.
25846         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
25847         remove LHS.
25848
25849 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
25850
25851         PR target/60675
25852         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
25853         regs from checking multi-reg pseudos.
25854
25855 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25856
25857         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
25858
25859 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25860
25861         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
25862         if it would clobber the stack pointer, even temporarily.
25863
25864 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
25865
25866         * mode-switching.c: Make small adjustments to the top comment.
25867
25868 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
25869
25870         * config/rs6000/constraints.md (wD constraint): New constraint to
25871         match the constant integer to get the top DImode/DFmode out of a
25872         vector in a VSX register.
25873
25874         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
25875         match the constant integer to get the top DImode/DFmode out of a
25876         vector in a VSX register.
25877
25878         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
25879         for ISA 2.07.
25880
25881         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25882         vbpermq builtins.
25883
25884         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
25885         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
25886
25887         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
25888         Optimize vec_extract of 64-bit values, where the value being
25889         extracted is in the top word, where we can use scalar
25890         instructions.  Add direct move and store support.  Combine the big
25891         endian/little endian vector select load support into a single insn.
25892         (vsx_extract_<mode>_internal1): Likewise.
25893         (vsx_extract_<mode>_internal2): Likewise.
25894         (vsx_extract_<mode>_load): Likewise.
25895         (vsx_extract_<mode>_store): Likewise.
25896         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
25897         combined into vsx_extract_<mode>_load.
25898         (vsx_extract_<mode>_one_le): Likewise.
25899
25900         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
25901         define the top 64-bit vector element.
25902
25903         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
25904         constraint.
25905
25906         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25907         Document vec_vbpermq builtin.
25908
25909         PR target/60672
25910         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
25911         enable use of xxsldwi and xxpermdi builtin functions.
25912         (vec_xxpermdi): Likewise.
25913
25914         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25915         Document use of vec_xxsldwi and vec_xxpermdi builtins.
25916
25917 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
25918
25919         PR rtl-optimization/60650
25920         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
25921         first_p.  Use it.
25922         (find_spills_for): New.
25923         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
25924         Spill all pseudos on the second iteration.
25925
25926 2014-03-27  Marek Polacek  <polacek@redhat.com>
25927
25928         PR c/50347
25929         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
25930         types.
25931
25932 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25933
25934         * config/s390/s390.c (s390_can_use_return_insn): Check for
25935         call-saved FPRs on 31 bit.
25936
25937 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
25938
25939         PR middle-end/60682
25940         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
25941         if they need regimplification, just drop them instead of
25942         calling gimple_regimplify_operands on them.
25943
25944 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
25945
25946         PR target/60580
25947         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
25948         (aarch64_frame_pointer_required): Adjust logic.
25949         (aarch64_can_eliminate): Adjust logic.
25950         (aarch64_override_options_after_change): Adjust logic.
25951
25952 2014-03-27  Dehao Chen  <dehao@google.com>
25953
25954         * ipa-inline.c (early_inliner): Update node's inline info.
25955
25956 2014-03-26  Dehao Chen  <dehao@google.com>
25957
25958         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
25959         compiler inserted conditional jumps for NAN float check.
25960
25961 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
25962
25963         * ubsan.h (ubsan_create_data): Change second argument's type
25964         to const location_t *.
25965         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
25966         _("<unknown>").
25967         (ubsan_create_data): Change second argument to const location_t *PLOC.
25968         Create Loc field whenever PLOC is non-NULL.
25969         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
25970         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
25971         callers.
25972
25973         PR other/59545
25974         * real.c (real_to_integer2): Change type of low to UHWI.
25975
25976 2014-03-26  Tobias Burnus  <burnus@net-b.de>
25977
25978         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
25979         (CILK_SELF_SPECS): New define.
25980         (driver_self_specs): Use it.
25981
25982 2014-03-26  Richard Biener  <rguenther@suse.de>
25983
25984         * tree-pretty-print.c (percent_K_format): Implement special
25985         case for LTO and its stripped down BLOCK tree.
25986
25987 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
25988
25989         PR sanitizer/60636
25990         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
25991
25992         * tree-vrp.c (simplify_internal_call_using_ranges): If only
25993         one range is range_int_cst_p, but not both, at least optimize
25994         addition/subtraction of 0 and multiplication by 0 or 1.
25995         * gimple-fold.c (gimple_fold_call): Fold
25996         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
25997         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
25998         INTEGER_CSTs, try to fold at least x * 0 and y - y.
25999
26000 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
26001
26002         PR rtl-optimization/60452
26003         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
26004         <case REG>: Return 1 for invalid offsets from the frame pointer.
26005
26006 2014-03-26  Marek Polacek  <polacek@redhat.com>
26007
26008         PR c/37428
26009         * doc/extend.texi (C Extensions): Mention variable-length arrays in
26010         a structure/union.
26011
26012 2014-03-26  Marek Polacek  <polacek@redhat.com>
26013
26014         PR c/39525
26015         * doc/extend.texi (Designated Inits): Describe what happens to omitted
26016         field members.
26017
26018 2014-03-26  Marek Polacek  <polacek@redhat.com>
26019
26020         PR other/59545
26021         * ira-color.c (update_conflict_hard_regno_costs): Perform the
26022         multiplication in unsigned type.
26023
26024 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
26025
26026         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
26027
26028 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
26029
26030         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
26031
26032 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
26033
26034         PR ipa/60315
26035         * cif-code.def (UNREACHABLE) New code.
26036         * ipa-inline.c (inline_small_functions): Skip edges to
26037         __builtlin_unreachable.
26038         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
26039         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
26040         predicate to __bulitin_unreachable.
26041         (set_cond_stmt_execution_predicate): Fix issue when
26042         invert_tree_comparison returns ERROR_MARK.
26043         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
26044         propagate to inline clones.
26045         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
26046         to unreachable.
26047         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
26048         * cgraphclones.c (cgraph_clone_node): If call destination is already
26049         ureachable, do not redirect it back.
26050         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
26051         unreachable.
26052
26053 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
26054
26055         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
26056         Do not modify inline clones.
26057
26058 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
26059
26060         * config/i386/i386.md (general_sext_operand): New mode attr.
26061         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
26062         don't generate (sign_extend (const_int)).
26063         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
26064         operands[2].  Use We constraint instead of <i> and
26065         <general_sext_operand> predicate instead of <general_operand>.
26066         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
26067         * config/i386/constraints.md (We): New constraint.
26068         * config/i386/predicates.md (x86_64_sext_operand,
26069         sext_operand): New predicates.
26070
26071 2014-03-25  Martin Jambor  <mjambor@suse.cz>
26072
26073         PR ipa/60600
26074         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
26075         inconsistent devirtualizations to __builtin_unreachable.
26076
26077 2014-03-25  Marek Polacek  <polacek@redhat.com>
26078
26079         PR c/35449
26080         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
26081
26082 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
26083
26084         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
26085         order of elements for big-endian.
26086
26087 2014-03-25  Richard Biener  <rguenther@suse.de>
26088
26089         PR middle-end/60635
26090         * gimplify-me.c (gimple_regimplify_operands): Update the
26091         re-gimplifed stmt.
26092
26093 2014-03-25  Martin Jambor  <mjambor@suse.cz>
26094
26095         PR ipa/59176
26096         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
26097         (lto_output_varpool_node): Likewise.
26098         (input_overwrite_node): Likewise.
26099         (input_varpool_node): Likewise.
26100
26101 2014-03-25  Richard Biener  <rguenther@suse.de>
26102
26103         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
26104         (run_gcc): Likewise.
26105
26106 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
26107
26108         * combine.c (simplify_compare_const): Add MODE argument.
26109         Handle mode_width 0 as very large mode_width.
26110         (try_combine, simplify_comparison): Adjust callers.
26111
26112         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
26113         type to avoid signed integer overflow.
26114         * explow.c (plus_constant): Likewise.
26115
26116 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26117
26118         * doc/generic.texi: Correct typos.
26119
26120 2014-03-24  Tobias Burnus  <burnus@net-b.de>
26121
26122         * doc/invoke.texi (-flto): Expand section about
26123         using static libraries with LTO.
26124
26125 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26126
26127         PR rtl-optimization/60501
26128         * optabs.def (addptr3_optab): New optab.
26129         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
26130         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
26131         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
26132
26133         * lra.c (emit_add3_insn): Use the addptr pattern if available.
26134
26135         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
26136
26137 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
26138
26139         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
26140         _mm512_set1_pd.
26141
26142         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
26143         (_mm256_undefined_ps): Define.
26144         (_mm256_undefined_pd): Define.
26145         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
26146         (_mm_undefined_pd): Define.
26147         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
26148         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
26149         (_mm512_undefined_ps): Define.
26150         (_mm512_undefined_pd): Define.
26151         Use _mm*_undefined_*.
26152         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
26153
26154 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
26155
26156         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
26157         (lshr_simd): DI mode added.
26158         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
26159         (aarch64_ushr_simddi): Likewise.
26160         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
26161         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
26162         (vshrd_n_u64): Likewise.
26163
26164 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26165
26166         * Makefile.in (s-macro_list): Depend on cc1.
26167
26168 2014-03-23  Teresa Johnson  <tejohnson@google.com>
26169
26170         * ipa-utils.c (ipa_print_order): Use specified dump file.
26171
26172 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
26173
26174         PR rtl-optimization/60601
26175         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
26176
26177         * gcc.c (eval_spec_function): Initialize save_growing_value.
26178
26179 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
26180
26181         PR sanitizer/60613
26182         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
26183         code == MINUS_EXPR, never swap op0 with op1.
26184
26185         * toplev.c (init_local_tick): Avoid signed integer multiplication
26186         overflow.
26187         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
26188         shift by first operand's bitsize.
26189
26190 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
26191
26192         PR target/60610
26193         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
26194         redefine to 1 or 0.
26195         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
26196         TARGET_ISA_64BIT_P(x).
26197
26198 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26199
26200         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
26201         pattern for vector nor instead of subtract from splat(-1).
26202         (altivec_expand_vec_perm_const_le): Likewise.
26203
26204 2014-03-21  Richard Henderson  <rth@twiddle.net>
26205
26206         PR target/60598
26207         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
26208         related insns after epilogue_completed.
26209
26210 2014-03-21  Martin Jambor  <mjambor@suse.cz>
26211
26212         PR ipa/59176
26213         * cgraph.h (symtab_node): New flag body_removed.
26214         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
26215         when removing bodies.
26216         * symtab.c (dump_symtab_base): Dump body_removed flag.
26217         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
26218         had their bodies removed.
26219
26220 2014-03-21  Martin Jambor  <mjambor@suse.cz>
26221
26222         PR ipa/60419
26223         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
26224         in the border.
26225
26226 2014-03-21  Richard Biener  <rguenther@suse.de>
26227
26228         PR tree-optimization/60577
26229         * tree-core.h (struct tree_base): Document nothrow_flag use
26230         in DECL_NONALIASED.
26231         * tree.h (DECL_NONALIASED): New.
26232         (may_be_aliased): Adjust.
26233         * coverage.c (build_var): Set DECL_NONALIASED.
26234
26235 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26236
26237         * expr.c (expand_expr_real_1): Remove outdated comment.
26238
26239 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
26240
26241         PR middle-end/60597
26242         * ira.c (adjust_cleared_regs): Call copy_rtx on
26243         *reg_equiv[REGNO (loc)].src_p before passing it to
26244         simplify_replace_fn_rtx.
26245
26246         PR target/60568
26247         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
26248         into CONST, put pic register as first operand of PLUS.  Use
26249         gen_const_mem for both 32-bit and 64-bit PIC got loads.
26250
26251 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26252
26253         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
26254
26255 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26256
26257         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
26258         around for store forwarding issue in the FPU on the UT699.
26259         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
26260         loads and operations if -mfix-ut699 is specified.
26261         (divtf3_hq): Tweak attribute.
26262         (sqrttf2_hq): Likewise.
26263
26264 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26265
26266         * calls.c (store_one_arg): Remove incorrect const qualification on the
26267         type of the temporary.
26268         * cfgexpand.c (expand_return): Likewise.
26269         * expr.c (expand_constructor): Likewise.
26270         (expand_expr_real_1): Likewise.
26271
26272 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
26273
26274         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
26275         of parts.
26276
26277 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
26278
26279         PR target/60039
26280         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
26281
26282 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
26283
26284         * config/arm/aarch-common-protos.h
26285         (alu_cost_table): Fix spelling of "extend".
26286         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
26287
26288 2014-03-19  Richard Biener  <rguenther@suse.de>
26289
26290         PR middle-end/60553
26291         * tree-core.h (tree_type_common): Re-order pointer members
26292         to reduce recursion depth during GC walks.
26293
26294 2014-03-19  Marek Polacek  <polacek@redhat.com>
26295
26296         PR sanitizer/60569
26297         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
26298         before accessing it.
26299
26300 2014-03-19  Richard Biener  <rguenther@suse.de>
26301
26302         PR lto/59543
26303         * lto-streamer-in.c (input_function): In WPA stage do not drop
26304         debug stmts.
26305
26306 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
26307
26308         PR tree-optimization/60559
26309         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
26310         with build_zero_cst assignment.
26311
26312 2014-03-18  Kai Tietz  <ktietz@redhat.com>
26313
26314         PR rtl-optimization/56356
26315         * sdbout.c (sdbout_parms): Verify that parms'
26316         incoming argument is valid.
26317         (sdbout_reg_parms): Likewise.
26318
26319 2014-03-18  Richard Henderson  <rth@redhat.com>
26320
26321         PR target/60562
26322         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
26323         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
26324         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
26325
26326 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
26327
26328         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
26329         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
26330         Italicize plugin event names in description.  Explain that
26331         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
26332         Remind that no GCC functions should be called after PLUGIN_FINISH.
26333         Explain what pragmas with expansion are.
26334
26335 2014-03-18  Martin Liska  <mliska@suse.cz>
26336
26337         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
26338         gimple call statement is update.
26339         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
26340         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
26341
26342 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
26343
26344         PR sanitizer/60557
26345         * ubsan.c (ubsan_instrument_unreachable): Call
26346         initialize_sanitizer_builtins.
26347         (ubsan_pass): Likewise.
26348
26349         PR sanitizer/60535
26350         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
26351         varpool_finalize_decl instead of rest_of_decl_compilation.
26352
26353 2014-03-18  Richard Biener  <rguenther@suse.de>
26354
26355         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
26356         by using bitmap_and_compl instead of bitmap_and_compl_into.
26357         (df_rd_transfer_function): Likewise.
26358
26359 2014-03-18  Richard Biener  <rguenther@suse.de>
26360
26361         * doc/lto.texi (fresolution): Fix typo.
26362
26363 2014-03-18  Richard Biener  <rguenther@suse.de>
26364
26365         * doc/invoke.texi (flto): Update for changes in 4.9.
26366
26367 2014-03-18  Richard Biener  <rguenther@suse.de>
26368
26369         * doc/loop.texi: Remove section on the removed lambda framework.
26370         Update loop docs with recent changes in preserving loop structure.
26371
26372 2014-03-18  Richard Biener  <rguenther@suse.de>
26373
26374         * doc/lto.texi (-fresolution): Document.
26375
26376 2014-03-18  Richard Biener  <rguenther@suse.de>
26377
26378         * doc/contrib.texi: Adjust my name.
26379
26380 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
26381
26382         PR ipa/58721
26383         * internal-fn.c: Include diagnostic-core.h.
26384         (expand_BUILTIN_EXPECT): New function.
26385         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
26386         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
26387         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
26388         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
26389         IFN_BUILTIN_EXPECT.
26390         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
26391         Revert 3 argument __builtin_expect code.
26392         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
26393         * gimple-fold.c (gimple_fold_call): Likewise.
26394         * tree.h (fold_builtin_expect): New prototype.
26395         * builtins.c (build_builtin_expect_predicate): Add predictor
26396         argument, if non-NULL, create 3 argument __builtin_expect.
26397         (fold_builtin_expect): No longer static.  Add ARG2 argument,
26398         pass it through to build_builtin_expect_predicate.
26399         (fold_builtin_2): Adjust caller.
26400         (fold_builtin_3): Handle BUILT_IN_EXPECT.
26401         * internal-fn.def (BUILTIN_EXPECT): New.
26402
26403 2014-03-18  Tobias Burnus  <burnus@net-b.de>
26404
26405         PR ipa/58721
26406         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
26407         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
26408         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
26409
26410 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
26411
26412         PR ipa/58721
26413         * predict.c (combine_predictions_for_bb): Fix up formatting.
26414         (expr_expected_value_1, expr_expected_value): Add predictor argument,
26415         fill what it points to if non-NULL.
26416         (tree_predict_by_opcode): Adjust caller, use the predictor.
26417         * predict.def (PRED_COMPARE_AND_SWAP): Add.
26418
26419 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
26420
26421         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
26422         proper constant for the store mode.
26423
26424 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
26425
26426         * symtab.c (change_decl_assembler_name): Fix transparent alias
26427         chain construction.
26428
26429 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
26430
26431         * config/aarch64/aarch64.c: Correct the comments about the
26432         aarch64 stack layout.
26433
26434 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
26435
26436         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
26437         check for GF_OMP_FOR_KIND_FOR.
26438
26439 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
26440
26441         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
26442         ymm and zmm register names.
26443
26444 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
26445
26446         PR target/60516
26447         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
26448         note creation for the 2010-08-31 changes.
26449
26450 2014-03-17  Marek Polacek  <polacek@redhat.com>
26451
26452         PR middle-end/60534
26453         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
26454         as -fno-tree-loop-vectorize.
26455         (expand_omp_simd): Likewise.
26456
26457 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
26458
26459         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
26460         (eligible_for_call_delay): New prototype.
26461         * config/sparc/sparc.c (tls_call_delay): Rename into...
26462         (eligible_for_call_delay): ...this.  Return false if the instruction
26463         cannot be put in the delay slot of a branch.
26464         (eligible_for_restore_insn): Simplify.
26465         (eligible_for_return_delay): Return false if the instruction cannot be
26466         put in the delay slot of a branch and simplify.
26467         (eligible_for_sibcall_delay): Return false if the instruction cannot be
26468         put in the delay slot of a branch.
26469         * config/sparc/sparc.md (fix_ut699): New attribute.
26470         (tls_call_delay): Delete.
26471         (in_call_delay): Reimplement.
26472         (eligible_for_sibcall_delay): Rename into...
26473         (in_sibcall_delay): ...this.
26474         (eligible_for_return_delay): Rename into...
26475         (in_return_delay): ...this.
26476         (in_branch_delay): Reimplement.
26477         (in_uncond_branch_delay): Delete.
26478         (in_annul_branch_delay): Delete.
26479
26480 2014-03-14  Richard Henderson  <rth@redhat.com>
26481
26482         PR target/60525
26483         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
26484         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
26485         (*floathi<X87MODEF>2_i387_with_temp): Remove.
26486         (floathi splitters): Remove.
26487         (float<SWI48x>xf2): New pattern.
26488         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
26489         code that tried to handle DImode for 32-bit, but which was excluded
26490         by the pattern's condition.  Drop allocation of stack temporary.
26491         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
26492         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
26493         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
26494         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
26495         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
26496         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
26497         (*float<SWI48><MODEF>2_sse_interunit): Remove.
26498         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
26499         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
26500         (*float<SWI48x><X87MODEF>2_i387): Remove.
26501         (all float _with_temp splitters): Remove.
26502         (*float<SWI48x><MODEF>2_i387): New pattern.
26503         (*float<SWI48><MODEF>2_sse): New pattern.
26504         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
26505         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
26506
26507 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
26508             Marek Polacek  <polacek@redhat.com>
26509
26510         PR middle-end/60484
26511         * common.opt (dump_base_name_prefixed): New Variable.
26512         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
26513         if x_dump_base_name_prefixed is already set, set it at the end.
26514
26515 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
26516
26517         PR rtl-optimization/60508
26518         * lra-constraints.c (get_reload_reg): Add new parameter
26519         in_subreg_p.
26520         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
26521         Pass the new parameter values.
26522
26523 2014-03-14  Richard Biener  <rguenther@suse.de>
26524
26525         * common.opt: Revert unintented changes from r205065.
26526         * opts.c: Likewise.
26527
26528 2014-03-14  Richard Biener  <rguenther@suse.de>
26529
26530         PR middle-end/60518
26531         * cfghooks.c (split_block): Properly adjust all loops the
26532         block was a latch of.
26533
26534 2014-03-14  Martin Jambor  <mjambor@suse.cz>
26535
26536         PR lto/60461
26537         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
26538         and simplify it.
26539
26540 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
26541
26542         PR target/59396
26543         * config/avr/avr.c (avr_set_current_function): Pass function name
26544         through default_strip_name_encoding before sanity checking instead
26545         of skipping the first char of the assembler name.
26546
26547 2014-03-13  Richard Henderson  <rth@redhat.com>
26548
26549         PR debug/60438
26550         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
26551         (ix86_force_to_memory, ix86_free_from_memory): Remove.
26552         * config/i386/i386-protos.h: Likewise.
26553         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
26554         in the expander instead of a splitter.
26555         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
26556         any possibility of requiring a memory.
26557         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
26558         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
26559         (fp branch splitters): Update for ix86_split_fp_branch.
26560         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
26561         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
26562         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
26563         (*fop_<MODEF>_2_i387): Remove f/r alternative.
26564         (*fop_<MODEF>_3_i387): Likewise.
26565         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
26566         (splitters for the fop_* register patterns): Remove.
26567         (fscalexf4_i387): Rename from *fscalexf4_i387.
26568         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
26569
26570 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
26571
26572         PR tree-optimization/59779
26573         * tree-dfa.c (get_ref_base_and_extent): Use double_int
26574         type for bitsize and maxsize instead of HOST_WIDE_INT.
26575
26576 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
26577
26578         PR rtl-optimization/57320
26579         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
26580         the CFG after thread_prologue_and_epilogue_insns.
26581
26582 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
26583
26584         PR rtl-optimization/57189
26585         * lra-constraints.c (process_alt_operands): Disfavor spilling
26586         vector pseudos.
26587
26588 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
26589
26590         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
26591
26592 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
26593
26594         PR tree-optimization/59025
26595         PR middle-end/60418
26596         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
26597         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
26598
26599 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
26600
26601         PR target/60486
26602         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
26603         calls of avr_out_plus_1.
26604
26605 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
26606
26607         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
26608         BB's single pred and update the father loop's latch info later.
26609
26610 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
26611
26612         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
26613         (VEC_M): Likewise.
26614         (VEC_N): Likewise.
26615         (VEC_R): Likewise.
26616         (VEC_base): Likewise.
26617         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
26618         registers, we need to swap double words in little endian mode.
26619
26620         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
26621         to be a container mode for 128-bit integer operations added in ISA
26622         2.07.  Unlike TImode and PTImode, the preferred register set is
26623         the Altivec/VMX registers for the 128-bit operations.
26624
26625         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
26626         declarations.
26627         (rs6000_split_128bit_ok_p): Likewise.
26628
26629         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
26630         macros for creating ISA 2.07 normal and overloaded builtin
26631         functions with 3 arguments.
26632         (BU_P8V_OVERLOAD_3): Likewise.
26633         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
26634         for use as overloaded functions.
26635         (VPERM_1TI_UNS): Likewise.
26636         (VSEL_1TI): Likewise.
26637         (VSEL_1TI_UNS): Likewise.
26638         (ST_INTERNAL_1ti): Likewise.
26639         (LD_INTERNAL_1ti): Likewise.
26640         (XXSEL_1TI): Likewise.
26641         (XXSEL_1TI_UNS): Likewise.
26642         (VPERM_1TI): Likewise.
26643         (VPERM_1TI_UNS): Likewise.
26644         (XXPERMDI_1TI): Likewise.
26645         (SET_1TI): Likewise.
26646         (LXVD2X_V1TI): Likewise.
26647         (STXVD2X_V1TI): Likewise.
26648         (VEC_INIT_V1TI): Likewise.
26649         (VEC_SET_V1TI): Likewise.
26650         (VEC_EXT_V1TI): Likewise.
26651         (EQV_V1TI): Likewise.
26652         (NAND_V1TI): Likewise.
26653         (ORC_V1TI): Likewise.
26654         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
26655         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
26656         overloaded builtin.
26657         (VADDUQM): Likewise.
26658         (VSUBCUQ): Likewise.
26659         (VADDEUQM): Likewise.
26660         (VADDECUQ): Likewise.
26661         (VSUBEUQM): Likewise.
26662         (VSUBECUQ): Likewise.
26663
26664         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
26665         __int128_t and __uint128_t types.
26666         (__uint128_type): Likewise.
26667         (altivec_categorize_keyword): Add support for vector __int128_t,
26668         vector __uint128_t, vector __int128, and vector unsigned __int128
26669         as a container type for TImode operations that need to be done in
26670         VSX/Altivec registers.
26671         (rs6000_macro_to_expand): Likewise.
26672         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
26673         to support 128-bit integer instructions vaddcuq, vadduqm,
26674         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
26675         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
26676
26677         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
26678         for V1TImode, and set up preferences to use VSX/Altivec registers.
26679         Setup VSX reload handlers.
26680         (rs6000_debug_reg_global): Likewise.
26681         (rs6000_init_hard_regno_mode_ok): Likewise.
26682         (rs6000_preferred_simd_mode): Likewise.
26683         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
26684         (easy_altivec_constant): Likewise.
26685         (output_vec_const_move): Likewise.
26686         (rs6000_expand_vector_set): Convert V1TImode set and extract to
26687         simple move.
26688         (rs6000_expand_vector_extract): Likewise.
26689         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
26690         addressing.
26691         (rs6000_const_vec): Add support for V1TImode.
26692         (rs6000_emit_le_vsx_load): Swap double words when loading or
26693         storing TImode/V1TImode.
26694         (rs6000_emit_le_vsx_store): Likewise.
26695         (rs6000_emit_le_vsx_move): Likewise.
26696         (rs6000_emit_move): Add support for V1TImode.
26697         (altivec_expand_ld_builtin): Likewise.
26698         (altivec_expand_st_builtin): Likewise.
26699         (altivec_expand_vec_init_builtin): Likewise.
26700         (altivec_expand_builtin): Likewise.
26701         (rs6000_init_builtins): Add support for V1TImode type.  Add
26702         support for ISA 2.07 128-bit integer builtins.  Define type names
26703         for the VSX/Altivec vector types.
26704         (altivec_init_builtins): Add support for overloaded vector
26705         functions with V1TImode type.
26706         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
26707         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
26708         external function.
26709         (rs6000_split_128bit_ok_p): Likewise.
26710         (rs6000_handle_altivec_attribute): Create V1TImode from vector
26711         __int128_t and vector __uint128_t.
26712
26713         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
26714         and mode attributes.
26715         (VSX_M): Likewise.
26716         (VSX_M2): Likewise.
26717         (VSm): Likewise.
26718         (VSs): Likewise.
26719         (VSr): Likewise.
26720         (VSv): Likewise.
26721         (VS_scalar): Likewise.
26722         (VS_double): Likewise.
26723         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
26724
26725         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
26726         we support the ISA 2.07 128-bit integer arithmetic instructions.
26727         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
26728         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
26729         and TImode types for use with the builtin functions.
26730         (V1TI_type_node): Likewise.
26731         (unsigned_V1TI_type_node): Likewise.
26732         (intTI_type_internal_node): Likewise.
26733         (uintTI_type_internal_node): Likewise.
26734
26735         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
26736         128-bit builtin functions.
26737         (UNSPEC_VADDEUQM): Likewise.
26738         (UNSPEC_VADDECUQ): Likewise.
26739         (UNSPEC_VSUBCUQ): Likewise.
26740         (UNSPEC_VSUBEUQM): Likewise.
26741         (UNSPEC_VSUBECUQ): Likewise.
26742         (VM): Add V1TImode to vector mode iterators.
26743         (VM2): Likewise.
26744         (VI_unit): Likewise.
26745         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
26746         (altivec_vaddcuq): Likewise.
26747         (altivec_vsubuqm): Likewise.
26748         (altivec_vsubcuq): Likewise.
26749         (altivec_vaddeuqm): Likewise.
26750         (altivec_vaddecuq): Likewise.
26751         (altivec_vsubeuqm): Likewise.
26752         (altivec_vsubecuq): Likewise.
26753
26754         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
26755         mode iterators.
26756         (BOOL_128): Likewise.
26757         (BOOL_REGS_OUTPUT): Likewise.
26758         (BOOL_REGS_OP1): Likewise.
26759         (BOOL_REGS_OP2): Likewise.
26760         (BOOL_REGS_UNARY): Likewise.
26761         (BOOL_REGS_AND_CR0): Likewise.
26762
26763         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
26764         128-bit integer builtin support.
26765         (vec_vadduqm): Likewise.
26766         (vec_vaddecuq): Likewise.
26767         (vec_vaddeuqm): Likewise.
26768         (vec_vsubecuq): Likewise.
26769         (vec_vsubeuqm): Likewise.
26770         (vec_vsubcuq): Likewise.
26771         (vec_vsubuqm): Likewise.
26772
26773         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
26774         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
26775         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
26776         128-bit integer add/subtract to ISA 2.07.
26777
26778 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
26779
26780         * config/arc/arc.c (arc_predicate_delay_insns):
26781         Fix third argument passed to conditionalize_nonjump.
26782
26783 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
26784
26785         * config/aarch64/aarch64-builtins.c
26786         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
26787         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
26788         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
26789         instead of __builtin_lfloor.
26790         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
26791
26792 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
26793
26794         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
26795         (tree_ssa_ifcombine_bb_1): New function.
26796         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
26797         is an empty forwarder block to then_bb or vice versa and then_bb
26798         and else_bb are effectively swapped.
26799
26800 2014-03-12  Christian Bruel  <christian.bruel@st.com>
26801
26802         PR target/60264
26803         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
26804         REG_CFA_DEF_CFA note.
26805         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
26806         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
26807
26808 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26809
26810         PR tree-optimization/60454
26811         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
26812
26813 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26814
26815         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
26816         Do not define target_cpu_default2 to generic.
26817         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
26818         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
26819         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
26820
26821 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
26822             Marc Glisse  <marc.glisse@inria.fr>
26823
26824         PR tree-optimization/60502
26825         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
26826         instead of build_low_bits_mask.
26827
26828 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
26829
26830         PR middle-end/60482
26831         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
26832         if there are multiple uses, but op doesn't live on E edge.
26833         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
26834         clobber stmts before __builtin_unreachable.
26835
26836 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
26837
26838         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
26839         hard_frame_pointer_rtx.
26840         * cse.c (cse_insn): Remove volatile check.
26841         * cselib.c (cselib_process_insn): Likewise.
26842         * dse.c (scan_insn): Likewise.
26843
26844 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
26845
26846         * config/arc/arc.c (conditionalize_nonjump): New function,
26847         broken out of ...
26848         (arc_ifcvt): ... this.
26849         (arc_predicate_delay_insns): Use it.
26850
26851 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
26852
26853         * config/arc/predicates.md (extend_operand): During/after reload,
26854         allow const_int_operand.
26855         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
26856         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
26857         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
26858         to "i".
26859         (umulsi3_highpart_i): Likewise.
26860
26861 2014-03-11  Richard Biener  <rguenther@suse.de>
26862
26863         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
26864         Add asserts to guard possible wrong-code bugs.
26865
26866 2014-03-11  Richard Biener  <rguenther@suse.de>
26867
26868         PR tree-optimization/60429
26869         PR tree-optimization/60485
26870         * tree-ssa-structalias.c (set_union_with_increment): Properly
26871         take into account all fields that overlap the shifted vars.
26872         (do_sd_constraint): Likewise.
26873         (do_ds_constraint): Likewise.
26874         (get_constraint_for_ptr_offset): Likewise.
26875
26876 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
26877
26878         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
26879         (nios2_compute_frame_layout):
26880         Add calculation of cfun->machine->fp_save_offset.
26881         (nios2_expand_prologue): Correct setting of frame pointer register
26882         in prologue.
26883         (nios2_expand_epilogue): Update recovery of stack pointer from
26884         frame pointer accordingly.
26885         (nios2_initial_elimination_offset): Update calculation of offset
26886         for eliminating to HARD_FRAME_POINTER_REGNUM.
26887
26888 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
26889
26890         PR ipa/60457
26891         * ipa.c (symtab_remove_unreachable_nodes): Don't call
26892         cgraph_get_create_node on VAR_DECLs.
26893
26894 2014-03-10  Richard Biener  <rguenther@suse.de>
26895
26896         PR middle-end/60474
26897         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
26898
26899 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
26900
26901         * config/vms/vms.opt (vms_float_format): New variable.
26902
26903 2014-03-08  Tobias Burnus  <burnus@net-b.de>
26904
26905         * doc/invoke.texi (-fcilkplus): Update implementation status.
26906
26907 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
26908             Richard Biener  <rguenther@suse.de>
26909
26910         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
26911         consistently accross all TUs.
26912         (run_gcc): Enable -fshort-double automatically at link at link-time
26913         and disallow override.
26914
26915 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
26916
26917         PR target/58271
26918         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
26919         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
26920         if they can't be used.
26921
26922 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26923
26924         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
26925         for Solaris 11/x86 ld.
26926         * configure: Regenerate.
26927
26928 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26929
26930         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
26931         (LIB_TLS_SPEC): Save as ld_tls_libs.
26932         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
26933         (HAVE_AS_IX86_TLSLDM): New test.
26934         * configure, config.in: Regenerate.
26935         * config/i386/i386.c (legitimize_tls_address): Fall back to
26936         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
26937         cannot support TLS_MODEL_LOCAL_DYNAMIC.
26938         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
26939         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
26940
26941 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
26942
26943         * common.opt (fira-loop-pressure): Mark as optimization.
26944
26945 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
26946
26947         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
26948         an OpenMP mappable type.
26949
26950 2014-03-06  Matthias Klose  <doko@ubuntu.com>
26951
26952         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
26953         MULTILIB_OSDIRNAMES is not defined.
26954
26955 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
26956             Meador Inge  <meadori@codesourcery.com>
26957
26958         PR target/58595
26959         * config/arm/arm.c (arm_tls_symbol_p): Remove.
26960         (arm_legitimize_address): Call legitimize_tls_address for any
26961         arm_tls_referenced_p expression, handle constant addend.  Call it
26962         before testing for !TARGET_ARM.
26963         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
26964
26965 2014-03-06  Richard Biener  <rguenther@suse.de>
26966
26967         PR middle-end/60445
26968         PR lto/60424
26969         PR lto/60427
26970         Revert
26971         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
26972
26973         * tree-streamer.c (record_common_node): Assert we don't record
26974         nodes with type double.
26975         (preload_common_node): Skip type double, complex double and double
26976         pointer since it is now frontend dependent due to fshort-double option.
26977
26978 2014-03-06  Richard Biener  <rguenther@suse.de>
26979
26980         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
26981         or -fno-lto is specified and the linker has full plugin support.
26982         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
26983         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
26984         * lto-wrapper.c (merge_and_complain): Merge compile-time
26985         optimization levels.
26986         (run_gcc): And pass it through to the link options.
26987
26988 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
26989
26990         PR debug/60381
26991         Revert:
26992         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
26993         PR debug/59992
26994         * cselib.c (remove_useless_values): Skip to avoid quadratic
26995         behavior if the condition moved from...
26996         (cselib_process_insn): ... here holds.
26997
26998 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
26999
27000         PR plugins/59335
27001         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
27002         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
27003
27004         PR plugins/59335
27005         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
27006         (TM_H): Add x86-tune.def.
27007
27008 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27009
27010         * config/aarch64/aarch64.c (generic_tunings):
27011         Use cortexa57_extra_costs.
27012
27013 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
27014
27015         PR lto/60404
27016         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
27017         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
27018         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
27019         cost for in_lto_p.
27020
27021 2014-03-04  Heiher  <r@hev.cc>
27022
27023         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
27024         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
27025
27026 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
27027
27028         * config/i386/predicates.md (const2356_operand): Change to ...
27029         (const2367_operand): ... this.
27030         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
27031         const2367_operand.
27032         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
27033         (*avx512pf_scatterpf<mode>sf): Ditto.
27034         (avx512pf_scatterpf<mode>df): Ditto.
27035         (*avx512pf_scatterpf<mode>df_mask): Ditto.
27036         (*avx512pf_scatterpf<mode>df): Ditto.
27037         * config/i386/i386.c (ix86_expand_builtin): Update
27038         incorrect hint operand error message.
27039
27040 2014-03-04  Richard Biener  <rguenther@suse.de>
27041
27042         * lto-section-in.c (lto_get_section_data): Fix const cast.
27043
27044 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
27045
27046         * tree-streamer.c (record_common_node): Assert we don't record
27047         nodes with type double.
27048         (preload_common_node): Skip type double, complex double and double
27049         pointer since it is now frontend dependent due to fshort-double option.
27050
27051 2014-03-04  Richard Biener  <rguenther@suse.de>
27052
27053         PR lto/60405
27054         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
27055         (lto_input_toplevel_asms): Likewise.
27056         * lto-section-in.c (lto_get_section_data): Instead do it here
27057         for every section.
27058
27059 2014-03-04  Richard Biener  <rguenther@suse.de>
27060
27061         PR tree-optimization/60382
27062         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
27063         dead PHIs a reduction.
27064
27065 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
27066
27067         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
27068         hint value.
27069         (_mm_prefetch): Move out of GCC target("sse") pragma.
27070         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
27071         GCC target("prfchw") pragma.
27072         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
27073         for locality <= 2.
27074         * config/i386/i386.c (ix86_option_override_internal): Enable
27075         -mprfchw with -mprefetchwt1.
27076
27077 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
27078
27079         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
27080         Mark as varying.
27081
27082 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
27083
27084         * opts.h (CL_PCH_IGNORE): Define.
27085         * targhooks.c (option_affects_pch_p):
27086         Return false for options that have CL_PCH_IGNORE set.
27087         * opt-functions.awk: Process PchIgnore.
27088         * doc/options.texi: Document PchIgnore.
27089
27090         * config/arc/arc.opt (misize): Add PchIgnore property.
27091
27092 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27093
27094         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
27095         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
27096         constraint on constants to permit them being loaded into
27097         GENERAL_REGS or BASE_REGS.
27098
27099 2014-03-03  Nick Clifton  <nickc@redhat.com>
27100
27101         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
27102         anti-cacnonical alternatives.
27103         (negandhi3_real): New pattern.
27104         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
27105
27106 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
27107
27108         * config/avr/avr-mcus.def: Remove atxmega16x1.
27109         * config/avr/avr-tables.opt: Regenerate.
27110         * config/avr/t-multilib: Regenerate.
27111         * doc/avr-mmcu.texi: Regenerate.
27112
27113 2014-03-03  Tobias Grosser  <tobias@grosser.es>
27114             Mircea Namolaru  <mircea.namolaru@inria.fr>
27115
27116         PR tree-optimization/58028
27117         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
27118         scalar dimensions.
27119
27120 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27121
27122         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
27123         not handled by recognizers.
27124
27125 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
27126
27127         PR middle-end/60175
27128         * function.c (expand_function_end): Don't emit
27129         clobber_return_register sequence if clobber_after is a BARRIER.
27130         * cfgexpand.c (construct_exit_block): Append instructions before
27131         return_label to prev_bb.
27132
27133 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27134
27135         * config/rs6000/constraints.md: Document reserved use of "wc".
27136
27137 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
27138
27139         PR ipa/60150
27140         * ipa.c (function_and_variable_visibility): When dissolving comdat
27141         group, also set all symbols to local.
27142
27143 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
27144
27145         PR ipa/60306
27146
27147         Revert:
27148         2013-12-14  Jan Hubicka  <jh@suse.cz>
27149         PR middle-end/58477
27150         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
27151
27152 2014-03-02  Jon Beniston  <jon@beniston.com>
27153
27154         PR bootstrap/48230
27155         PR bootstrap/50927
27156         PR bootstrap/52466
27157         PR target/46898
27158         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
27159           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
27160         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
27161         (simple_return, *simple_return): New patterns
27162         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
27163         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
27164
27165 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
27166
27167         * dwarf2out.c (gen_subprogram_die): Tidy.
27168
27169 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
27170
27171         PR target/60071
27172         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
27173         (*mov_t_msb_neg_negc): ... this new insn.
27174
27175 2014-02-28  Jason Merrill  <jason@redhat.com>
27176
27177         PR c++/58678
27178         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
27179         function.
27180
27181 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
27182
27183         PR c++/60314
27184         * dwarf2out.c (decltype_auto_die): New static.
27185         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
27186         (gen_type_die_with_usage): Handle 'decltype(auto)'.
27187         (is_cxx_auto): Likewise.
27188
27189 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
27190
27191         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
27192         we are not using general regs only.
27193
27194 2014-02-28  Richard Biener  <rguenther@suse.de>
27195
27196         PR target/60280
27197         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
27198         previous fix and only allow to remove trivial pre-headers
27199         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
27200         (remove_forwarder_block): Properly update the latch of a loop.
27201
27202 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27203
27204         PR debug/59992
27205         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
27206         (cselib_preserved_hash_table): New.
27207         (preserve_constants_and_equivs): Move preserved vals to it.
27208         (cselib_find_slot): Look it up first.
27209         (cselib_init): Initialize it.
27210         (cselib_finish): Release it.
27211         (dump_cselib_table): Dump it.
27212
27213 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27214
27215         PR debug/59992
27216         * cselib.c (remove_useless_values): Skip to avoid quadratic
27217         behavior if the condition moved from...
27218         (cselib_process_insn): ... here holds.
27219
27220 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27221
27222         PR debug/57232
27223         * var-tracking.c (vt_initialize): Apply the same condition to
27224         preserve the CFA base value.
27225
27226 2014-02-28  Joey Ye  <joey.ye@arm.com>
27227
27228         PR target/PR60169
27229         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
27230         if reload in progress or completed.
27231
27232 2014-02-28  Tobias Burnus  <burnus@net-b.de>
27233
27234         PR middle-end/60147
27235         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
27236         NAMELIST_DECL.
27237
27238 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
27239
27240         * doc/tm.texi.in (Condition Code Status): Update documention for
27241         relative locations of cc0-setter and cc0-user.
27242
27243 2014-02-27  Jeff Law  <law@redhat.com>
27244
27245         PR rtl-optimization/52714
27246         * combine.c (try_combine): When splitting an unrecognized PARALLEL
27247         into two independent simple sets, if I3 is a jump, ensure the
27248         pattern we place into I3 is a (set (pc) ...).
27249
27250 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
27251             Jeff Law  <law@redhat.com>
27252
27253         PR rtl-optimization/49847
27254         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
27255         are in different blocks.
27256         * doc/tm.texi (Condition Code Status): Update documention for
27257         relative locations of cc0-setter and cc0-user.
27258
27259 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
27260
27261         PR target/59222
27262         * lra.c (lra_emit_add): Check SUBREG too.
27263
27264 2014-02-27  Andreas Schwab  <schwab@suse.de>
27265
27266         * config/m68k/m68k.c (m68k_option_override): Disable
27267         -flive-range-shrinkage for classic m68k.
27268         (m68k_override_options_after_change): Likewise.
27269
27270 2014-02-27  Marek Polacek  <polacek@redhat.com>
27271
27272         PR middle-end/59223
27273         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
27274         -Wmaybe-uninitialized.
27275
27276 2014-02-27  Alan Modra  <amodra@gmail.com>
27277
27278         PR target/57936
27279         * reload1.c (emit_input_reload_insns): When reload_override_in,
27280         set old to rl->in_reg when rl->in_reg is a subreg.
27281
27282 2014-02-26  Richard Biener  <rguenther@suse.de>
27283
27284         PR bootstrap/60343
27285         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
27286
27287 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
27288
27289         * common/config/i386/predicates.md (const1256_operand): Remove.
27290         (const2356_operand): New.
27291         (const_1_to_2_operand): Remove.
27292         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
27293         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
27294         (*avx512pf_gatherpf<mode>sf): Ditto.
27295         (avx512pf_gatherpf<mode>df): Ditto.
27296         (*avx512pf_gatherpf<mode>df_mask): Ditto.
27297         (*avx512pf_gatherpf<mode>df): Ditto.
27298         (avx512pf_scatterpf<mode>sf): Ditto.
27299         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
27300         (*avx512pf_scatterpf<mode>sf): Ditto.
27301         (avx512pf_scatterpf<mode>df): Ditto.
27302         (*avx512pf_scatterpf<mode>df_mask): Ditto.
27303         (*avx512pf_scatterpf<mode>df): Ditto.
27304         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
27305
27306 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
27307
27308         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
27309         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
27310         (_mm512_mask_testn_epi64_mask): Move to ...
27311         * config/i386/avx512cdintrin.h: Here.
27312         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
27313         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
27314         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
27315         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
27316         TARGET_AVX512F from TARGET_AVX512CD.
27317
27318 2014-02-26  Richard Biener  <rguenther@suse.de>
27319
27320         PR ipa/60327
27321         * ipa.c (walk_polymorphic_call_targets): Properly guard
27322         call to inline_update_overall_summary.
27323
27324 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
27325
27326         PR target/60280
27327         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
27328         and latches only if requested.  Fix latch if it is removed.
27329         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
27330         LOOPS_HAVE_PREHEADERS.
27331
27332 2014-02-25  Andrew Pinski  <apinski@cavium.com>
27333
27334         * builtins.c (expand_builtin_thread_pointer): Create a new target
27335         when the target is NULL.
27336
27337 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
27338
27339         PR rtl-optimization/60317
27340         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
27341         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
27342         * lra-assigns.c: Include params.h.
27343         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
27344         other reload pseudos considerations.
27345
27346 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27347
27348         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
27349         to use canonical form for nor<mode>3.
27350
27351 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27352
27353         PR target/55426
27354         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
27355         conversions.
27356
27357 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
27358
27359         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
27360         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
27361         (ix86_handle_option): Handle OPT_mprefetchwt1.
27362         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
27363         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
27364         PREFETCHWT1 CPUID.
27365         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
27366         OPTION_MASK_ISA_PREFETCHWT1.
27367         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
27368         (PTA_PREFETCHWT1): New.
27369         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
27370         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
27371         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
27372         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
27373         (*prefetch_avx512pf_<mode>_: Change into ...
27374         (*prefetch_prefetchwt1_<mode>: This.
27375         * config/i386/i386.opt (mprefetchwt1): New.
27376         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
27377         (_mm_prefetch): Handle intent to write.
27378         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
27379
27380 2014-02-25  Richard Biener  <rguenther@suse.de>
27381
27382         PR middle-end/60291
27383         * emit-rtl.c (mem_attrs_htab): Remove.
27384         (mem_attrs_htab_hash): Likewise.
27385         (mem_attrs_htab_eq): Likewise.
27386         (set_mem_attrs): Always allocate new mem-attrs when something changed.
27387         (init_emit_once): Do not allocate mem_attrs_htab.
27388
27389 2014-02-25  Richard Biener  <rguenther@suse.de>
27390
27391         PR lto/60319
27392         * lto-opts.c (lto_write_options): Output non-explicit conservative
27393         -fwrapv, -fno-trapv and -fno-strict-overflow.
27394         * lto-wrapper.c (merge_and_complain): Handle merging those options.
27395         (run_gcc): And pass them through.
27396
27397 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
27398
27399         * sel-sched.c (calculate_new_fences): New parameter ptime.
27400         Calculate it as a maximum over all fence cycles.
27401         (sel_sched_region_2): Adjust the call to calculate_new_fences.
27402         Print the final schedule timing when sched_verbose.
27403
27404 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
27405
27406         PR rtl-optimization/60292
27407         * sel-sched.c (fill_vec_av_set): Do not reset target availability
27408         bit fot the fence instruction.
27409
27410 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
27411
27412         * calls.h: Fix typo in comment.
27413
27414 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
27415
27416         * config/pa/pa.c (pa_output_move_double): Don't valididate when
27417         adjusting offsetable addresses.
27418
27419 2014-02-24  Guozhi Wei  <carrot@google.com>
27420
27421         * sparseset.h (sparseset_pop): Fix the wrong index.
27422
27423 2014-02-24  Walter Lee  <walt@tilera.com>
27424
27425         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
27426         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
27427         triplet.
27428         * common/config/tilegx/tilegx-common.c
27429         (TARGET_DEFAULT_TARGET_FLAGS): Define.
27430         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
27431         (LINK_SPEC): Ditto.
27432         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
27433         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
27434         (tilegx_gimplify_va_arg_expr): Handle big endian.
27435         (tilegx_expand_unaligned_load): Ditto.
27436         (tilegx_expand_unaligned_store): Ditto.
27437         (TARGET_RETURN_IN_MSB): New.
27438         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
27439         (TARGET_ENDIAN_DEFAULT): New.
27440         (TARGET_BIG_ENDIAN): Handle big endian.
27441         (BYTES_BIG_ENDIAN): Ditto.
27442         (WORDS_BIG_ENDIAN): Ditto.
27443         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
27444         (ENDIAN_SPEC): New.
27445         (EXTRA_SPECS): New.
27446         * config/tilegx/tilegx.md (extv): Handle big endian.
27447         (extzv): Ditto.
27448         (insn_st<n>): Ditto.
27449         (insn_st<n>_add<bitsuffix>): Ditto.
27450         (insn_stnt<n>): Ditto.
27451         (insn_stnt<n>_add<bitsuffix>):Ditto.
27452         (vec_interleave_highv8qi): Handle big endian.
27453         (vec_interleave_highv8qi_be): New.
27454         (vec_interleave_highv8qi_le): New.
27455         (insn_v1int_h): Handle big endian.
27456         (vec_interleave_lowv8qi): Handle big endian.
27457         (vec_interleave_lowv8qi_be): New.
27458         (vec_interleave_lowv8qi_le): New.
27459         (insn_v1int_l): Handle big endian.
27460         (vec_interleave_highv4hi): Handle big endian.
27461         (vec_interleave_highv4hi_be): New.
27462         (vec_interleave_highv4hi_le): New.
27463         (insn_v2int_h): Handle big endian.
27464         (vec_interleave_lowv4hi): Handle big endian.
27465         (vec_interleave_lowv4hi_be): New.
27466         (vec_interleave_lowv4hi_le): New.
27467         (insn_v2int_l): Handle big endian.
27468         (vec_interleave_highv2si): Handle big endian.
27469         (vec_interleave_highv2si_be): New.
27470         (vec_interleave_highv2si_le): New.
27471         (insn_v4int_h): Handle big endian.
27472         (vec_interleave_lowv2si): Handle big endian.
27473         (vec_interleave_lowv2si_be): New.
27474         (vec_interleave_lowv2si_le): New.
27475         (insn_v4int_l): Handle big endian.
27476         * config/tilegx/tilegx.opt (mbig-endian): New option.
27477         (mlittle-endian): New option.
27478         * doc/install.texi: Document tilegxbe-linux.
27479         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
27480
27481 2014-02-24  Martin Jambor  <mjambor@suse.cz>
27482
27483         PR ipa/60266
27484         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
27485         there are no parameter descriptors.
27486
27487 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
27488
27489         PR rtl-optimization/60268
27490         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
27491         initialization to ...
27492         (sched_rgn_init): ... here.
27493         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
27494
27495 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
27496
27497         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
27498         names.
27499
27500 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
27501
27502         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
27503         definition.
27504
27505 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
27506
27507         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
27508         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
27509
27510 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
27511
27512         * config/microblaze/predicates.md: Add cmp_op predicate.
27513         * config/microblaze/microblaze.md: Add branch_compare instruction
27514         which uses cmp_op predicate and emits cmp insn before branch.
27515         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
27516         to microblaze_expand_conditional_branch and consolidate logic.
27517         (microblaze_expand_conditional_branch): emit branch_compare
27518         insn instead of handling cmp op separate from branch insn.
27519
27520 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27521
27522         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
27523         to permit subregs.
27524
27525 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27526
27527         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
27528         define_insn with define_expand and new define_insn
27529         *altivec_lve<VI_char>x_internal.
27530         (altivec_stve<VI_char>x): Replace define_insn with define_expand
27531         and new define_insn *altivec_stve<VI_char>x_internal.
27532         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
27533         prototype.
27534         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
27535         lve*x built-ins.
27536         (altivec_expand_stvex_be): New function.
27537
27538 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
27539
27540         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
27541         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
27542         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
27543         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
27544
27545 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
27546
27547         PR target/60298
27548         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
27549         instead of emit_move_insn.
27550
27551 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27552
27553         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
27554         vspltw with vsldoi.
27555         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
27556         gen_altivec_vsumsws.
27557
27558 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27559
27560         * config/rs6000/altivec.md (altivec_lvxl): Rename as
27561         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
27562         (altivec_lvxl_<mode>): New define_expand incorporating
27563         -maltivec=be semantics where needed.
27564         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
27565         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
27566         semantics where needed.
27567         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
27568         (altivec_stvx_<mode>): New define_expand incorporating
27569         -maltivec=be semantics where needed.
27570         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
27571         VM2 iterator instead of V4SI.
27572         (altivec_stvxl_<mode>): New define_expand incorporating
27573         -maltivec=be semantics where needed.
27574         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
27575         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
27576         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
27577         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
27578         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
27579         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
27580         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
27581         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
27582         ALTIVEC_BUILTIN_STVXL.
27583         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
27584         (altivec_expand_stvx_be): Likewise.
27585         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
27586         (altivec_expand_lvx_be): Likewise.
27587         (altivec_expand_stvx_be): Likewise.
27588         (altivec_expand_builtin): Add cases for
27589         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
27590         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
27591         (altivec_init_builtins): Add definitions for
27592         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
27593         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
27594
27595 2014-02-21  Catherine Moore  <clm@codesourcery.com>
27596
27597         * doc/invoke.texi (mvirt, mno-virt): Document.
27598         * config/mips/mips.opt (mvirt): New option.
27599         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
27600
27601 2014-02-21  Richard Biener  <rguenther@suse.de>
27602
27603         PR tree-optimization/60276
27604         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
27605         (STMT_VINFO_MIN_NEG_DIST): New macro.
27606         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
27607         STMT_VINFO_MIN_NEG_DIST.
27608         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
27609         made for negative dependence distances still hold.
27610
27611 2014-02-21  Richard Biener  <rguenther@suse.de>
27612
27613         PR middle-end/60291
27614         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
27615         DECL_INITIAL for globals not in the current function context.
27616
27617 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
27618
27619         PR tree-optimization/56490
27620         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
27621         * tree-ssa-uninit.c: Include params.h.
27622         (compute_control_dep_chain): Add num_calls argument, return false
27623         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
27624         num_calls to recursive call.
27625         (find_predicates): Change dep_chain into normal array,
27626         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
27627         variable and adjust compute_control_dep_chain caller.
27628         (find_def_preds): Likewise.
27629
27630 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
27631
27632         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
27633         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
27634
27635 2014-02-21  Nick Clifton  <nickc@redhat.com>
27636
27637         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
27638         (pushhi1): Likewise.
27639         (popqi1): Add mode to pre_dec.
27640         (pophi1): Likewise.
27641
27642 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
27643
27644         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
27645         mode for mask of V8SFmode permutation.
27646
27647 2014-02-20  Richard Henderson  <rth@redhat.com>
27648
27649         PR c++/60272
27650         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
27651         a new pseudo for OLDVAL.
27652
27653 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
27654
27655         PR target/57896
27656         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
27657         gen_reg_rtx if d->testing_p.
27658         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
27659         if d->testing_p and we will certainly return true.
27660         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
27661         if d->testing_p.
27662
27663 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
27664
27665         * emit-rtl.c (gen_reg_rtx): Assert that
27666         crtl->emit.regno_pointer_align_length is non-zero.
27667
27668 2014-02-20  Richard Henderson  <rth@redhat.com>
27669
27670         PR c++/60272
27671         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
27672         on failure the store back into EXPECT.
27673
27674 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
27675             Sandra Loosemore  <sandra@codesourcery.com>
27676
27677         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
27678         * config/nios2/nios2.c (nios2_function_profiler): Add
27679         -fPIC (flag_pic == 2) support.
27680         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
27681         (nios2_large_offset_p): New function.
27682         (nios2_unspec_reloc_p): Move up position, update to use
27683         nios2_large_offset_p.
27684         (nios2_unspec_address): Remove function.
27685         (nios2_unspec_offset): New function.
27686         (nios2_large_got_address): New function.
27687         (nios2_got_address): Add large offset support.
27688         (nios2_legitimize_tls_address): Update usage of removed and new
27689         functions.
27690         (nios2_symbol_binds_local_p): New function.
27691         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
27692         (nios2_legitimize_address): Update to use nios2_large_offset_p.
27693         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
27694         (nios2_print_operand): Merge H/L processing, add hiadj/lo
27695         processing for (const (unspec ...)).
27696         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
27697
27698 2014-02-20  Richard Biener  <rguenther@suse.de>
27699
27700         * tree-cfg.c (replace_uses_by): Mark altered BBs before
27701         doing the substitution.
27702         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
27703
27704 2014-02-20  Martin Jambor  <mjambor@suse.cz>
27705
27706         PR ipa/55260
27707         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
27708         info when checking whether lattices are bottom.
27709
27710 2014-02-20  Richard Biener  <rguenther@suse.de>
27711
27712         PR middle-end/60221
27713         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
27714         regions at -O0.
27715
27716 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
27717
27718         PR ipa/58555
27719         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
27720         parameter specifying the scaling.
27721         (inline_call): Update.
27722         (want_inline_recursively): Guard division by zero.
27723         (recursive_inlining): Update.
27724         * ipa-inline.h (clone_inlined_nodes): Update.
27725
27726 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
27727
27728         PR target/60204
27729         * config/i386/i386.c (classify_argument): Pass structures of size
27730         64 bytes or less in register.
27731
27732 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
27733             Kirill Yukhin  <kirill.yukhin@intel.com>
27734
27735         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
27736         (_mm_rcp28_round_ss): Ditto.
27737         (_mm_rsqrt28_round_sd): Ditto.
27738         (_mm_rsqrt28_round_ss): Ditto.
27739         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
27740         (_mm_rcp14_round_ss): Ditto.
27741         (_mm_rsqrt14_round_sd): Ditto.
27742         (_mm_rsqrt14_round_ss): Ditto.
27743         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
27744         the first input operand, get rid of match_dup.
27745         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
27746         attribute to sse.
27747         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
27748         Ditto.
27749         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
27750         operand as the first input operand, set type attribute.
27751         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
27752         Set type attribute.
27753         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
27754         operand as the first input operand, set type attribute.
27755
27756 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27757
27758         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
27759         bit of zero.
27760
27761 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
27762
27763         PR target/60207
27764         * config/i386/i386.c (construct_container): Remove TFmode check
27765         for X86_64_INTEGER_CLASS.
27766
27767 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
27768
27769         PR target/59794
27770         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
27771         only when -Wpsabi is enabled.
27772
27773 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
27774
27775          PR target/59799
27776         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
27777         passing arrays in registers are the same as for structs, so remove the
27778         special case for them.
27779
27780 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
27781
27782         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
27783         destination type, extract only the valid bits if the source type is not
27784         integral and has a different mode.
27785
27786 2014-02-19  Richard Biener  <rguenther@suse.de>
27787
27788         PR ipa/60243
27789         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
27790         for all calls.
27791
27792 2014-02-19  Richard Biener  <rguenther@suse.de>
27793
27794         PR ipa/60243
27795         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
27796         (ipa_modify_call_arguments): Emit an argument load explicitely and
27797         preserve virtual SSA form there and for the replacement call.
27798         Do not update SSA form nor free dominance info.
27799
27800 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
27801
27802         * ipa.c (function_and_variable_visibility): Also clear WEAK
27803         flag when disolving COMDAT_GROUP.
27804
27805 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
27806
27807         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
27808         * ipa-prop.c (ipa_set_jf_known_type): Return early when
27809         not devirtualizing.
27810         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
27811         do more sanity checks.
27812         (detect_type_change): Return true when giving up early.
27813         (compute_complex_assign_jump_func): Fix type parameter of
27814         ipa_set_ancestor_jf.
27815         (compute_complex_ancestor_jump_func): Likewise.
27816         (update_jump_functions_after_inlining): Fix updating of
27817         ancestor function.
27818         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
27819
27820 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
27821
27822         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
27823         inline clones when edge disappears.
27824
27825 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
27826
27827         PR target/60203
27828         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
27829         Split 64-bit moves into 2 patterns.  Do not allow the use of
27830         direct move for TDmode in little endian, since the decimal value
27831         has little endian bytes within a word, but the 64-bit pieces are
27832         ordered in a big endian fashion, and normal subreg's of TDmode are
27833         not allowed.
27834         (mov<mode>_64bit_dm): Likewise.
27835         (movtd_64bit_nodm): Likewise.
27836
27837 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
27838
27839         PR tree-optimization/60174
27840         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
27841         statement of an SSA_NAME that occurs in an abnormal PHI node.
27842
27843 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
27844
27845         PR sanitizer/60142
27846         * final.c (SEEN_BB): Remove.
27847         (SEEN_NOTE, SEEN_EMITTED): Renumber.
27848         (final_scan_insn): Don't force_source_line on second
27849         NOTE_INSN_BASIC_BLOCK.
27850
27851 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
27852
27853         PR target/60205
27854         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
27855         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
27856         (type_natural_mode): Warn ABI change when %zmm register is not
27857         available for AVX512F vector value passing.
27858
27859 2014-02-18  Kai Tietz  <ktietz@redhat.com>
27860
27861         PR target/60193
27862         * config/i386/i386.c (ix86_expand_prologue): Use value in
27863         rax register as displacement when restoring %r10 or %rax.
27864         Fix wrong offset when restoring both registers.
27865
27866 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
27867
27868         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
27869         assertion with conditional return.
27870
27871 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
27872             Uros Bizjak  <ubizjak@gmail.com>
27873
27874         PR driver/60233
27875         * config/i386/driver-i386.c (host_detect_local_cpu): If
27876         YMM state is not saved by the OS, also clear has_f16c.  Move
27877         CPUID 0x80000001 handling before YMM state saving checking.
27878
27879 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
27880
27881         PR rtl-optimization/58960
27882         * haifa-sched.c (alloc_global_sched_pressure_data): New,
27883         factored out from ...
27884         (sched_init): ... here.
27885         (free_global_sched_pressure_data): New, factored out from ...
27886         (sched_finish): ... here.
27887         * sched-int.h (free_global_sched_pressure_data): Declare.
27888         * sched-rgn.c (nr_regions_initial): New static global.
27889         (haifa_find_rgns): Initialize it.
27890         (schedule_region): Disable sched-pressure for the newly
27891         generated regions.
27892
27893 2014-02-17  Richard Biener  <rguenther@suse.de>
27894
27895         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
27896         release SSA defs of pattern stmts.
27897
27898 2014-02-17  Richard Biener  <rguenther@suse.de>
27899
27900         * tree-inline.c (expand_call_inline): Release the virtual
27901         operand defined by the call we are about to inline.
27902
27903 2014-02-17  Richard Biener  <rguenther@suse.de>
27904
27905         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
27906
27907 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
27908             Ilya Tocar  <ilya.tocar@intel.com>
27909
27910         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
27911         arguments order in builtin.
27912         (_mm512_permutexvar_epi64): Ditto.
27913         (_mm512_mask_permutexvar_epi64): Ditto
27914         (_mm512_maskz_permutexvar_epi32): Ditto
27915         (_mm512_permutexvar_epi32): Ditto
27916         (_mm512_mask_permutexvar_epi32): Ditto
27917
27918 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27919
27920         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
27921         (p8_vmrgow): Likewise.
27922
27923 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27924
27925         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
27926         endian targets.
27927
27928 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
27929
27930         PR target/60203
27931         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
27932         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
27933         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
27934         using direct move instructions on ISA 2.07.  Also adjust
27935         instruction length for 64-bit.
27936         (mov<mode>_64bit, TFmode/TDmode): Likewise.
27937         (mov<mode>_32bit, TFmode/TDmode): Likewise.
27938
27939 2014-02-15  Alan Modra  <amodra@gmail.com>
27940
27941         PR target/58675
27942         PR target/57935
27943         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
27944         find_replacement on parts of insn rtl that might be reloaded.
27945
27946 2014-02-15  Richard Biener  <rguenther@suse.de>
27947
27948         PR tree-optimization/60183
27949         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
27950         (tree_ssa_phiprop): Calculate and free post-dominators.
27951
27952 2014-02-14  Jeff Law  <law@redhat.com>
27953
27954         PR rtl-optimization/60131
27955         * ree.c (get_extended_src_reg): New function.
27956         (combine_reaching_defs): Use it rather than assuming location of REG.
27957         (find_and_remove_re): Verify first operand of extension is
27958         a REG before adding the insns to the copy list.
27959
27960 2014-02-14  Roland McGrath  <mcgrathr@google.com>
27961
27962         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
27963         * configure: Regenerated.
27964         * config.in: Regenerated.
27965         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
27966         instead of ASM_SHORT.
27967
27968 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
27969             Richard Earnshaw  <rearnsha@arm.com>
27970
27971         PR rtl-optimization/59535
27972         * lra-constraints.c (process_alt_operands): Encourage alternative
27973         when unassigned pseudo class is superset of the alternative class.
27974         (inherit_reload_reg): Don't inherit when optimizing for code size.
27975         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
27976         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
27977         modes not less than 4 for Thumb1.
27978
27979 2014-02-14  Kyle McMartin  <kyle@redhat.com>
27980
27981         PR pch/60010
27982         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
27983
27984 2014-02-14  Richard Biener  <rguenther@suse.de>
27985
27986         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
27987         (get_frame_arg): Drop the assert with langhook types_compatible_p.
27988         Do not strip INDIRECT_REFs.
27989
27990 2014-02-14  Richard Biener  <rguenther@suse.de>
27991
27992         PR lto/60179
27993         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
27994         DECL_FUNCTION_SPECIFIC_TARGET.
27995         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
27996         * tree-streamer-out.c (pack_ts_target_option): Remove.
27997         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
27998         (write_ts_function_decl_tree_pointers): Do not stream
27999         DECL_FUNCTION_SPECIFIC_TARGET.
28000         * tree-streamer-in.c (unpack_ts_target_option): Remove.
28001         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
28002         (lto_input_ts_function_decl_tree_pointers): Do not stream
28003         DECL_FUNCTION_SPECIFIC_TARGET.
28004
28005 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
28006
28007         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
28008         (get_initial_def_for_induction, vectorizable_induction): Ignore
28009         debug stmts when looking for exit_phi.
28010         (vectorizable_live_operation): Fix up condition.
28011
28012 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
28013
28014         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
28015         nreverse() because it changes the content of original tree list.
28016
28017 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
28018
28019         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
28020         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
28021
28022 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
28023
28024         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
28025         GNU coding standards.
28026
28027 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
28028
28029         PR debug/60152
28030         * dwarf2out.c (gen_subprogram_die): Don't call
28031         add_calling_convention_attribute if subr_die is old_die.
28032
28033 2014-02-13  Sharad Singhai  <singhai@google.com>
28034
28035         * doc/optinfo.texi: Fix order of nodes.
28036
28037 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
28038
28039         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
28040         operands[2], not operands[3].
28041
28042 2014-02-13  Richard Biener  <rguenther@suse.de>
28043
28044         PR bootstrap/59878
28045         * doc/install.texi (ISL): Update recommended version to 0.12.2,
28046         mention the possibility of an in-tree build.
28047         (CLooG): Update recommended version to 0.18.1, mention the
28048         possibility of an in-tree build and clarify that the ISL
28049         bundled with CLooG does not work.
28050
28051 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
28052
28053         PR target/43546
28054         * expr.c (compress_float_constant): If x is a hard register,
28055         extend into a pseudo and then move to x.
28056
28057 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
28058
28059         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
28060         caused by bad second argument to warning_at() with -mhotpatch and
28061         nested functions (e.g. with gfortran).
28062
28063 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
28064
28065         * opts.c (option_name): Remove "enabled by default" rider.
28066
28067 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
28068
28069         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
28070
28071 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
28072             Uros Bizjak  <ubizjak@gmail.com>
28073
28074         PR target/60151
28075         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
28076         * configure: Regenerated.
28077
28078 2014-02-12  Richard Biener  <rguenther@suse.de>
28079
28080         * vec.c (vec_prefix::calculate_allocation): Move as
28081         inline variant to vec.h.
28082         (vec_prefix::calculate_allocation_1): New out-of-line version.
28083         * vec.h (vec_prefix::calculate_allocation_1): Declare.
28084         (vec_prefix::m_has_auto_buf): Rename to ...
28085         (vec_prefix::m_using_auto_storage): ... this.
28086         (vec_prefix::calculate_allocation): Inline the easy cases
28087         and dispatch to calculate_allocation_1 which doesn't need the
28088         prefix address.
28089         (va_heap::reserve): Use gcc_checking_assert.
28090         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
28091         m_using_auto_storage.
28092         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
28093         member and adjust.
28094         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
28095         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
28096         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
28097
28098 2014-02-12  Richard Biener  <rguenther@suse.de>
28099
28100         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
28101         when we found a dependence.
28102
28103 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
28104
28105         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
28106         common code...
28107         (maybe_fold_stmt): ... into this new function.
28108         * omp-low.c (lower_omp): Update comment.
28109
28110         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
28111         last use.
28112
28113         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
28114         dereference.
28115
28116 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
28117
28118         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
28119         identifiers in comments.
28120         (cortexa53_extra_costs): Likewise.
28121         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
28122         (cortexa7_extra_costs): Likewise.
28123         (cortexa12_extra_costs): Likewise.
28124         (cortexa15_extra_costs): Likewise.
28125         (v7m_extra_costs): Likewise.
28126
28127 2014-02-12  Richard Biener  <rguenther@suse.de>
28128
28129         PR middle-end/60092
28130         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
28131         of posix_memalign being successful.
28132         (lower_stmt): Restrict lowering of posix_memalign to when
28133         -ftree-bit-ccp is enabled.
28134
28135 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
28136
28137         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
28138         arg_loc.
28139         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
28140
28141 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
28142
28143         PR rtl-optimization/60116
28144         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
28145         other_insn once the combination has been validated.
28146
28147 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
28148
28149         PR lto/59468
28150         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
28151         and wrapper.
28152         * ipa-devirt.c: Include demangle.h
28153         (odr_violation_reported): New static variable.
28154         (add_type_duplicate): Update odr_violations.
28155         (maybe_record_node): Add completep parameter; update it.
28156         (record_target_from_binfo): Add COMPLETEP parameter;
28157         update it as needed.
28158         (possible_polymorphic_call_targets_1): Likewise.
28159         (struct polymorphic_call_target_d): Add nonconstruction_targets;
28160         rename FINAL to COMPLETE.
28161         (record_targets_from_bases): Sanity check we found the binfo;
28162         fix COMPLETEP updating.
28163         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
28164         parameter, fix computing of COMPLETEP.
28165         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
28166         at LTO time do demangling.
28167         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
28168         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
28169         parameter.
28170         (gimple_get_virt_method_for_binfo): Likewise.
28171         * gimple-fold.h (gimple_get_virt_method_for_binfo,
28172         gimple_get_virt_method_for_vtable): Update prototypes.
28173
28174 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
28175
28176         PR target/49008
28177         * genautomata.c (add_presence_absence): Fix typo with
28178         {final_}presence_list.
28179
28180 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
28181
28182         PR target/60137
28183         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
28184         for VSX/Altivec vectors that land in GPR registers.
28185
28186 2014-02-11  Richard Henderson  <rth@redhat.com>
28187             Jakub Jelinek  <jakub@redhat.com>
28188
28189         PR debug/59776
28190         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
28191         around drhs if type conversion to lacc->type is not useless.
28192
28193 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28194
28195         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
28196         tuning struct.
28197         (cortex-a57.cortex-a53): Likewise.
28198         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
28199
28200 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28201
28202         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
28203         arm_restrict_it.
28204
28205 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
28206
28207         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
28208         add_options_for_arm_vfp3.
28209
28210 2014-02-11  Jeff Law  <law@redhat.com>
28211
28212         PR middle-end/54041
28213         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
28214         object with an undesirable mode.
28215
28216 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28217
28218         PR libgomp/60107
28219         * config/i386/sol2-9.h: New file.
28220         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
28221         *-*-solaris2.9*): Use it.
28222
28223 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
28224
28225         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
28226         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
28227
28228 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
28229
28230         * config/microblaze/microblaze.c: Extend mcpu version format
28231
28232 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
28233
28234         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
28235
28236 2014-02-10  Richard Henderson  <rth@redhat.com>
28237
28238         PR target/59927
28239         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
28240         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
28241         ms-abi vs -mno-accumulate-outgoing-args.
28242         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
28243         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
28244         respect to ms-abi.
28245
28246 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28247
28248         PR middle-end/60080
28249         * cfgexpand.c (expand_asm_operands): Attach source location to
28250         ASM_INPUT rtx objects.
28251         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
28252
28253 2014-02-10  Nick Clifton  <nickc@redhat.com>
28254
28255         * config/mn10300/mn10300.c (popcount): New function.
28256         (mn10300_expand_prologue): Include saved registers in stack usage
28257         count.
28258
28259 2014-02-10  Jeff Law  <law@redhat.com>
28260
28261         PR middle-end/52306
28262         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
28263         when changing the SET_DEST of a prior insn to avoid an input reload.
28264
28265 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28266
28267         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
28268         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
28269         -mcall-openbsd, or -mcall-linux.
28270         (CC1_ENDIAN_BIG_SPEC): Remove.
28271         (CC1_ENDIAN_LITTLE_SPEC): Remove.
28272         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
28273         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
28274         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
28275         and %cc1_endian_default.
28276         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
28277
28278 2014-02-10  Richard Biener  <rguenther@suse.de>
28279
28280         PR tree-optimization/60115
28281         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
28282         MEM_REF handling.  Properly verify that the accesses are not
28283         out of the objects bound.
28284
28285 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28286
28287         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
28288         coretex to cortex.
28289
28290 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
28291
28292         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
28293         proper constants and fix formatting.
28294         (possible_polymorphic_call_targets): Fix formatting.
28295
28296 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
28297             Ilya Tocar  <ilya.tocar@intel.com>
28298
28299         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
28300         (_mm512_loadu_epi32): Renamed into...
28301         (_mm512_loadu_si512): This.
28302         (_mm512_storeu_epi32): Renamed into...
28303         (_mm512_storeu_si512): This.
28304         (_mm512_maskz_ceil_ps): Removed.
28305         (_mm512_maskz_ceil_pd): Ditto.
28306         (_mm512_maskz_floor_ps): Ditto.
28307         (_mm512_maskz_floor_pd): Ditto.
28308         (_mm512_floor_round_ps): Ditto.
28309         (_mm512_floor_round_pd): Ditto.
28310         (_mm512_ceil_round_ps): Ditto.
28311         (_mm512_ceil_round_pd): Ditto.
28312         (_mm512_mask_floor_round_ps): Ditto.
28313         (_mm512_mask_floor_round_pd): Ditto.
28314         (_mm512_mask_ceil_round_ps): Ditto.
28315         (_mm512_mask_ceil_round_pd): Ditto.
28316         (_mm512_maskz_floor_round_ps): Ditto.
28317         (_mm512_maskz_floor_round_pd): Ditto.
28318         (_mm512_maskz_ceil_round_ps): Ditto.
28319         (_mm512_maskz_ceil_round_pd): Ditto.
28320         (_mm512_expand_pd): Ditto.
28321         (_mm512_expand_ps): Ditto.
28322         * config/i386/i386.c (ix86_builtins): Remove
28323         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
28324         (bdesc_args): Ditto.
28325         * config/i386/predicates.md (const1256_operand): New.
28326         (const_1_to_2_operand): Ditto.
28327         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
28328         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
28329         (*avx512pf_gatherpf<mode>sf): Ditto.
28330         (avx512pf_gatherpf<mode>df): Ditto.
28331         (*avx512pf_gatherpf<mode>df_mask): Ditto.
28332         (*avx512pf_gatherpf<mode>df): Ditto.
28333         (avx512pf_scatterpf<mode>sf): Ditto.
28334         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
28335         (*avx512pf_scatterpf<mode>sf): Ditto.
28336         (avx512pf_scatterpf<mode>df): Ditto.
28337         (*avx512pf_scatterpf<mode>df_mask): Ditto.
28338         (*avx512pf_scatterpf<mode>df): Ditto.
28339         (avx512f_expand<mode>): Removed.
28340         (<shift_insn><mode>3<mask_name>): Change predicate type.
28341
28342 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
28343
28344         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
28345         not at the end of datarefs vector use ordered_remove to avoid
28346         reordering datarefs vector.
28347
28348         PR c/59984
28349         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
28350         mark local addressable non-static vars as GOVD_PRIVATE
28351         instead of GOVD_LOCAL.
28352         * omp-low.c (lower_omp_for): Move gimple_bind_vars
28353         and BLOCK_VARS of gimple_bind_block to new_stmt rather
28354         than copying them.
28355
28356         PR middle-end/60092
28357         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
28358         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
28359         assume_aligned or alloc_align attributes.
28360         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
28361         arguments.  Handle also assume_aligned and alloc_align attributes.
28362         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
28363         calls to functions with assume_aligned or alloc_align attributes.
28364         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
28365
28366 2014-02-08  Terry Guo  <terry.guo@arm.com>
28367
28368         * doc/invoke.texi: Document ARM -march=armv7e-m.
28369
28370 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
28371
28372         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
28373         flag on __cilkrts_rethrow builtin.
28374
28375         PR ipa/60026
28376         * ipa-cp.c (determine_versionability): Fail at -O0
28377         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
28378         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
28379
28380         Revert:
28381         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
28382
28383         PR ipa/60026
28384         * tree-inline.c (copy_forbidden): Fail for
28385         __attribute__((optimize (0))) functions.
28386
28387 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
28388
28389         * varpool.c: Include pointer-set.h.
28390         (varpool_remove_unreferenced_decls): Variables in other partitions
28391         will not be output; be however careful to not lose information
28392         about partitioning.
28393
28394 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
28395
28396         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
28397         lookup in the vtable constructor.
28398
28399 2014-02-07  Jeff Law  <law@redhat.com>
28400
28401         PR target/40977
28402         * config/m68k/m68k.md (ashldi_extsi): Turn into a
28403         define_insn_and_split.
28404
28405         * ipa-inline.c (inline_small_functions): Fix typos.
28406
28407 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28408
28409         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
28410         (s390_can_use_return_insn): Declare.
28411         * config/s390/s390.h (EPILOGUE_USES): Define.
28412         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
28413         instructions.
28414         (s390_chunkify_start): Handle return JUMP_LABELs.
28415         (s390_early_mach): Emit a main_pool instruction on the entry edge.
28416         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
28417         (s390_can_use_return_insn): New functions.
28418         (s390_fix_long_loop_prediction): Handle conditional returns.
28419         (TARGET_SET_UP_BY_PROLOGUE): Define.
28420         * config/s390/s390.md (ANY_RETURN): New code iterator.
28421         (*creturn, *csimple_return, return, simple_return): New patterns.
28422
28423 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28424
28425         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
28426         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
28427         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
28428         REG_CFA_RESTORE list when deciding not to restore a register.
28429
28430 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28431
28432         * config/s390/s390.c: Include tree-pass.h and context.h.
28433         (s390_early_mach): New function, split out from...
28434         (s390_emit_prologue): ...here.
28435         (pass_data_s390_early_mach): New pass structure.
28436         (pass_s390_early_mach): New class.
28437         (s390_option_override): Create and register early_mach pass.
28438         Move to end of file.
28439
28440 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28441
28442         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
28443         to match for the exit block.
28444
28445 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28446
28447         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
28448         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
28449         Reject misaligned operands.
28450
28451 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28452
28453         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
28454
28455 2014-02-07  Richard Biener  <rguenther@suse.de>
28456
28457         PR middle-end/60092
28458         * gimple-low.c (lower_builtin_posix_memalign): New function.
28459         (lower_stmt): Call it to lower posix_memalign in a way
28460         to make alignment info accessible.
28461
28462 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
28463
28464         PR c++/60082
28465         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
28466         __builtin_setjmp_receiver.
28467
28468 2014-02-07  Richard Biener  <rguenther@suse.de>
28469
28470         PR middle-end/60092
28471         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
28472         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
28473         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
28474         Handle BUILT_IN_POSIX_MEMALIGN.
28475         (find_func_clobbers): Likewise.
28476         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
28477         (call_may_clobber_ref_p_1): Likewise.
28478
28479 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28480
28481         PR ipa/59918
28482         * ipa-devirt.c (record_target_from_binfo): Remove overactive
28483         sanity check.
28484
28485 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28486
28487         PR ipa/59469
28488         * lto-cgraph.c (lto_output_node): Use
28489         symtab_get_symbol_partitioning_class.
28490         (lto_output_varpool_node): likewise.
28491         (symtab_get_symbol_partitioning_class): Move here from
28492         lto/lto-partition.c
28493         * cgraph.h (symbol_partitioning_class): Likewise.
28494         (symtab_get_symbol_partitioning_class): Declare.
28495
28496 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28497
28498         * ggc.h (ggc_internal_cleared_alloc): New macro.
28499         * vec.h (vec_safe_copy): Handle memory stats.
28500         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
28501         * target-globals.c (save_target_globals): Likewise.
28502
28503 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28504
28505         PR target/60077
28506         * expr.c (emit_move_resolve_push): Export; be bit more selective
28507         on when to clear alias set.
28508         * expr.h (emit_move_resolve_push): Declare.
28509         * function.h (struct function): Add tail_call_marked.
28510         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
28511         * config/i386/i386-protos.h (ix86_expand_push): Remove.
28512         * config/i386/i386.md (TImode move expander): De not call
28513         ix86_expand_push.
28514         (FP push expanders): Preserve memory attributes.
28515         * config/i386/sse.md (push<mode>1): Remove.
28516         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
28517         (ix86_expand_push): Remove.
28518         * config/i386/mmx.md (push<mode>1): Remove.
28519
28520 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
28521
28522         PR rtl-optimization/60030
28523         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
28524         lopart with paradoxical subreg before shifting it up by hprec.
28525
28526 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28527
28528         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
28529         Remove extra newline at end of file.
28530         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
28531         (arm_issue_rate): Handle cortexa57.
28532         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
28533         (cortex-a57.cortex-a53): Likewise.
28534
28535 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
28536
28537         PR target/59575
28538         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
28539         don't record in REG_FRAME_RELATED_EXPR registers not set in that
28540         bitmask.
28541         (arm_expand_prologue): Adjust all callers.
28542         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
28543         info, registers also at the lowest numbered registers side.  Use
28544         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
28545         XEXP.
28546
28547         PR debug/59992
28548         * var-tracking.c (adjust_mems): Before adding a SET to
28549         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
28550
28551 2014-02-06  Alan Modra  <amodra@gmail.com>
28552
28553         PR target/60032
28554         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
28555         change SDmode to DDmode when lra_in_progress.
28556
28557 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
28558
28559         PR middle-end/59150
28560         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
28561         free_data_ref on the dr first, and before goto again also set dr
28562         to the next dr.  For simd_lane_access, free old datarefs[i] before
28563         overwriting it.  For get_vectype_for_scalar_type failure, don't
28564         free_data_ref if simd_lane_access.
28565
28566         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
28567
28568         PR target/60062
28569         * tree.h (opts_for_fn): New inline function.
28570         (opt_for_fn): Define.
28571         * config/i386/i386.c (ix86_function_regparm): Use
28572         opt_for_fn (decl, optimize) instead of optimize.
28573
28574 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
28575
28576         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
28577         for SYMBOL_REF in large memory model.
28578
28579 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28580
28581         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
28582         and crypto support.
28583         (cortex-a57): Likewise.
28584         (cortex-a57.cortex-a53): Likewise.
28585
28586 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
28587             Kugan Vivekanandarajah  <kuganv@linaro.org>
28588
28589         * config/arm/arm.c (arm_vector_alignment_reachable): Check
28590         unaligned_access.
28591         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
28592
28593 2014-02-06  Richard Biener  <rguenther@suse.de>
28594
28595         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
28596         set_loop_copy and initialize_original_copy_tables.
28597
28598 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
28599
28600         * config/aarch64/aarch64-simd.md
28601         (aarch64_ashr_simddi): Change QI to SI.
28602
28603 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
28604             Jakub Jelinek  <jakub@redhat.com>
28605
28606         PR middle-end/60013
28607         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
28608         of the dataflow.
28609
28610 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28611
28612         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
28613         CODE_FOR_altivec_vpku[hw]um to
28614         CODE_FOR_altivec_vpku[hw]um_direct.
28615         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
28616         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
28617         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
28618         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
28619
28620 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28621
28622         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
28623         generation for -maltivec=be.
28624         (altivec_vsumsws): Simplify redundant test.
28625
28626 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28627
28628         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
28629         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
28630         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
28631         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
28632         gen_altivec_vpkuwum.
28633         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
28634         BYTES_BIG_ENDIAN.
28635         (altivec_vpks<VI_char>ss): Likewise.
28636         (altivec_vpks<VI_char>us): Likewise.
28637         (altivec_vpku<VI_char>us): Likewise.
28638         (altivec_vpku<VI_char>um): Likewise.
28639         (altivec_vpku<VI_char>um_direct): New (copy of
28640         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
28641         internal use).
28642         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
28643         target is little endian and -maltivec=be is not specified.
28644         (*altivec_vupkhs<VU_char>_direct): New (copy of
28645         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
28646         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
28647         target is little endian and -maltivec=be is not specified.
28648         (*altivec_vupkls<VU_char>_direct): New (copy of
28649         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
28650         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
28651         little endian and -maltivec=be is not specified.
28652         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
28653         little endian and -maltivec=be is not specified.
28654
28655 2014-02-05  Richard Henderson  <rth@redhat.com>
28656
28657         PR debug/52727
28658         * combine-stack-adj.c: Revert r206943.
28659         * sched-int.h (struct deps_desc): Add last_args_size.
28660         * sched-deps.c (init_deps): Initialize it.
28661         (sched_analyze_insn): Add OUTPUT dependencies between insns that
28662         contain REG_ARGS_SIZE notes.
28663
28664 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
28665
28666         * lto-cgraph.c (asm_nodes_output): Make global.
28667         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
28668         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
28669         (driver_handle_option): Handle OPT_fwpa.
28670
28671 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
28672
28673         PR ipa/59947
28674         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
28675         a comment typo and formatting issue.  If odr_hash hasn't been
28676         created, return vNULL and set *completep to false.
28677
28678         PR middle-end/57499
28679         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
28680         bb with no successors.
28681
28682 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
28683
28684         PR target/59718
28685         * doc/invoke.texi (-march): Clarify documentation for ARM.
28686         (-mtune): Likewise.
28687         (-mcpu): Likewise.
28688
28689 2014-02-05  Richard Biener  <rguenther@suse.de>
28690
28691         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
28692         when not vectorizing because of too many alias checks.
28693         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
28694         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
28695
28696 2014-02-05  Nick Clifton  <nickc@redhat.com>
28697
28698         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
28699         accept extended registers in any mode when compiling for the MN10300.
28700
28701 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
28702
28703         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
28704         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
28705         sanitization attributes.
28706         (can_inline_edge_p): Likewise.
28707         (sanitize_attrs_match_for_inline_p): New function.
28708
28709 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
28710
28711         * ipa-prop.c (detect_type_change): Shor circuit testing of
28712         type changes on THIS pointer.
28713
28714 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
28715
28716         PR target/59777
28717         * config/pa/pa.c (legitimize_tls_address): Return original address
28718         if not passed a SYMBOL_REF rtx.
28719         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
28720         addresses.
28721         (pa_emit_move_sequence): Simplify TLS source operands.
28722         (pa_legitimate_constant_p): Reject all TLS constants.
28723         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
28724         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
28725
28726 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
28727
28728         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
28729         groups when we know they are controlled by LTO.
28730         * varasm.c (default_binds_local_p_1): If object is in other partition,
28731         it will be resolved locally.
28732
28733 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28734
28735         * config/host-linux.c (linux_gt_pch_use_address): Don't
28736         use SSIZE_MAX because it is not always defined.
28737
28738 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
28739
28740         PR bootstrap/59913
28741         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
28742         threshold for pseudo splitting.
28743         (update_ebb_live_info): Process call argument hard registers and
28744         hard registers from insn definition too.
28745         (max_small_class_regs_num): New constant.
28746         (inherit_in_ebb): Update live hard regs through EBBs.  Update
28747         reloads_num only for small register classes.  Don't split for
28748         outputs of jumps.
28749
28750 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
28751
28752         PR ipa/60058
28753         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
28754         is non-null.
28755
28756 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
28757
28758         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
28759         visibility is safe.
28760
28761 2014-02-04  Marek Polacek  <polacek@redhat.com>
28762
28763         * gdbinit.in (pel): Define.
28764
28765 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28766
28767         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
28768         behavior.
28769
28770 2014-02-04  Richard Biener  <rguenther@suse.de>
28771
28772         PR lto/59723
28773         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
28774         in function context local.
28775         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
28776         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
28777         similar to LTO_imported_decl_ref.
28778
28779 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
28780
28781         PR tree-optimization/60002
28782         * cgraphclones.c (build_function_decl_skip_args): Clear
28783         DECL_LANG_SPECIFIC.
28784
28785         PR tree-optimization/60023
28786         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
28787         false to gsi_replace.
28788         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
28789         has been in some EH region and vec_stmt could throw, add
28790         vec_stmt into the same EH region.
28791         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
28792         has no lhs, ignore it.
28793         * internal-fn.c (expand_MASK_LOAD): Likewise.
28794
28795         PR ipa/60026
28796         * tree-inline.c (copy_forbidden): Fail for
28797         __attribute__((optimize (0))) functions.
28798
28799         PR other/58712
28800         * omp-low.c (simd_clone_struct_copy): If from->inbranch
28801         is set, copy one less argument.
28802         (expand_simd_clones): Don't subtract clone_info->inbranch
28803         from simd_clone_struct_alloc argument.
28804
28805         PR rtl-optimization/57915
28806         * recog.c (simplify_while_replacing): If all unary/binary/relational
28807         operation arguments are constant, attempt to simplify those.
28808
28809         PR middle-end/59261
28810         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
28811         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
28812
28813 2014-02-04  Richard Biener  <rguenther@suse.de>
28814
28815         PR tree-optimization/60012
28816         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
28817         TBAA disambiguation to all DDRs.
28818
28819 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28820
28821         PR target/59788
28822         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
28823         (LINK_SPEC): Use it for -shared, -shared-libgcc.
28824
28825 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28826
28827         PR ipa/59882
28828         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
28829
28830 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28831
28832         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
28833         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
28834
28835 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28836
28837         PR ipa/59831
28838         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
28839         to figure out targets of polymorphic calls with known decl.
28840         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28841         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
28842         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
28843         (get_polymorphic_call_info): ... here.
28844         (get_polymorphic_call_info_from_invariant): New function.
28845
28846 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28847
28848         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
28849         lookup via vtable pointer; check for type consistency
28850         and turn inconsitent facts into UNREACHABLE.
28851         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28852         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
28853         type inconsistent querries; return UNREACHABLE instead.
28854
28855 2014-02-03  Richard Henderson  <rth@twiddle.net>
28856
28857         PR tree-opt/59924
28858         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
28859         already processed this node.
28860         (normalize_one_pred_1): Pass along mark_set.
28861         (normalize_one_pred): Create and destroy a pointer_set_t.
28862         (normalize_one_pred_chain): Likewise.
28863
28864 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
28865
28866         PR gcov-profile/58602
28867         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
28868
28869 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28870
28871         PR ipa/59831
28872         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
28873         -fno-devirtualize; try to devirtualize by the knowledge of
28874         virtual table pointer given by aggregate propagation.
28875         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28876         (ipa_print_node_jump_functions): Dump also offset that
28877         is relevant for polymorphic calls.
28878         (determine_known_aggregate_parts): Add arg_type parameter; use it
28879         instead of determining the type from pointer type.
28880         (ipa_compute_jump_functions_for_edge): Update call of
28881         determine_known_aggregate_parts.
28882         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
28883         (gimple_get_virt_method_for_binfo): ... here; simplify using
28884         vtable_pointer_value_to_vtable.
28885         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
28886         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
28887         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
28888         (vtable_pointer_value_to_vtable): Break out from ...; handle also
28889         POINTER_PLUS_EXPR.
28890         (vtable_pointer_value_to_binfo): ... here.
28891         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
28892
28893 2014-02-03  Teresa Johnson  <tejohnson@google.com>
28894
28895         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
28896         redef of outer loop index variable.
28897
28898 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
28899
28900         PR c++/53017
28901         PR c++/59211
28902         * doc/extend.texi (Function Attributes): Typo.
28903
28904 2014-02-03  Cong Hou  <congh@google.com>
28905
28906         PR tree-optimization/60000
28907         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
28908         if the vectorized statement is a store.  A store statement can only
28909         appear at the end of pattern statements.
28910
28911 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
28912
28913         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
28914         (ix86_option_override_internal): Default long double to 64-bit for
28915         32-bit Bionic and to 128-bit for 64-bit Bionic.
28916
28917         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
28918         TARGET_LONG_DOUBLE_128 is true.
28919         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
28920
28921         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
28922         (mlong-double-64): Negate -mlong-double-128.
28923         (mlong-double-128): New option.
28924
28925         * config/i386/i386-c.c (ix86_target_macros): Define
28926         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
28927
28928         * doc/invoke.texi: Document -mlong-double-128.
28929
28930 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
28931
28932         PR rtl-optimization/60024
28933         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
28934
28935 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
28936
28937         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
28938
28939 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
28940
28941         PR rtl-optimization/57662
28942         * sel-sched.c (code_motion_path_driver): Do not mark already not
28943         existing blocks in the visiting bitmap.
28944
28945 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
28946
28947         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
28948         on the insn being emitted.
28949
28950 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
28951             Will Deacon  <will.deacon@arm.com>
28952
28953         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
28954
28955 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28956
28957         * config/arm/arm-tables.opt: Regenerate.
28958
28959 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28960
28961         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
28962         for vector types other than V16QImode.
28963         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
28964         define_expand, and call altivec_expand_vec_perm_le when producing
28965         code with little endian element order.
28966         (*altivec_vperm_<mode>_internal): New insn having previous
28967         behavior of altivec_vperm_<mode>.
28968         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
28969         altivec_expand_vec_perm_le when producing code with little endian
28970         element order.
28971         (*altivec_vperm_<mode>_uns_internal): New insn having previous
28972         behavior of altivec_vperm_<mode>_uns.
28973
28974 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28975
28976         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
28977         (altivec_vsumsws): Add handling for -maltivec=be with a little
28978         endian target.
28979         (altivec_vsumsws_direct): New.
28980         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
28981         gen_altivec_vsumsws.
28982
28983 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
28984
28985         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
28986         vtable_pointer_value_to_binfo): New functions.
28987         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
28988         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
28989
28990 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
28991
28992         * config/nios2/nios2.md (load_got_register): Initialize GOT
28993         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
28994         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
28995
28996 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
28997
28998         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
28999         preserverd by passthrough, do not propagate the type.
29000
29001 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
29002
29003         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
29004         (mips_atomic_assign_expand_fenv): New function.
29005         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
29006
29007 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
29008
29009         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
29010         (__builtin_mips_set_fcsr): Likewise.
29011         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
29012         MIPS_USI_FTYPE_VOID.
29013         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
29014         (mips16_expand_set_fcsr): Likewise.
29015         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
29016         (mips16_set_fcsr_stub): Likewise.
29017         (mips16_get_fcsr_one_only_stub): New class.
29018         (mips16_set_fcsr_one_only_stub): Likewise.
29019         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
29020         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
29021         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
29022         (hard_float): New availability predicate.
29023         (mips_builtins): Add get_fcsr and set_fcsr.
29024         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
29025         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
29026         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
29027         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
29028         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
29029         patterns.
29030
29031 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
29032
29033         * config/mips/mips.c (mips_one_only_stub): New class.
29034         (mips_need_mips16_rdhwr_p): Replace with...
29035         (mips16_rdhwr_stub): ...this new variable.
29036         (mips16_stub_call_address): New function.
29037         (mips16_rdhwr_one_only_stub): New class.
29038         (mips_expand_thread_pointer): Use mips16_stub_call_address.
29039         (mips_output_mips16_rdhwr): Delete.
29040         (mips_finish_stub): New function.
29041         (mips_code_end): Use it to handle rdhwr stubs.
29042
29043 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
29044
29045         PR target/60017
29046         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
29047         when calculating size of integer atomic types.
29048
29049 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
29050
29051         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
29052
29053 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
29054
29055         PR tree-optimization/60003
29056         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
29057         * profile.c (branch_prob): Use gimple_call_builtin_p
29058         to check for BUILT_IN_SETJMP_RECEIVER.
29059         * tree-inline.c (copy_bb): Call notice_special_calls.
29060
29061 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
29062
29063         PR bootstrap/59985
29064         * lra-constraints.c (process_alt_operands): Update reload_sum only
29065         on the first pass.
29066
29067 2014-01-31  Richard Henderson  <rth@redhat.com>
29068
29069         PR middle-end/60004
29070         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
29071         until after else_eh is processed.
29072
29073 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
29074
29075         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
29076         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
29077         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
29078         in smmintrin.h, remove them.
29079         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
29080         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
29081         * config/i386/i386.md (ROUND_SAE): Fix value.
29082         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
29083         (const48_operand): New.
29084         * config/i386/subst.md (round), (round_expand): Use
29085         const_4_or_8_to_11_operand.
29086         (round_saeonly), (round_saeonly_expand): Use const48_operand.
29087
29088 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
29089
29090         * config/i386/constraints.md (Yk): Swap meaning with k.
29091         * config/i386/i386.md (movhi_internal): Change Yk to k.
29092         (movqi_internal): Ditto.
29093         (*k<logic><mode>): Ditto.
29094         (*andhi_1): Ditto.
29095         (*andqi_1): Ditto.
29096         (kandn<mode>): Ditto.
29097         (*<code>hi_1): Ditto.
29098         (*<code>qi_1): Ditto.
29099         (kxnor<mode>): Ditto.
29100         (kortestzhi): Ditto.
29101         (kortestchi): Ditto.
29102         (kunpckhi): Ditto.
29103         (*one_cmplhi2_1): Ditto.
29104         (*one_cmplqi2_1): Ditto.
29105         * config/i386/sse.md (): Change k to Yk.
29106         (avx512f_load<mode>_mask): Ditto.
29107         (avx512f_blendm<mode>): Ditto.
29108         (avx512f_store<mode>_mask): Ditto.
29109         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
29110         (avx512f_storedqu<mode>_mask): Ditto.
29111         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
29112         Ditto.
29113         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
29114         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
29115         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
29116         (avx512f_maskcmp<mode>3): Ditto.
29117         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
29118         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
29119         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
29120         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
29121         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
29122         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
29123         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
29124         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
29125         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
29126         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
29127         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
29128         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
29129         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
29130         (vec_extract_lo_<mode>_maskm): Ditto.
29131         (vec_extract_hi_<mode>_maskm): Ditto.
29132         (avx512f_vternlog<mode>_mask): Ditto.
29133         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
29134         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
29135         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
29136         (avx512f_<code>v8div16qi2_mask): Ditto.
29137         (avx512f_<code>v8div16qi2_mask_store): Ditto.
29138         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
29139         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
29140         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
29141         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
29142         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
29143         (*avx512pf_gatherpf<mode>df_mask): Ditto.
29144         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
29145         (*avx512pf_scatterpf<mode>df_mask): Ditto.
29146         (avx512cd_maskb_vec_dupv8di): Ditto.
29147         (avx512cd_maskw_vec_dupv16si): Ditto.
29148         (avx512f_vpermi2var<mode>3_maskz): Ditto.
29149         (avx512f_vpermi2var<mode>3_mask): Ditto.
29150         (avx512f_vpermi2var<mode>3_mask): Ditto.
29151         (avx512f_vpermt2var<mode>3_maskz): Ditto.
29152         (*avx512f_gathersi<mode>): Ditto.
29153         (*avx512f_gathersi<mode>_2): Ditto.
29154         (*avx512f_gatherdi<mode>): Ditto.
29155         (*avx512f_gatherdi<mode>_2): Ditto.
29156         (*avx512f_scattersi<mode>): Ditto.
29157         (*avx512f_scatterdi<mode>): Ditto.
29158         (avx512f_compress<mode>_mask): Ditto.
29159         (avx512f_compressstore<mode>_mask): Ditto.
29160         (avx512f_expand<mode>_mask): Ditto.
29161         * config/i386/subst.md (mask): Change k to Yk.
29162         (mask_scalar_merge): Ditto.
29163         (sd): Ditto.
29164
29165 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
29166
29167         * doc/extend.texi (Vector Extensions): Document ?: in C++.
29168
29169 2014-01-31  Richard Biener  <rguenther@suse.de>
29170
29171         PR middle-end/59990
29172         * builtins.c (fold_builtin_memory_op): Make sure to not
29173         use a floating-point mode or a boolean or enumeral type for
29174         the copy operation.
29175
29176 2014-01-30  DJ Delorie  <dj@redhat.com>
29177
29178         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
29179         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
29180         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
29181         whenever main() has an epilogue.
29182
29183 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29184
29185         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
29186         unused variable "field".
29187         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
29188         (vsx_mergeh_<mode>): Likewise.
29189         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
29190         (altivec_vmrghh): Likewise.
29191         (altivec_vmrghw): Likewise.
29192         (altivec_vmrglb): Likewise.
29193         (altivec_vmrglh): Likewise.
29194         (altivec_vmrglw): Likewise.
29195         (altivec_vspltb): Add missing uses.
29196         (altivec_vsplth): Likewise.
29197         (altivec_vspltw): Likewise.
29198         (altivec_vspltsf): Likewise.
29199
29200 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
29201
29202         PR target/59923
29203         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
29204         frame related instructions.
29205
29206 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
29207
29208         PR rtl-optimization/59959
29209         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
29210         any reload of register whose subreg is invalid.
29211
29212 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
29213
29214         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
29215         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
29216         Add missing return type - void.
29217
29218 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29219
29220         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
29221         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
29222         remove element index adjustment for endian (now handled in vsx.md
29223         and altivec.md).
29224         (altivec_expand_vec_perm_const): Use
29225         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
29226         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
29227         (vsx_xxspltw_<mode>): Adjust element index for little endian.
29228         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
29229         define_expand and a new define_insn *altivec_vspltb_internal;
29230         adjust for -maltivec=be on a little endian target.
29231         (altivec_vspltb_direct): New.
29232         (altivec_vsplth): Divide into a define_expand and a new
29233         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
29234         little endian target.
29235         (altivec_vsplth_direct): New.
29236         (altivec_vspltw): Divide into a define_expand and a new
29237         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
29238         little endian target.
29239         (altivec_vspltw_direct): New.
29240         (altivec_vspltsf): Divide into a define_expand and a new
29241         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
29242         a little endian target.
29243
29244 2014-01-30  Richard Biener  <rguenther@suse.de>
29245
29246         PR tree-optimization/59993
29247         * tree-ssa-forwprop.c (associate_pointerplus): Check we
29248         can propagate form the earlier stmt and avoid the transform
29249         when the intermediate result is needed.
29250
29251 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
29252
29253         * README.Portability: Fix typo.
29254
29255 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
29256
29257         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
29258         comparison_operator with ordered_comparison_operator.
29259
29260 2014-01-30  Nick Clifton  <nickc@redhat.com>
29261
29262         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
29263         Rename to mn10300_store_multiple_regs.
29264         * config/mn10300/mn10300.c: Likewise.
29265         * config/mn10300/mn10300.md (store_movm): Fix typo: call
29266         store_multiple_regs.
29267         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
29268         Call mn10300_store_multiple_regs.
29269
29270 2014-01-30  Nick Clifton  <nickc@redhat.com>
29271             DJ Delorie  <dj@redhat.com>
29272
29273         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
29274         %fp 2 to keep registers after it properly word-aligned.
29275         (rl78_alloc_physical_registers_umul): Handle the case where both
29276         input operands are the same.
29277
29278 2014-01-30  Richard Biener  <rguenther@suse.de>
29279
29280         PR tree-optimization/59903
29281         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
29282         check properly.
29283
29284 2014-01-30  Jason Merrill  <jason@redhat.com>
29285
29286         PR c++/59633
29287         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
29288
29289         PR c++/59645
29290         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
29291
29292 2014-01-30  Richard Biener  <rguenther@suse.de>
29293
29294         PR tree-optimization/59951
29295         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
29296
29297 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
29298
29299         PR target/59784
29300         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
29301         SFmode to DFmode case.
29302
29303 2014-01-29  DJ Delorie  <dj@redhat.com>
29304
29305         * config/msp430/msp430.opt (-minrt): New.
29306         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
29307         if -minrt given.
29308         (ENDFILE_SPEC): Likewise.
29309
29310 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
29311
29312         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
29313         (estimate_function_body_sizes): Use it.
29314
29315 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
29316
29317         PR c++/58561
29318         * dwarf2out.c (is_cxx_auto): New.
29319         (is_base_type): Use it.
29320         (gen_type_die_with_usage): Likewise.
29321
29322 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29323
29324         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
29325         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
29326         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
29327         -maltivec=be with LE targets.
29328         (vsx_mergeh_<mode>): Likewise.
29329         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
29330         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
29331         (altivec_vmrghb): Replace with define_expand and new
29332         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
29333         (altivec_vmrghb_direct): New define_insn.
29334         (altivec_vmrghh): Replace with define_expand and new
29335         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
29336         (altivec_vmrghh_direct): New define_insn.
29337         (altivec_vmrghw): Replace with define_expand and new
29338         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
29339         (altivec_vmrghw_direct): New define_insn.
29340         (*altivec_vmrghsf): Adjust for endianness.
29341         (altivec_vmrglb): Replace with define_expand and new
29342         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
29343         (altivec_vmrglb_direct): New define_insn.
29344         (altivec_vmrglh): Replace with define_expand and new
29345         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
29346         (altivec_vmrglh_direct): New define_insn.
29347         (altivec_vmrglw): Replace with define_expand and new
29348         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
29349         (altivec_vmrglw_direct): New define_insn.
29350         (*altivec_vmrglsf): Adjust for endianness.
29351         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
29352         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
29353         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
29354         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
29355         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
29356         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
29357         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
29358         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
29359
29360 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
29361
29362         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
29363         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
29364         whitespace.
29365
29366 2014-01-29  Richard Biener  <rguenther@suse.de>
29367
29368         PR tree-optimization/58742
29369         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
29370         associate_pointerplus_align.
29371         (associate_pointerplus_diff): New function.
29372         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
29373         and associate_pointerplus_diff.
29374
29375 2014-01-29  Richard Biener  <rguenther@suse.de>
29376
29377         * lto-streamer.h (LTO_major_version): Bump to 3.
29378         (LTO_minor_version): Reset to 0.
29379
29380 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
29381
29382         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
29383         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
29384         (arm_file_start): Generate correct asm header for armv7ve.
29385         * config/arm/bpabi.h: Add multilib support for armv7ve.
29386         * config/arm/driver-arm.c: Change the architectures of cortex-a7
29387         and cortex-a15 to armv7ve.
29388         * config/arm/t-aprofile: Add multilib support for armv7ve.
29389         * doc/invoke.texi: Document -march=armv7ve.
29390
29391 2014-01-29  Richard Biener  <rguenther@suse.de>
29392
29393         PR tree-optimization/58742
29394         * tree-ssa-forwprop.c (associate_plusminus): Return true
29395         if we changed sth, defer EH cleanup to ...
29396         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
29397         (simplify_mult): New function.
29398
29399 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
29400
29401         PR middle-end/59917
29402         PR tree-optimization/59920
29403         * tree.c (build_common_builtin_nodes): Remove
29404         __builtin_setjmp_dispatcher initialization.
29405         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
29406         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
29407         instead of gsi_after_labels + manually skipping debug stmts.
29408         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
29409         ignore bbs with IFN_ABNORMAL_DISPATCHER.
29410         * tree-inline.c (copy_edges_for_bb): Remove
29411         can_make_abnormal_goto argument, instead add abnormal_goto_dest
29412         argument.  Ignore computed_goto_p stmts.  Don't call
29413         make_abnormal_goto_edges.  If a call might need abnormal edges
29414         for non-local gotos, see if it already has an edge to
29415         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
29416         with true argument, don't do anything then, otherwise add
29417         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
29418         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
29419         caller.
29420         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
29421         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
29422         (lower_stmt): Don't set data->calls_builtin_setjmp.
29423         (lower_builtin_setjmp): Adjust comment.
29424         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
29425         * tree-cfg.c (found_computed_goto): Remove.
29426         (factor_computed_gotos): Remove.
29427         (make_goto_expr_edges): Return bool, true for computed gotos.
29428         Don't call make_abnormal_goto_edges.
29429         (build_gimple_cfg): Don't set found_computed_goto, don't call
29430         factor_computed_gotos.
29431         (computed_goto_p): No longer static.
29432         (make_blocks): Don't set found_computed_goto.
29433         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
29434         (make_edges): If make_goto_expr_edges returns true, push bb
29435         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
29436         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
29437         vector.  Record mapping between bbs and OpenMP regions if there
29438         are any, adjust make_gimple_omp_edges caller.  Call
29439         handle_abnormal_edges.
29440         (make_abnormal_goto_edges): Remove.
29441         * tree-cfg.h (make_abnormal_goto_edges): Remove.
29442         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
29443         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
29444         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
29445         * internal-fn.def (ABNORMAL_DISPATCHER): New.
29446         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
29447         filling *region also set *region_idx to (*region)->entry->index.
29448
29449         PR other/58712
29450         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
29451         For REGs set ORIGINAL_REGNO.
29452
29453 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
29454
29455         * doc/md.texi: Mention that a target shouldn't implement
29456         vec_widen_(s|u)mul_even/odd pair if it is less efficient
29457         than hi/lo pair.
29458
29459 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
29460
29461         PR tree-optimization/59594
29462         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
29463         a copy of the datarefs vector rather than the vector itself.
29464
29465 2014-01-28  Jason Merrill  <jason@redhat.com>
29466
29467         PR c++/53756
29468         * dwarf2out.c (auto_die): New static.
29469         (gen_type_die_with_usage): Handle C++1y 'auto'.
29470         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
29471         on definition.
29472
29473 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
29474
29475         PR target/59672
29476         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
29477         (SPEC_X32): Likewise.
29478         (SPEC_64): Likewise.
29479         * config/i386/i386.c (ix86_option_override_internal): Turn off
29480         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
29481         for TARGET_16BIT.
29482         (x86_file_start): Output .code16gcc for TARGET_16BIT.
29483         * config/i386/i386.h (TARGET_16BIT): New macro.
29484         (TARGET_16BIT_P): Likewise.
29485         * config/i386/i386.opt: Add m16.
29486         * doc/invoke.texi: Document -m16.
29487
29488 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
29489
29490         PR preprocessor/59935
29491         * input.c (location_get_source_line): Bail out on when line number
29492         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
29493
29494 2014-01-28  Richard Biener  <rguenther@suse.de>
29495
29496         PR tree-optimization/58742
29497         * tree-ssa-forwprop.c (associate_plusminus): Handle
29498         pointer subtraction of the form (T)(P + A) - (T)P.
29499
29500 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29501
29502         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
29503         at const_int_cost.
29504
29505 2014-01-28  Richard Biener  <rguenther@suse.de>
29506
29507         Revert
29508         2014-01-28  Richard Biener  <rguenther@suse.de>
29509
29510         PR rtl-optimization/45364
29511         PR rtl-optimization/59890
29512         * var-tracking.c (local_get_addr_clear_given_value): Handle
29513         already cleared slot.
29514         (val_reset): Handle not allocated local_get_addr_cache.
29515         (vt_find_locations): Use post-order on the inverted CFG.
29516
29517 2014-01-28  Richard Biener  <rguenther@suse.de>
29518
29519         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
29520
29521 2014-01-28  Richard Biener  <rguenther@suse.de>
29522
29523         PR rtl-optimization/45364
29524         PR rtl-optimization/59890
29525         * var-tracking.c (local_get_addr_clear_given_value): Handle
29526         already cleared slot.
29527         (val_reset): Handle not allocated local_get_addr_cache.
29528         (vt_find_locations): Use post-order on the inverted CFG.
29529
29530 2014-01-28  Alan Modra  <amodra@gmail.com>
29531
29532         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
29533         * configure.ac <recursive call for build != host>: Define
29534         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
29535         and LD_FOR_BUILD too.
29536         * configure: Regenerate.
29537
29538 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
29539
29540         * config/i386/i386.c (get_builtin_code_for_version): Separate
29541         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
29542         Broadwell from Haswell.
29543
29544 2014-01-27  Steve Ellcey  <sellcey@mips.com>
29545
29546         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
29547         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
29548         * config/mips/mips.c (mips_option_override): Change setting
29549         of TARGET_DSP.
29550         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
29551         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
29552         Change from Mask to Var.
29553
29554 2014-01-27  Jeff Law  <law@redhat.com>
29555
29556         * ipa-inline.c (inline_small_functions): Fix typo.
29557
29558 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
29559
29560         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
29561         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
29562         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
29563         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
29564         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
29565         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
29566         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
29567         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
29568         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
29569         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
29570         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
29571         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
29572         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
29573         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
29574         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
29575         (_mm512_storeu_epi64): Ditto.
29576         (_mm512_cmpge_epi32_mask): Ditto.
29577         (_mm512_cmpge_epu32_mask): Ditto.
29578         (_mm512_cmpge_epi64_mask): Ditto.
29579         (_mm512_cmpge_epu64_mask): Ditto.
29580         (_mm512_cmple_epi32_mask): Ditto.
29581         (_mm512_cmple_epu32_mask): Ditto.
29582         (_mm512_cmple_epi64_mask): Ditto.
29583         (_mm512_cmple_epu64_mask): Ditto.
29584         (_mm512_cmplt_epi32_mask): Ditto.
29585         (_mm512_cmplt_epu32_mask): Ditto.
29586         (_mm512_cmplt_epi64_mask): Ditto.
29587         (_mm512_cmplt_epu64_mask): Ditto.
29588         (_mm512_cmpneq_epi32_mask): Ditto.
29589         (_mm512_cmpneq_epu32_mask): Ditto.
29590         (_mm512_cmpneq_epi64_mask): Ditto.
29591         (_mm512_cmpneq_epu64_mask): Ditto.
29592         (_mm512_expand_pd): Ditto.
29593         (_mm512_expand_ps): Ditto.
29594         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
29595         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
29596         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
29597         * config/i386/i386.c (ix86_builtins): Add
29598         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
29599         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
29600         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
29601         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
29602         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
29603         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
29604         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
29605         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
29606         IX86_BUILTIN_PMOVUSQW512_MEM.
29607         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
29608         __builtin_ia32_pmovsqd512mem_mask,
29609         __builtin_ia32_pmovqd512mem_mask,
29610         __builtin_ia32_pmovusqw512mem_mask,
29611         __builtin_ia32_pmovsqw512mem_mask,
29612         __builtin_ia32_pmovqw512mem_mask,
29613         __builtin_ia32_pmovusdw512mem_mask,
29614         __builtin_ia32_pmovsdw512mem_mask,
29615         __builtin_ia32_pmovdw512mem_mask,
29616         __builtin_ia32_pmovqb512mem_mask,
29617         __builtin_ia32_pmovusqb512mem_mask,
29618         __builtin_ia32_pmovsqb512mem_mask,
29619         __builtin_ia32_pmovusdb512mem_mask,
29620         __builtin_ia32_pmovsdb512mem_mask,
29621         __builtin_ia32_pmovdb512mem_mask.
29622         (bdesc_args): Add __builtin_ia32_expanddf512,
29623         __builtin_ia32_expandsf512.
29624         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
29625         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
29626         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
29627         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
29628         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
29629         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
29630         (avx512f_<code>v8div16qi2_mask_store): This.
29631         (avx512f_expand<mode>): New.
29632
29633 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
29634
29635         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
29636         New.
29637         (_mm512_mask_prefetch_i64gather_pd): Ditto.
29638         (_mm512_prefetch_i32scatter_pd): Ditto.
29639         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
29640         (_mm512_prefetch_i64scatter_pd): Ditto.
29641         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
29642         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
29643         (_mm512_mask_prefetch_i64gather_ps): Ditto.
29644         (_mm512_prefetch_i32scatter_ps): Ditto.
29645         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
29646         (_mm512_prefetch_i64scatter_ps): Ditto.
29647         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
29648         * config/i386/i386-builtin-types.def: Define
29649         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
29650         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
29651         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
29652         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
29653         IX86_BUILTIN_SCATTERPFQPD.
29654         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
29655         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
29656         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
29657         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
29658         __builtin_ia32_scatterpfqps.
29659         (ix86_expand_builtin): Expand new built-ins.
29660         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
29661         fix memory access data type.
29662         (*avx512pf_gatherpf<mode>_mask): Ditto.
29663         (*avx512pf_gatherpf<mode>): Ditto.
29664         (avx512pf_scatterpf<mode>): Ditto.
29665         (*avx512pf_scatterpf<mode>_mask): Ditto.
29666         (*avx512pf_scatterpf<mode>): Ditto.
29667         (GATHER_SCATTER_SF_MEM_MODE): New.
29668         (avx512pf_gatherpf<mode>df): Ditto.
29669         (*avx512pf_gatherpf<mode>df_mask): Ditto.
29670         (*avx512pf_scatterpf<mode>df): Ditto.
29671
29672 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
29673
29674         PR bootstrap/59934
29675         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
29676         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
29677         reached.
29678
29679 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
29680
29681         * common/config/arm/arm-common.c
29682         (arm_rewrite_mcpu): Handle multiple names.
29683         * config/arm/arm.h
29684         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
29685
29686 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
29687
29688         * gimple-builder.h (create_gimple_tmp): Delete.
29689
29690 2014-01-27  Christian Bruel  <christian.bruel@st.com>
29691
29692         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
29693         words comparisons.
29694
29695 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
29696
29697         * config/pa/pa.md (call): Generate indirect long calls to non-local
29698         functions when outputing 32-bit code.
29699         (call_value): Likewise except for special call to buggy powf function.
29700
29701         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
29702         portable runtime and PIC indirect calls.
29703         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
29704         and PIC call sequences.  Use ldo instead of blr to set return register
29705         in PIC call sequence.
29706
29707 2014-01-25  Walter Lee  <walt@tilera.com>
29708
29709         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
29710         avoid clobbering a live register.
29711
29712 2014-01-25  Walter Lee  <walt@tilera.com>
29713
29714         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
29715         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
29716         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
29717         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
29718
29719 2014-01-25  Walter Lee  <walt@tilera.com>
29720
29721         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
29722         arguments on even registers.
29723         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
29724         STACK_BOUNDARY.
29725         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
29726         (BIGGEST_ALIGNMENT): Ditto.
29727         (BIGGEST_FIELD_ALIGNMENT): Ditto.
29728
29729 2014-01-25  Walter Lee  <walt@tilera.com>
29730
29731         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
29732         insns before bundling.
29733         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
29734
29735 2014-01-25  Walter Lee  <walt@tilera.com>
29736
29737         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
29738         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
29739         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
29740
29741 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
29742
29743         * config/mips/constraints.md (kl): Delete.
29744         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
29745         define expands, using...
29746         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
29747         instructions for MIPS16.
29748         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
29749         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
29750
29751 2014-01-25  Walter Lee  <walt@tilera.com>
29752
29753         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
29754         (clzdi2): Ditto.
29755         (ffsdi2): Ditto.
29756
29757 2014-01-25  Walter Lee  <walt@tilera.com>
29758
29759         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
29760         (TARGET_EXPAND_TO_RTL_HOOK): Define.
29761
29762 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
29763
29764         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
29765         Handle XOR.
29766
29767 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
29768
29769         * print-rtl.c (in_call_function_usage): New var.
29770         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
29771         EXPR_LIST mode as mode and not as reg note name.
29772
29773         PR middle-end/59561
29774         * cfgloopmanip.c (copy_loop_info): If
29775         loop->warned_aggressive_loop_optimizations, make sure
29776         the flag is set in target loop too.
29777
29778 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
29779
29780         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
29781         flag_cilkplus.
29782         * builtins.def: Likewise.
29783         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
29784         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
29785         * ira.c (ira_setup_eliminable_regset): Likewise.
29786         * omp-low.c (gate_expand_omp): Likewise.
29787         (execute_lower_omp): Likewise.
29788         (diagnose_sb_0): Likewise.
29789         (gate_diagnose_omp_blocks): Likewise.
29790         (simd_clone_clauses_extract): Likewise.
29791         (gate): Likewise.
29792
29793 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29794
29795         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
29796         correction for little endian...
29797         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
29798         here.
29799
29800 2014-01-24  Jeff Law  <law@redhat.com>
29801
29802         PR tree-optimization/59919
29803         * tree-vrp.c (find_assert_locations_1): Do not register asserts
29804         for non-returning calls.
29805
29806 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
29807
29808         * common/config/aarch64/aarch64-common.c
29809         (aarch64_rewrite_mcpu): Handle multiple names.
29810         * config/aarch64/aarch64.h
29811         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
29812
29813 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
29814
29815         * input.c (add_file_to_cache_tab): Handle the case where fopen
29816         returns NULL.
29817
29818 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
29819
29820         PR target/59929
29821         * config/i386/i386.md (pushsf splitter): Get stack adjustment
29822         from push operand if code of push isn't PRE_DEC.
29823
29824 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
29825
29826         PR target/59909
29827         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
29828         -mquad-memory-atomic.  Update -mquad-memory documentation to say
29829         it is only used for non-atomic loads/stores.
29830
29831         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
29832         -mquad-memory or -mquad-memory-atomic switches.
29833
29834         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
29835         -mquad-memory-atomic to ISA 2.07 support.
29836
29837         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
29838         to separate support of normal quad word memory operations (ldq, stq)
29839         from the atomic quad word memory operations.
29840
29841         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
29842         support to separate non-atomic quad word operations from atomic
29843         quad word operations.  Disable non-atomic quad word operations in
29844         little endian mode so that we don't have to swap words after the
29845         load and before the store.
29846         (quad_load_store_p): Add comment about atomic quad word support.
29847         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
29848         options printed with -mdebug=reg.
29849
29850         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
29851         -mquad-memory-atomic as the test for whether we have quad word
29852         atomic instructions.
29853         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
29854         or -mp8-vector are used, allow byte/half-word atomic operations.
29855
29856         * config/rs6000/sync.md (load_lockedti): Insure that the address
29857         is a proper indexed or indirect address for the lqarx instruction.
29858         On little endian systems, swap the hi/lo registers after the lqarx
29859         instruction.
29860         (load_lockedpti): Use indexed_or_indirect_operand predicate to
29861         insure the address is valid for the lqarx instruction.
29862         (store_conditionalti): Insure that the address is a proper indexed
29863         or indirect address for the stqcrx. instruction.  On little endian
29864         systems, swap the hi/lo registers before doing the stqcrx.
29865         instruction.
29866         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
29867         insure the address is valid for the stqcrx. instruction.
29868
29869         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
29870         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
29871         type of quad memory support is available.
29872
29873 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
29874
29875         PR regression/59915
29876         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
29877         there is a danger of looping.
29878
29879 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
29880
29881         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
29882         force flag_ira_loop_pressure if set via command line.
29883
29884 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
29885
29886         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
29887         (ashr_simd): New builtin handling DI mode.
29888         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
29889         (aarch64_sshr_simddi): New match pattern.
29890         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
29891         (vshrd_n_s64): Likewise.
29892         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
29893
29894 2014-01-23  Nick Clifton  <nickc@redhat.com>
29895
29896         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
29897         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
29898         favour of mcu specific scripts.
29899         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
29900         430x multilibs.
29901
29902 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
29903             Alex Velenko  <Alex.Velenko@arm.com>
29904
29905         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
29906         (vaddv_s16): Likewise.
29907         (vaddv_s32): Likewise.
29908         (vaddv_u8): Likewise.
29909         (vaddv_u16): Likewise.
29910         (vaddv_u32): Likewise.
29911         (vaddvq_s8): Likewise.
29912         (vaddvq_s16): Likewise.
29913         (vaddvq_s32): Likewise.
29914         (vaddvq_s64): Likewise.
29915         (vaddvq_u8): Likewise.
29916         (vaddvq_u16): Likewise.
29917         (vaddvq_u32): Likewise.
29918         (vaddvq_u64): Likewise.
29919         (vaddv_f32): Likewise.
29920         (vaddvq_f32): Likewise.
29921         (vaddvq_f64): Likewise.
29922         (vmaxv_f32): Likewise.
29923         (vmaxv_s8): Likewise.
29924         (vmaxv_s16): Likewise.
29925         (vmaxv_s32): Likewise.
29926         (vmaxv_u8): Likewise.
29927         (vmaxv_u16): Likewise.
29928         (vmaxv_u32): Likewise.
29929         (vmaxvq_f32): Likewise.
29930         (vmaxvq_f64): Likewise.
29931         (vmaxvq_s8): Likewise.
29932         (vmaxvq_s16): Likewise.
29933         (vmaxvq_s32): Likewise.
29934         (vmaxvq_u8): Likewise.
29935         (vmaxvq_u16): Likewise.
29936         (vmaxvq_u32): Likewise.
29937         (vmaxnmv_f32): Likewise.
29938         (vmaxnmvq_f32): Likewise.
29939         (vmaxnmvq_f64): Likewise.
29940         (vminv_f32): Likewise.
29941         (vminv_s8): Likewise.
29942         (vminv_s16): Likewise.
29943         (vminv_s32): Likewise.
29944         (vminv_u8): Likewise.
29945         (vminv_u16): Likewise.
29946         (vminv_u32): Likewise.
29947         (vminvq_f32): Likewise.
29948         (vminvq_f64): Likewise.
29949         (vminvq_s8): Likewise.
29950         (vminvq_s16): Likewise.
29951         (vminvq_s32): Likewise.
29952         (vminvq_u8): Likewise.
29953         (vminvq_u16): Likewise.
29954         (vminvq_u32): Likewise.
29955         (vminnmv_f32): Likewise.
29956         (vminnmvq_f32): Likewise.
29957         (vminnmvq_f64): Likewise.
29958
29959 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
29960
29961         * config/aarch64/aarch64-simd.md
29962         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
29963         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
29964         (*aarch64_mul3_elt<mode>): Likewise.
29965         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
29966         (*aarch64_mul3_elt_to_64v2df): Likewise.
29967         (*aarch64_mla_elt<mode>): Likewise.
29968         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
29969         (*aarch64_mls_elt<mode>): Likewise.
29970         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
29971         (*aarch64_fma4_elt<mode>): Likewise.
29972         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
29973         (*aarch64_fma4_elt_to_64v2df): Likewise.
29974         (*aarch64_fnma4_elt<mode>): Likewise.
29975         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
29976         (*aarch64_fnma4_elt_to_64v2df): Likewise.
29977         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
29978         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
29979         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
29980         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
29981         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
29982         (aarch64_sqdmull_lane<mode>_internal): Likewise.
29983         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
29984
29985 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
29986
29987         * config/aarch64/aarch64-simd.md
29988         (aarch64_be_checked_get_lane<mode>): New define_expand.
29989         * config/aarch64/aarch64-simd-builtins.def
29990         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
29991         New builtin definition.
29992         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
29993         Use new safe be builtin.
29994
29995 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
29996
29997         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
29998         New define_insn.
29999         (aarch64_be_st1<mode>): Likewise.
30000         (aarch_ld1<VALL:mode>): Define_expand modified.
30001         (aarch_st1<VALL:mode>): Likewise.
30002         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
30003         (UNSPEC_ST1): Likewise.
30004
30005 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
30006
30007         * config/microblaze/microblaze.md: Add trap insn and attribute
30008
30009 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
30010
30011         PR preprocessor/58580
30012         * input.h (location_get_source_line): Take an additional line_size
30013         parameter.
30014         (void diagnostics_file_cache_fini): Declare new function.
30015         * input.c (struct fcache): New type.
30016         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
30017         New static constants.
30018         (diagnostic_file_cache_init, total_lines_num)
30019         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
30020         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
30021         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
30022         (get_next_line, read_next_line, goto_next_line, read_line_num):
30023         New static function definitions.
30024         (diagnostic_file_cache_fini): New function.
30025         (location_get_source_line): Take an additional output line_len
30026         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
30027         read_line_num.
30028         * diagnostic.c (diagnostic_finish): Call
30029         diagnostic_file_cache_fini.
30030         (adjust_line): Take an additional input parameter for the length
30031         of the line, rather than calculating it with strlen.
30032         (diagnostic_show_locus): Adjust the use of
30033         location_get_source_line and adjust_line with respect to their new
30034         signature.  While displaying a line now, do not stop at the first
30035         null byte.  Rather, display the zero byte as a space and keep
30036         going until we reach the size of the line.
30037         * Makefile.in: Add vec.o to OBJS-libcommon
30038
30039 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
30040             Ilya Tocar  <ilya.tocar@intel.com>
30041
30042         * config/i386/avx512fintrin.h (_mm512_kmov): New.
30043         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
30044         (__builtin_ia32_kmov16): Ditto.
30045         * config/i386/i386.md (UNSPEC_KMOV): New.
30046         (kmovw): Ditto.
30047
30048 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
30049
30050         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
30051         (_mm512_storeu_si512): Ditto.
30052
30053 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
30054
30055         PR target/52125
30056         * rtl.h (get_referenced_operands): Declare.
30057         * recog.c (get_referenced_operands): New function.
30058         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
30059         operands have been referenced when recording LO_SUM references.
30060
30061 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
30062
30063         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
30064
30065 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
30066
30067         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
30068         Enable for generic and recent AMD targets.
30069
30070 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
30071
30072         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
30073         ARG_SIZE note when adjustment was eliminated.
30074
30075 2014-01-22  Jeff Law  <law@redhat.com>
30076
30077         PR tree-optimization/59597
30078         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
30079         in file.  Accept new argument REGISTERING and use it to modify
30080         dump output appropriately.
30081         (register_jump_thread): Corresponding changes.
30082         (mark_threaded_blocks): Reinstate code to cancel unprofitable
30083         thread paths involving joiner blocks.  Add code to dump cancelled
30084         jump threading paths.
30085
30086 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
30087
30088         PR rtl-optimization/59477
30089         * lra-constraints.c (inherit_in_ebb): Process call for living hard
30090         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
30091
30092 2014-01-22  Tom Tromey  <tromey@redhat.com>
30093
30094         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
30095         PARAMS.
30096         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
30097
30098 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
30099
30100         PR rtl-optimization/59896
30101         * lra-constraints.c (process_alt_operands): Check unused note for
30102         matched operands of insn with no output reloads.
30103
30104 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
30105
30106         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
30107         (mips_move_from_gpr_cost): Likewise.
30108
30109 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
30110
30111         PR rtl-optimization/59858
30112         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
30113         ira_class_hard_regs_num.
30114         (process_alt_operands): Increase reject for dying matched operand.
30115
30116 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
30117
30118         PR target/59003
30119         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
30120         smaller than size, perform several stores or loads and stores
30121         at dst + count - size to store or copy all of size bytes, rather
30122         than just last modesize bytes.
30123
30124 2014-01-20  DJ Delorie  <dj@redhat.com>
30125
30126         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
30127         that CLOBBERs are REGs before propogating their values.
30128
30129 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
30130
30131         PR middle-end/59789
30132         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
30133         (cgraph_inline_failed_type): New function.
30134         * cgraph.h (DEFCIFCODE): Add type.
30135         (cgraph_inline_failed_type_t): New enum.
30136         (cgraph_inline_failed_type): New prototype.
30137         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
30138         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
30139         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
30140         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
30141         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
30142         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
30143         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
30144         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
30145         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
30146         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
30147         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
30148         OPTIMIZATION_MISMATCH.
30149         * tree-inline.c (expand_call_inline): Emit errors during
30150         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
30151
30152 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
30153
30154         PR target/59685
30155         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
30156         mode attribute in insn output.
30157
30158 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
30159
30160         * output.h (output_constant): Delete.
30161         * varasm.c (output_constant): Make private.
30162
30163 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
30164
30165         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
30166
30167 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
30168
30169         PR middle-end/59860
30170         * tree.h (fold_builtin_strcat): New prototype.
30171         * builtins.c (fold_builtin_strcat): No longer static.  Add len
30172         argument, if non-NULL, don't call c_strlen.  Optimize
30173         directly into __builtin_memcpy instead of __builtin_strcpy.
30174         (fold_builtin_2): Adjust fold_builtin_strcat caller.
30175         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
30176
30177 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
30178
30179         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
30180         for SImode_address_operand operands, having only a REG argument.
30181
30182 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
30183
30184         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
30185         loader name using mbig-endian.
30186         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
30187
30188 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
30189
30190         * doc/invoke.texi (-march): Clarify documentation for AArch64.
30191         (-mtune): Likewise.
30192         (-mcpu): Likewise.
30193
30194 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
30195
30196         * config/aarch64/aarch64-protos.h
30197         (aarch64_cannot_change_mode_class_ptr): Declare.
30198         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
30199         aarch64_cannot_change_mode_class_ptr): New.
30200         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
30201         backend hook aarch64_cannot_change_mode_class.
30202
30203 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
30204
30205         * common/config/aarch64/aarch64-common.c
30206         (aarch64_handle_option): Don't handle any option order logic here.
30207         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
30208         selected_cpu, warn on architecture version mismatch.
30209         (aarch64_override_options): Fix parsing order for option strings.
30210
30211 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
30212             Iain Sandoe  <iain@codesourcery.com>
30213
30214         PR bootstrap/59496
30215         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
30216         warning.  Amend comment to reflect current functionality.
30217
30218 2014-01-20  Richard Biener  <rguenther@suse.de>
30219
30220         PR middle-end/59860
30221         * builtins.c (fold_builtin_strcat): Remove case better handled
30222         by tree-ssa-strlen.c.
30223
30224 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
30225
30226         * config/aarch64/aarch64.opt
30227         (mcpu, march, mtune): Make case-insensitive.
30228
30229 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
30230
30231         PR target/59880
30232         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
30233         if operands[1] is a REG or ZERO_EXTEND of a REG.
30234
30235 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
30236
30237         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
30238
30239 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
30240
30241         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
30242         long non-pic millicode calls.
30243
30244 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
30245
30246         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
30247
30248 2014-01-19  Kito Cheng  <kito@0xlab.org>
30249
30250         * builtins.c (expand_movstr): Check movstr expand done or fail.
30251
30252 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
30253             H.J. Lu  <hongjiu.lu@intel.com>
30254
30255         PR target/59379
30256         * config/i386/i386.md (*lea<mode>): Zero-extend return register
30257         to DImode for zero-extended addresses.
30258
30259 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
30260
30261         PR rtl-optimization/57763
30262         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
30263         on the new indirect jump_insn and increment LABEL_NUSES (label).
30264
30265 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
30266
30267         PR bootstrap/59580
30268         PR bootstrap/59583
30269         * config.gcc (x86_archs): New variable.
30270         (x86_64_archs): Likewise.
30271         (x86_cpus): Likewise.
30272         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
30273         --with-arch/--with-cpu= options.
30274         Support --with-arch=/--with-cpu={nehalem,westmere,
30275         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
30276
30277 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
30278
30279         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
30280         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
30281
30282 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
30283
30284         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
30285
30286 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
30287
30288         PR target/58944
30289         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
30290         clear cpp_get_options (parse_in)->warn_unused_macros for
30291         ix86_target_macros_internal with cpp_define.
30292
30293 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
30294
30295         * jump.c (delete_related_insns): Keep (use (insn))s.
30296         * reorg.c (redundant_insn): Check for barriers too.
30297
30298 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30299
30300         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
30301
30302 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
30303
30304         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
30305         call to $$dyncall when TARGET_LONG_CALLS is true.
30306
30307 2014-01-17  Jeff Law  <law@redhat.com>
30308
30309         * ree.c (combine_set_extension): Temporarily disable test for
30310         changing number of hard registers.
30311
30312 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
30313
30314         PR middle-end/58125
30315         * ipa-inline-analysis.c (inline_free_summary):
30316         Do not free summary of aliases.
30317
30318 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
30319
30320         PR middle-end/59706
30321         * gimplify.c (gimplify_expr): Use create_tmp_var
30322         instead of create_tmp_var_raw.  If cond doesn't have
30323         integral type, don't add the IFN_ANNOTATE builtin at all.
30324
30325 2014-01-17  Martin Jambor  <mjambor@suse.cz>
30326
30327         PR ipa/59736
30328         * ipa-cp.c (prev_edge_clone): New variable.
30329         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
30330         Also resize prev_edge_clone vector.
30331         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
30332         (ipcp_edge_removal_hook): New function.
30333         (ipcp_driver): Register ipcp_edge_removal_hook.
30334
30335 2014-01-17  Andrew Pinski  <apinski@cavium.com>
30336             Steve Ellcey  <sellcey@mips.com>
30337
30338         PR target/59462
30339         * config/mips/mips.c (mips_print_operand): Check operand mode instead
30340         of operator mode.
30341
30342 2014-01-17  Jeff Law  <law@redhat.com>
30343
30344         PR middle-end/57904
30345         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
30346         so that pass_ccp runs first.
30347
30348 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30349
30350         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
30351         (ix86_adjust_cost): Use !TARGET_XXX.
30352         (do_reorder_for_imul): Likewise.
30353         (swap_top_of_ready_list): Likewise.
30354         (ix86_sched_reorder): Likewise.
30355
30356 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30357
30358         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
30359         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
30360         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
30361         (intel_memset): New.  Duplicate slm_memset.
30362         (intel_cost): New.  Duplicate slm_cost.
30363         (m_INTEL): New macro.
30364         (processor_target_table): Add "intel".
30365         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
30366         with PROCESSOR_INTEL for "intel".
30367         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
30368         PROCESSOR_SILVERMONT.
30369         (ix86_issue_rate): Likewise.
30370         (ix86_adjust_cost): Likewise.
30371         (ia32_multipass_dfa_lookahead): Likewise.
30372         (swap_top_of_ready_list): Likewise.
30373         (ix86_sched_reorder): Likewise.
30374         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
30375         instead of TARGET_OPT_AGU.
30376         * config/i386/i386.h (TARGET_INTEL): New.
30377         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
30378         (processor_type): Add PROCESSOR_INTEL.
30379         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
30380         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
30381
30382 2014-01-17  Marek Polacek  <polacek@redhat.com>
30383
30384         PR c/58346
30385         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
30386         size is zero.
30387
30388 2014-01-17  Richard Biener  <rguenther@suse.de>
30389
30390         PR tree-optimization/46590
30391         * opts.c (default_options_table): Add entries for
30392         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
30393         all enabled at -O1 but not for -Og.
30394         * common.opt (fbranch-count-reg): Remove Init(1).
30395         (fmove-loop-invariants): Likewise.
30396         (ftree-pta): Likewise.
30397
30398 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
30399
30400         * config/i386/i386.c (ix86_data_alignment): For compatibility with
30401         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
30402         decls to at least the GCC 4.8 used alignments.
30403
30404         PR fortran/59440
30405         * tree-nested.c (convert_nonlocal_reference_stmt,
30406         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
30407         of GIMPLE_BIND stmts, adjust associated decls.
30408
30409 2014-01-17  Richard Biener  <rguenther@suse.de>
30410
30411         PR tree-optimization/46590
30412         * vec.h (vec<>::bseach): New member function implementing
30413         binary search according to C89 bsearch.
30414         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
30415         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
30416         bitmap pointer again.  Make accesses_in_loop a flat array.
30417         (mem_ref_obstack): New global.
30418         (outermost_indep_loop): Adjust for mem_ref->stored changes.
30419         (mark_ref_stored): Likewise.
30420         (ref_indep_loop_p_2): Likewise.
30421         (set_ref_stored_in_loop): New helper function.
30422         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
30423         (memref_free): Adjust.
30424         (record_mem_ref_loc): Simplify.
30425         (gather_mem_refs_stmt): Adjust.
30426         (sort_locs_in_loop_postorder_cmp): New function.
30427         (analyze_memory_references): Sort accesses_in_loop after
30428         loop postorder number.
30429         (find_ref_loc_in_loop_cmp): New function.
30430         (for_all_locs_in_loop): Find relevant cluster of locs in
30431         accesses_in_loop and iterate without recursion.
30432         (execute_sm): Avoid uninit warning.
30433         (struct ref_always_accessed): Simplify.
30434         (ref_always_accessed::operator ()): Likewise.
30435         (ref_always_accessed_p): Likewise.
30436         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
30437         loop postorder numbers here.
30438         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
30439         numbers.
30440
30441 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
30442
30443         PR c++/57945
30444         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
30445         on decls for which assemble_alias has been called.
30446
30447 2014-01-17  Nick Clifton  <nickc@redhat.com>
30448
30449         * config/msp430/msp430.opt: (mcpu): New option.
30450         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
30451         (msp430_option_override): Parse target_cpu.  If the MCU name
30452         matches a generic string, clear target_mcu.
30453         (msp430_attr): Allow numeric interrupt values up to 63.
30454         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
30455         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
30456         option.
30457         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
30458         Add mcpu matches.
30459         * config/msp430/msp430.md (popm): Use %J rather than %I.
30460         (addsi3): Use msp430_nonimmediate_operand for operand 2.
30461         (addhi_cy_i): Use immediate_operand for operand 2.
30462         * doc/invoke.texi: Document -mcpu option.
30463
30464 2014-01-17  Richard Biener  <rguenther@suse.de>
30465
30466         PR rtl-optimization/38518
30467         * df.h (df_analyze_loop): Declare.
30468         * df-core.c: Include cfgloop.h.
30469         (df_analyze_1): Split out main part of df_analyze.
30470         (df_analyze): Adjust.
30471         (loop_inverted_post_order_compute): New function.
30472         (loop_post_order_compute): Likewise.
30473         (df_analyze_loop): New function avoiding whole-function
30474         postorder computes.
30475         * loop-invariant.c (find_defs): Use df_analyze_loop.
30476         (find_invariants): Adjust.
30477         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
30478
30479 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
30480
30481         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
30482         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
30483
30484 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
30485
30486         * ipa-ref.c (ipa_remove_stmt_references): Fix references
30487         traversal when removing references.
30488
30489 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
30490
30491         PR ipa/59775
30492         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
30493
30494 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
30495
30496         PR middle-end/56791
30497         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
30498         pushing a reload for an autoinc when we had previously reloaded an
30499         inner part of the address.
30500
30501 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
30502
30503         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
30504         field.
30505         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
30506         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
30507         when not giving up or versioning for alias only because of
30508         loop->safelen.
30509         (vect_analyze_data_ref_dependences): Set to true.
30510         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
30511         is a GIMPLE_PHI.
30512         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
30513         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
30514         to the condition.
30515
30516         PR middle-end/58344
30517         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
30518
30519         PR target/59839
30520         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
30521         operand 0 predicate for gathers, use a new pseudo as subtarget.
30522
30523 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
30524
30525         PR middle-end/59609
30526         * lra-constraints.c (process_alt_operands): Add printing debug info.
30527         Check absence of input/output reloads for matched operands too.
30528
30529 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
30530
30531         PR rtl-optimization/59835
30532         * ira.c (ira_init_register_move_cost): Increase cost for
30533         impossible modes.
30534
30535 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
30536
30537         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
30538
30539 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
30540
30541         PR target/59780
30542         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
30543         non-register objects.  Use gen_(high/low)part more consistently.
30544         Fix assertions.
30545
30546 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
30547
30548         PR target/59844
30549         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
30550         endian support, remove tests for WORDS_BIG_ENDIAN.
30551         (p8_mfvsrd_3_<mode>): Likewise.
30552         (reload_gpr_from_vsx<mode>): Likewise.
30553         (reload_gpr_from_vsxsf): Likewise.
30554         (p8_mfvsrd_4_disf): Likewise.
30555
30556 2014-01-16  Richard Biener  <rguenther@suse.de>
30557
30558         PR rtl-optimization/46590
30559         * lcm.c (compute_antinout_edge): Use postorder iteration.
30560         (compute_laterin): Use inverted postorder iteration.
30561
30562 2014-01-16  Nick Clifton  <nickc@redhat.com>
30563
30564         PR middle-end/28865
30565         * varasm.c (output_constant): Return the number of bytes actually
30566         emitted.
30567         (output_constructor_array_range): Update the field size with the
30568         number of bytes emitted by output_constant.
30569         (output_constructor_regular_field): Likewise.  Also do not
30570         complain if the total number of bytes emitted is now greater
30571         than the expected fieldpos.
30572         * output.h (output_constant): Update prototype and descriptive comment.
30573
30574 2014-01-16  Marek Polacek  <polacek@redhat.com>
30575
30576         PR middle-end/59827
30577         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
30578         it is error_mark_node.
30579
30580 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
30581
30582         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
30583         VALID_AVX256_REG_OR_OI_MODE.
30584
30585 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
30586
30587         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
30588         current procedure should be profiled.
30589
30590 2014-01-15  Andrew Pinski  <apinski@cavium.com>
30591
30592         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
30593         of moving from/to the STACK_REG register class.
30594
30595 2014-01-15  Richard Henderson  <rth@redhat.com>
30596
30597         PR debug/54694
30598         * reginfo.c (global_regs_decl): Globalize.
30599         * rtl.h (global_regs_decl): Declare.
30600         * ira.c (do_reload): Diagnose frame_pointer_needed and it
30601         reserved via global_regs.
30602
30603 2014-01-15  Teresa Johnson  <tejohnson@google.com>
30604
30605         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
30606
30607 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
30608
30609         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
30610         and vmulosh rather than call gen_vec_widen_smult_*.
30611         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
30612         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
30613         (vec_widen_smult_even_v16qi): Likewise.
30614         (vec_widen_umult_even_v8hi): Likewise.
30615         (vec_widen_smult_even_v8hi): Likewise.
30616         (vec_widen_umult_odd_v16qi): Likewise.
30617         (vec_widen_smult_odd_v16qi): Likewise.
30618         (vec_widen_umult_odd_v8hi): Likewise.
30619         (vec_widen_smult_odd_v8hi): Likewise.
30620         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
30621         vmuloub rather than call gen_vec_widen_umult_*.
30622         (vec_widen_umult_lo_v16qi): Likewise.
30623         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
30624         vmulosb rather than call gen_vec_widen_smult_*.
30625         (vec_widen_smult_lo_v16qi): Likewise.
30626         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
30627         rather than call gen_vec_widen_umult_*.
30628         (vec_widen_umult_lo_v8hi): Likewise.
30629         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
30630         rather than call gen_vec_widen_smult_*.
30631         (vec_widen_smult_lo_v8hi): Likewise.
30632
30633 2014-01-15  Jeff Law  <law@redhat.com>
30634
30635         PR tree-optimization/59747
30636         * ree.c (find_and_remove_re): Properly handle case where a second
30637         eliminated extension requires widening a copy created for elimination
30638         of a prior extension.
30639         (combine_set_extension): Ensure that the number of hard regs needed
30640         for a destination register does not change when we widen it.
30641
30642 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30643
30644         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
30645         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
30646         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
30647         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
30648         (avr-*-rtems*): Likewise.
30649         (bfin*-rtems*): Likewise.
30650         (moxie-*-rtems*): Likewise.
30651         (h8300-*-rtems*): Likewise.
30652         (i[34567]86-*-rtems*): Likewise.
30653         (lm32-*-rtems*): Likewise.
30654         (m32r-*-rtems*): Likewise.
30655         (m68k-*-rtems*): Likewise.
30656         (microblaze*-*-rtems*): Likewise.
30657         (mips*-*-rtems*): Likewise.
30658         (powerpc-*-rtems*): Likewise.
30659         (sh-*-rtems*): Likewise.
30660         (sparc-*-rtems*): Likewise.
30661         (sparc64-*-rtems*): Likewise.
30662         (v850-*-rtems*): Likewise.
30663         (m32c-*-rtems*): Likewise.
30664
30665 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
30666
30667         PR rtl-optimization/59511
30668         * ira.c (ira_init_register_move_cost): Use memory costs for some
30669         cases of register move cost calculations.
30670         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
30671         instead of BB frequency.
30672         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
30673         * lra-assigns.c (find_hard_regno_for): Ditto.
30674
30675 2014-01-15  Richard Biener  <rguenther@suse.de>
30676
30677         PR tree-optimization/59822
30678         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
30679         (vectorizable_load): Use it to hoist defs of uses of invariant
30680         loads out of the loop.
30681
30682 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
30683             Kugan Vivekanandarajah  <kuganv@linaro.org>
30684
30685         PR target/59695
30686         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
30687         truncation.
30688
30689 2014-01-15  Richard Biener  <rguenther@suse.de>
30690
30691         PR rtl-optimization/59802
30692         * lcm.c (compute_available): Use inverted postorder to seed
30693         the initial worklist.
30694
30695 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30696
30697         PR target/59803
30698         * config/s390/s390.c (s390_preferred_reload_class): Don't return
30699         ADDR_REGS for invalid symrefs in non-PIC code.
30700
30701 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
30702
30703         PR other/58712
30704         * builtins.c (determine_block_size): Initialize *probable_max_size
30705         even if len_rtx is CONST_INT.
30706
30707 2014-01-14  Andrew Pinski  <apinski@cavium.com>
30708
30709         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
30710         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
30711         (cortexa53_tunings): Likewise.
30712         (aarch64_sched_issue_rate): New function.
30713         (TARGET_SCHED_ISSUE_RATE): Define.
30714
30715 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
30716
30717         * ira-costs.c (find_costs_and_classes): Add missed
30718         ira_init_register_move_cost_if_necessary.
30719
30720 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
30721
30722         PR target/59787
30723         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
30724
30725 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
30726
30727         PR target/59794
30728         * config/i386/i386.c (type_natural_mode): Add a bool parameter
30729         to indicate if type is used for function return value.  Warn ABI
30730         change if the vector mode isn't available for function return value.
30731         (ix86_function_arg_advance): Pass false to type_natural_mode.
30732         (ix86_function_arg): Likewise.
30733         (ix86_gimplify_va_arg): Likewise.
30734         (function_arg_32): Don't warn ABI change.
30735         (ix86_function_value): Pass true to type_natural_mode.
30736         (ix86_return_in_memory): Likewise.
30737         (ix86_struct_value_rtx): Removed.
30738         (TARGET_STRUCT_VALUE_RTX): Likewise.
30739
30740 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
30741
30742         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
30743         converting a conditional jump into a conditional return.
30744
30745 2014-01-14  Richard Biener  <rguenther@suse.de>
30746
30747         PR tree-optimization/58921
30748         PR tree-optimization/59006
30749         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
30750         hoisting invariant stmts.
30751         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
30752         invariant loads on the preheader edge if possible.
30753
30754 2014-01-14  Joey Ye  <joey.ye@arm.com>
30755
30756         * doc/plugin.texi (Building GCC plugins): Update to C++.
30757
30758 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
30759
30760         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
30761         (_mm_rcp28_round_ss): Ditto.
30762         (_mm_rsqrt28_round_sd): Ditto.
30763         (_mm_rsqrt28_round_ss): Ditto.
30764         (_mm_rcp28_sd): Ditto.
30765         (_mm_rcp28_ss): Ditto.
30766         (_mm_rsqrt28_sd): Ditto.
30767         (_mm_rsqrt28_ss): Ditto.
30768         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
30769         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
30770         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
30771         (IX86_BUILTIN_RCP28SD): Ditto.
30772         (IX86_BUILTIN_RCP28SS): Ditto.
30773         (IX86_BUILTIN_RSQRT28SD): Ditto.
30774         (IX86_BUILTIN_RSQRT28SS): Ditto.
30775         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
30776         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
30777         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
30778         (ix86_expand_special_args_builtin): Expand new FTYPE.
30779         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
30780         (srcp14<mode>): Make insn unary.
30781         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
30782         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
30783         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
30784         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
30785         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
30786         Fix rounding: make it SAE only.
30787         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
30788         Ditto.
30789         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
30790         Ditto.
30791         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
30792         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
30793         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
30794         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
30795         (round_saeonly_mask_scalar_operand4): Ditto.
30796         (round_saeonly_mask_scalar_op3): Ditto.
30797         (round_saeonly_mask_scalar_op4): Ditto.
30798
30799 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30800
30801         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
30802         Implement -maltivec=be for vec_insert and vec_extract.
30803
30804 2014-01-10  DJ Delorie  <dj@redhat.com>
30805
30806         * config/msp430/msp430.md (call_internal): Don't allow memory
30807         references with SP as the base register.
30808         (call_value_internal): Likewise.
30809         * config/msp430/constraints.md (Yc): New.  For memory references
30810         that don't use SP as a base register.
30811
30812         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
30813         "an integer without a # prefix"
30814         * config/msp430/msp430.md (epilogue_helper): Use it.
30815
30816 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
30817
30818         PR target/59617
30819         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
30820         AVX512F gather builtins.
30821         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
30822         on gather decls with INTEGER_TYPE masktype.
30823         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
30824         directly into the builtin rather than hoisting it before loop.
30825
30826         PR tree-optimization/59387
30827         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
30828         (scev_const_prop): If folded_casts and type has undefined overflow,
30829         use force_gimple_operand instead of force_gimple_operand_gsi and
30830         for each added stmt if it is assign with
30831         arith_code_with_undefined_signed_overflow, call
30832         rewrite_to_defined_overflow.
30833         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
30834         gimple-fold.h instead.
30835         (arith_code_with_undefined_signed_overflow,
30836         rewrite_to_defined_overflow): Moved to ...
30837         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
30838         rewrite_to_defined_overflow): ... here.  No longer static.
30839         Include gimplify-me.h.
30840         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
30841         rewrite_to_defined_overflow): New prototypes.
30842
30843 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30844
30845         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
30846
30847 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
30848
30849         * builtins.c (get_object_alignment_2): Minor tweak.
30850         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
30851
30852 2014-01-13  Christian Bruel  <christian.bruel@st.com>
30853
30854         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
30855         optimized non constant lengths.
30856
30857 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
30858
30859         PR libgomp/59194
30860         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
30861         load as __atomic_load_N if possible.
30862
30863 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
30864
30865         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
30866         target parameter.
30867         (rs6000_expand_builtin): Adjust call.
30868
30869 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
30870
30871         PR target/58115
30872         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
30873         * config/rs6000/rs6000.c: Include target-globals.h.
30874         (rs6000_set_current_function): Instead of doing target_reinit
30875         unconditionally, use save_target_globals_default_opts and
30876         restore_target_globals.
30877
30878         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
30879         FPSCR.
30880         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
30881         (rs6000_expand_builtin): Handle mffs and mtfsf.
30882         (rs6000_init_builtins): Define mffs and mtfsf.
30883         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
30884         (rs6000_mffs): New pattern.
30885         (rs6000_mtfsf): New pattern.
30886
30887 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
30888
30889         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
30890         Start narrowing with START.  Apply candidate-use pair
30891         and check overall cost in narrowing.
30892         (iv_ca_prune): Pass new argument.
30893
30894 2014-01-10  Jeff Law  <law@redhat.com>
30895
30896         PR middle-end/59743
30897         * ree.c (combine_reaching_defs): Ensure the defining statement
30898         occurs before the extension when optimizing extensions with
30899         different source and destination hard registers.
30900
30901 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
30902
30903         PR ipa/58585
30904         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
30905         vtables into the type inheritance graph.
30906
30907 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
30908
30909         PR rtl-optimization/59754
30910         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
30911         modes in the REGNO != REGNO case.
30912
30913 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30914
30915         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
30916
30917 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
30918
30919         PR tree-optimization/59745
30920         * tree-predcom.c (tree_predictive_commoning_loop): Call
30921         free_affine_expand_cache if giving up because components is NULL.
30922
30923         * target-globals.c (save_target_globals): Allocate < 4KB structs using
30924         GC in payload of target_globals struct instead of allocating them on
30925         the heap and the larger structs separately using GC.
30926         * target-globals.h (struct target_globals): Make regs, hard_regs,
30927         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
30928         of GTY((skip)) and change type to void *.
30929         (reset_target_globals): Cast loads from those fields to corresponding
30930         types.
30931
30932 2014-01-10  Steve Ellcey  <sellcey@mips.com>
30933
30934         PR plugins/59335
30935         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
30936         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
30937         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
30938
30939 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
30940
30941         PR target/59744
30942         * aarch64-modes.def (CC_Zmode): New flags mode.
30943         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
30944         represents an equality.
30945         (aarch64_get_condition_code): Handle CC_Zmode.
30946         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
30947
30948 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30949
30950         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
30951         extraction in good case.
30952
30953 2014-01-10  Richard Biener  <rguenther@suse.de>
30954
30955         PR tree-optimization/59374
30956         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
30957         checking after SLP discovery.  Mark stmts not participating
30958         in any SLP instance properly.
30959
30960 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30961
30962         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
30963         when handling a SET rtx.
30964
30965 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30966
30967         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
30968         (cortex-a57): Likewise.
30969         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
30970
30971 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30972
30973         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
30974         non-iwmmxt builtins.
30975
30976 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
30977
30978         PR ipa/58252
30979         PR ipa/59226
30980         * ipa-devirt.c record_target_from_binfo): Take as argument
30981         stack of binfos and lookup matching one for virtual inheritance.
30982         (possible_polymorphic_call_targets_1): Update.
30983
30984 2014-01-10  Huacai Chen  <chenhc@lemote.com>
30985
30986         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
30987         kernel strings for Loongson-2E/2F/3A.
30988
30989 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
30990
30991         PR middle-end/59670
30992         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
30993         is_gimple_call before calling gimple_call_internal_p.
30994
30995 2014-01-09  Steve Ellcey  <sellcey@mips.com>
30996
30997         * Makefile.in (TREE_FLOW_H): Remove.
30998         (TREE_SSA_H): Add file names from tree-flow.h.
30999         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
31000         * tree.h: Remove tree-flow.h reference.
31001         * hash-table.h: Remove tree-flow.h reference.
31002         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
31003         reference with tree-ssa-loop.h.
31004
31005 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31006
31007         * doc/invoke.texi: Add -maltivec={be,le} options, and document
31008         default element-order behavior for -maltivec.
31009         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
31010         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
31011         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
31012         when targeting big endian, at least for now.
31013         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
31014
31015 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
31016
31017         PR middle-end/47735
31018         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
31019         var satisfies use_register_for_decl, just take into account type
31020         alignment, rather than decl alignment.
31021
31022         PR tree-optimization/59622
31023         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
31024         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
31025         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
31026         Don't devirtualize for inplace at all.  For targets.length () == 1,
31027         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
31028
31029 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
31030
31031         * config/i386/i386.md (cpu): Remove the unused btver1.
31032
31033 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
31034
31035         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
31036
31037 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
31038
31039         PR target/58115
31040         * tree-core.h (struct target_globals): New forward declaration.
31041         (struct tree_target_option): Add globals field.
31042         * tree.h (TREE_TARGET_GLOBALS): Define.
31043         (prepare_target_option_nodes_for_pch): New prototype.
31044         * target-globals.h (struct target_globals): Define even if
31045         !SWITCHABLE_TARGET.
31046         * tree.c (prepare_target_option_node_for_pch,
31047         prepare_target_option_nodes_for_pch): New functions.
31048         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
31049         * config/i386/i386.c: Include target-globals.h.
31050         (ix86_set_current_function): Instead of doing target_reinit
31051         unconditionally, use save_target_globals_default_opts and
31052         restore_target_globals.
31053
31054 2014-01-09  Richard Biener  <rguenther@suse.de>
31055
31056         PR tree-optimization/59715
31057         * tree-cfg.h (split_critical_edges): Declare.
31058         * tree-cfg.c (split_critical_edges): Export.
31059         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
31060
31061 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
31062
31063         * cfgexpand.c (expand_stack_vars): Optionally disable
31064         asan stack protection.
31065         (expand_used_vars): Likewise.
31066         (partition_stack_vars): Likewise.
31067         * asan.c (asan_emit_stack_protection): Optionally disable
31068         after return stack usage.
31069         (instrument_derefs): Optionally disable memory access instrumentation.
31070         (instrument_builtin_call): Likewise.
31071         (instrument_strlen_call): Likewise.
31072         (asan_protect_global): Optionally disable global variables protection.
31073         * doc/invoke.texi: Added doc for new options.
31074         * params.def: Added new options.
31075         * params.h: Likewise.
31076
31077 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
31078
31079         PR rtl-optimization/59724
31080         * ifcvt.c (cond_exec_process_if_block): Don't call
31081         flow_find_head_matching_sequence with 0 longest_match.
31082         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
31083         non-active insns if !stop_after.
31084         (try_head_merge_bb): Revert 2014-01-07 changes.
31085
31086 2014-01-08  Jeff Law  <law@redhat.com>
31087
31088         * ree.c (get_sub_rtx): New function, extracted from...
31089         (merge_def_and_ext): Here.
31090         (combine_reaching_defs): Use get_sub_rtx.
31091
31092 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
31093
31094         * cgraph.h (varpool_variable_node): Do not choke on null node.
31095
31096 2014-01-08  Catherine Moore  <clm@codesourcery.com>
31097
31098         * config/mips/mips.md (simple_return): Attempt to use JRC
31099         for microMIPS.
31100         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
31101
31102 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
31103
31104         PR rtl-optimization/59137
31105         * reorg.c (steal_delay_list_from_target): Call update_block for
31106         elided insns.
31107         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
31108
31109 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31110
31111         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
31112         two duplicate entries.
31113
31114 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
31115
31116         Revert:
31117         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
31118
31119         * config/mips/mips.c (mips_truncated_op_cost): New function.
31120         (mips_rtx_costs): Adjust test for BADDU.
31121         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
31122
31123         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
31124
31125         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
31126         (*baddu_si): ...this new pattern.
31127
31128 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
31129
31130         PR ipa/59722
31131         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
31132
31133 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31134
31135         PR middle-end/57748
31136         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
31137         inner_reference_p.
31138         (expand_expr, expand_normal): Adjust.
31139         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
31140         inner_reference_p. Use inner_reference_p to expand inner references.
31141         (store_expr): Adjust.
31142         * cfgexpand.c (expand_call_stmt): Adjust.
31143
31144 2014-01-08  Rong Xu  <xur@google.com>
31145
31146         * gcov-io.c (gcov_var): Move from gcov-io.h.
31147         (gcov_position): Ditto.
31148         (gcov_is_error): Ditto.
31149         (gcov_rewrite): Ditto.
31150         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
31151         only part to libgcc/libgcov.h.
31152
31153 2014-01-08  Marek Polacek  <polacek@redhat.com>
31154
31155         PR middle-end/59669
31156         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
31157
31158 2014-01-08  Marek Polacek  <polacek@redhat.com>
31159
31160         PR sanitizer/59667
31161         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
31162
31163 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
31164
31165         PR rtl-optimization/59649
31166         * stor-layout.c (get_mode_bounds): For BImode return
31167         0 and STORE_FLAG_VALUE.
31168
31169 2014-01-08  Richard Biener  <rguenther@suse.de>
31170
31171         PR middle-end/59630
31172         * gimple.h (is_gimple_builtin_call): Remove.
31173         (gimple_builtin_call_types_compatible_p): New.
31174         (gimple_call_builtin_p): New overload.
31175         * gimple.c (is_gimple_builtin_call): Remove.
31176         (validate_call): Rename to ...
31177         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
31178         check return types.
31179         (validate_type): New static function.
31180         (gimple_call_builtin_p): New overload and adjust.
31181         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
31182         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
31183         (gimple_fold_stmt_to_constant_1): Likewise.
31184         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
31185
31186 2014-01-08  Richard Biener  <rguenther@suse.de>
31187
31188         PR middle-end/59471
31189         * gimplify.c (gimplify_expr): Gimplify register-register type
31190         VIEW_CONVERT_EXPRs to separate stmts.
31191
31192 2014-01-07  Jeff Law  <law@redhat.com>
31193
31194         PR middle-end/53623
31195         * ree.c (combine_set_extension): Handle case where source
31196         and destination registers in an extension insn are different.
31197         (combine_reaching_defs): Allow source and destination registers
31198         in extension to be different under limited circumstances.
31199         (add_removable_extension): Remove restriction that the
31200         source and destination registers in the extension are the same.
31201         (find_and_remove_re): Emit a copy from the extension's
31202         destination to its source after the defining insn if
31203         the source and destination registers are different.
31204
31205         PR middle-end/59285
31206         * ifcvt.c (merge_if_block): If we are merging a block with more than
31207         one successor with a block with no successors, remove any BARRIER
31208         after the second block.
31209
31210 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
31211
31212         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
31213
31214 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
31215
31216         PR target/59652
31217         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
31218         for 14-bit register offsets when INT14_OK_STRICT is false.
31219
31220 2014-01-07  Roland Stigge  <stigge@antcom.de>
31221             Michael Meissner  <meissner@linux.vnet.ibm.com>
31222
31223         PR 57386/target
31224         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
31225         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
31226
31227 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
31228
31229         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
31230         -mcpu.
31231
31232 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
31233
31234         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
31235         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
31236         rtx is const0_rtx or not.
31237
31238 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
31239
31240         PR target/58115
31241         * target-globals.c (save_target_globals): Remove this_fn_optab
31242         handling.
31243         * toplev.c: Include optabs.h.
31244         (target_reinit): Temporarily restore the global options if another
31245         set of options are in force.
31246
31247 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
31248
31249         PR rtl-optimization/58668
31250         * cfgcleanup.c (flow_find_cross_jump): Don't count
31251         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
31252         to determine what is counted.
31253         (flow_find_head_matching_sequence): Use active_insn_p to determine
31254         what is counted.
31255         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
31256         counting change.
31257         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
31258         determine what is counted.
31259
31260         PR tree-optimization/59643
31261         * tree-predcom.c (split_data_refs_to_components): If one dr is
31262         read and one write, determine_offset fails and the write isn't
31263         in the bad component, just put the read into the bad component.
31264
31265 2014-01-07  Mike Stump  <mikestump@comcast.net>
31266             Jakub Jelinek  <jakub@redhat.com>
31267
31268         PR pch/59436
31269         * tree-core.h (struct tree_optimization_option): Change optabs
31270         type from unsigned char * to void *.
31271         * optabs.c (init_tree_optimization_optabs): Adjust
31272         TREE_OPTIMIZATION_OPTABS initialization.
31273
31274 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
31275
31276         PR target/59644
31277         * config/i386/i386.h (struct machine_function): Add
31278         no_drap_save_restore field.
31279         * config/i386/i386.c (ix86_save_reg): Use
31280         !cfun->machine->no_drap_save_restore instead of
31281         crtl->stack_realign_needed.
31282         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
31283         this function clears frame_pointer_needed.  Set
31284         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
31285         and DRAP reg is needed.
31286
31287 2014-01-06  Marek Polacek  <polacek@redhat.com>
31288
31289         PR c/57773
31290         * doc/implement-c.texi: Mention that other integer types are
31291         permitted as bit-field types in strictly conforming mode.
31292
31293 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
31294
31295         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
31296         is newly allocated.
31297
31298 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
31299
31300         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
31301
31302 2014-01-06  Martin Jambor  <mjambor@suse.cz>
31303
31304         PR ipa/59008
31305         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
31306         to int.
31307         * ipa-prop.c (ipa_print_node_params): Fix indentation.
31308
31309 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
31310
31311         PR debug/59350
31312         PR debug/59510
31313         * var-tracking.c (add_stores): Preserve the value of the source even if
31314         we don't record the store.
31315
31316 2014-01-06  Terry Guo  <terry.guo@arm.com>
31317
31318         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
31319
31320 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
31321
31322         PR bootstrap/59541
31323         * config/darwin.c (darwin_function_section): Adjust return values to
31324         correspond to optimisation changes made in r206070.
31325
31326 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
31327
31328         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
31329         from prefetch_block tune setting.
31330         (nocona_cost): Correct size of prefetch block to 64.
31331
31332 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
31333
31334         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
31335         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
31336         used to save the static chain register in the computation of the offset
31337         from which the FP registers need to be restored.
31338
31339 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
31340
31341         PR tree-optimization/59519
31342         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
31343         ICE if get_current_def (current_new_name) is already non-NULL, as long
31344         as it is a phi result of some other phi in *new_exit_bb that has
31345         the same argument.
31346
31347         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
31348         or vmovdqu* for misaligned_operand.
31349         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
31350         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
31351         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
31352         aligned_mem for AVX512F masked aligned load and store builtins and for
31353         non-temporal moves.
31354
31355 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
31356
31357         PR tree-optimization/59651
31358         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
31359         Address range for negative step should be added by TYPE_SIZE_UNIT.
31360
31361 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
31362
31363         * config/m68k/m68k.c (handle_move_double): Handle pushes with
31364         overlapping registers also for registers other than the stack pointer.
31365
31366 2014-01-03  Marek Polacek  <polacek@redhat.com>
31367
31368         PR other/59661
31369         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
31370         __builtin_FILE.
31371
31372 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
31373
31374         PR target/59625
31375         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
31376         asm goto as jump.
31377
31378         * config/i386/i386.md (MODE_SIZE): New mode attribute.
31379         (push splitter): Use <P:MODE_SIZE> instead of
31380         GET_MODE_SIZE (<P:MODE>mode).
31381         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
31382         (mov -1, reg peephole2): Likewise.
31383         * config/i386/sse.md (*mov<mode>_internal,
31384         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
31385         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
31386         *<code><mode>3, *andnot<mode>3<mask_name>,
31387         <mask_codefor><code><mode>3<mask_name>): Likewise.
31388         * config/i386/subst.md (mask_mode512bit_condition,
31389         sd_mask_mode512bit_condition): Likewise.
31390
31391 2014-01-02  Xinliang David Li  <davidxl@google.com>
31392
31393         PR tree-optimization/59303
31394         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
31395         (dump_predicates): Better output format.
31396         (pred_equal_p): New function.
31397         (is_neq_relop_p): Ditto.
31398         (is_neq_zero_form_p): Ditto.
31399         (pred_expr_equal_p): Ditto.
31400         (pred_neg_p): Ditto.
31401         (simplify_pred): Ditto.
31402         (simplify_preds_2): Ditto.
31403         (simplify_preds_3): Ditto.
31404         (simplify_preds_4): Ditto.
31405         (simplify_preds): Ditto.
31406         (push_pred): Ditto.
31407         (push_to_worklist): Ditto.
31408         (get_pred_info_from_cmp): Ditto.
31409         (is_degenerated_phi): Ditto.
31410         (normalize_one_pred_1): Ditto.
31411         (normalize_one_pred): Ditto.
31412         (normalize_one_pred_chain): Ditto.
31413         (normalize_preds): Ditto.
31414         (normalize_cond_1): Remove function.
31415         (normalize_cond): Ditto.
31416         (is_gcond_subset_of): Ditto.
31417         (is_subset_of_any): Ditto.
31418         (is_or_set_subset_of): Ditto.
31419         (is_and_set_subset_of): Ditto.
31420         (is_norm_cond_subset_of): Ditto.
31421         (pred_chain_length_cmp): Ditto.
31422         (convert_control_dep_chain_into_preds): Type change.
31423         (find_predicates): Ditto.
31424         (find_def_preds): Ditto.
31425         (destroy_predicates_vecs): Ditto.
31426         (find_matching_predicates_in_rest_chains): Ditto.
31427         (use_pred_not_overlap_with_undef_path_pred): Ditto.
31428         (is_pred_expr_subset): Ditto.
31429         (is_pred_chain_subset_of): Ditto.
31430         (is_included_in): Ditto.
31431         (is_superset_of): Ditto.
31432
31433 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
31434
31435         Update copyright years.
31436
31437 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
31438
31439         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
31440         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
31441         config/arc/arc.md, config/arc/arc.opt,
31442         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
31443         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
31444         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
31445         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
31446         config/linux-protos.h, config/linux.c, config/winnt-c.c,
31447         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
31448         vtable-verify.c, vtable-verify.h: Use the standard form for the
31449         copyright notice.
31450
31451 2014-01-02  Tobias Burnus  <burnus@net-b.de>
31452
31453         * gcc.c (process_command): Update copyright notice dates.
31454         * gcov-dump.c: Ditto.
31455         * gcov.c: Ditto.
31456         * doc/cpp.texi: Bump @copying's copyright year.
31457         * doc/cppinternals.texi: Ditto.
31458         * doc/gcc.texi: Ditto.
31459         * doc/gccint.texi: Ditto.
31460         * doc/gcov.texi: Ditto.
31461         * doc/install.texi: Ditto.
31462         * doc/invoke.texi: Ditto.
31463
31464 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
31465
31466         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
31467
31468 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
31469
31470         * config/i386/sse.md (*mov<mode>_internal): Guard
31471         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
31472
31473         PR rtl-optimization/59647
31474         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
31475         new_rtx into UNSIGNED_FLOAT rtxes.
31476 \f
31477 Copyright (C) 2014 Free Software Foundation, Inc.
31478
31479 Copying and distribution of this file, with or without modification,
31480 are permitted in any medium without royalty provided the copyright
31481 notice and this notice are preserved.