config.gcc (powerpc-wrs-vxworksmils): New configuration.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-09-19  Olivier Hainque  <hainque@adacore.com>
2
3         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
4         * config/rs6000/t-vxworksmils: New file.
5         * config/rs6000/vxworksmils.h: New file.
6
7 2014-09-19  Olivier Hainque  <hainque@adacore.com>
8
9         * varasm.c (default_section_type_flags): Flag .persistent.bss
10         sections as SECTION_BSS.
11
12 2014-09-19  Nick Clifton  <nickc@redhat.com>
13
14         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
15         pop'ed registers so that DCE does not eliminate them.
16
17 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
18
19         PR lto/63298
20         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
21
22 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
23
24         * system.h (LIBGCC2_TF_CEXT): Poison.
25         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
26         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
27         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
28         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
29         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
30         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
31         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
32         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
33         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
34
35 2014-09-19  Kito Cheng  <kito@0xlab.org>
36
37         * except.h: Fix header guard.
38         * addresses.h: Add missing header guard.
39         * cfghooks.h: Likewise.
40         * collect-utils.h: Likewise.
41         * collect2-aix.h: Likewise.
42         * conditions.h: Likewise.
43         * cselib.h: Likewise.
44         * dwarf2asm.h: Likewise.
45         * graphds.h: Likewise.
46         * graphite-scop-detection.h: Likewise.
47         * gsyms.h: Likewise.
48         * hw-doloop.h: Likewise.
49         * incpath.h: Likewise.
50         * ipa-inline.h: Likewise.
51         * ipa-ref.h: Likewise.
52         * ira-int.h: Likewise.
53         * ira.h: Likewise.
54         * lra-int.h: Likewise.
55         * lra.h: Likewise.
56         * lto-section-names.h: Likewise.
57         * read-md.h: Likewise.
58         * reload.h: Likewise.
59         * rtl-error.h: Likewise.
60         * sdbout.h: Likewise.
61         * targhooks.h: Likewise.
62         * tree-affine.h: Likewise.
63         * xcoff.h: Likewise.
64         * xcoffout.h: Likewise.
65
66 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
67
68         PR debug/63285
69         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
70         if advance != 0.
71
72 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
73
74         PR target/61360
75         * lra.c (lra): Call recog_init.
76
77 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
78
79         PR c++/62017
80         * asan.c (transform_statements): Don't instrument clobber statements.
81
82 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
83
84         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
85         to neon_load1_1reg<q>.
86
87 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
88
89         PR debug/63284
90         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
91         if there are only debug stmts after the noreturn call, instead
92         remove the debug stmts.
93
94 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
95
96         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
97         (odr_types_equivalent_p): Use pair hash.
98         (odr_subtypes_equivalent_p): Likewise, do structural compare
99         on ODR types that may be mismatched.
100         (warn_odr): Support warning when only one field is given.
101         (odr_types_equivalent_p): Strenghten comparsions made;
102         support VOIDtype.
103         (add_type_duplicate): Update VISITED hash set.
104
105 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
106
107         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
108         Enable selection of 'posix' or no thread model.
109
110 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
111
112         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
113         when architecture is older than ARMv7.
114
115 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
116
117         PR target/61853
118         * config/pa/pa.c (pa_function_value): Directly handle aggregates
119         that fit exactly in a word or double word.
120
121 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
122
123         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
124         zmm/k regs support.
125
126 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
127             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
128             Anna Tikhonova  <anna.tikhonova@intel.com>
129             Ilya Tocar  <ilya.tocar@intel.com>
130             Andrey Turetskiy  <andrey.turetskiy@intel.com>
131             Ilya Verbin  <ilya.verbin@intel.com>
132             Kirill Yukhin  <kirill.yukhin@intel.com>
133             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
134
135         * config/i386/i386.c
136         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
137         * config/i386/sse.md
138         (define_mode_iterator VI48F_256): New.
139         (define_mode_attr extract_type): Ditto.
140         (define_mode_attr extract_suf): Ditto.
141         (define_mode_iterator AVX512_VEC): Ditto.
142         (define_expand
143         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
144         AVX512_VEC.
145         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
146         (define_insn
147         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
148         Ditto.
149         (define_mode_attr extract_type_2): Ditto.
150         (define_mode_attr extract_suf_2): Ditto.
151         (define_mode_iterator AVX512_VEC_2): Ditto.
152         (define_expand
153         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
154         AVX512_VEC_2 mode iterator.
155         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
156         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
157         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
158         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
159         (define_split for V16FI mode): Ditto.
160         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
161         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
162         (define_split for VI8F_256 mode): Ditto.
163         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
164         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
165         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
166         (define_split for VI4F_256 mode): Ditto.
167         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
168         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
169         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
170         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
171         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
172         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
173         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
174         Update `type' attribute, remove explicit `memory' attribute calculation.
175
176 2014-09-16  Kito Cheng  <kito@0xlab.org>
177
178         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
179         ira_spilled_reg_stack_slots_num if using lra.
180         (do_reload): Remove release ira_spilled_reg_stack_slots part.
181         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
182         make sure not using lra.
183         (ira_reuse_stack_slot): Likewise.
184         (ira_mark_new_stack_slot): Likewise.
185
186 2014-09-15  Andi Kleen  <ak@linux.intel.com>
187
188         * function.c (allocate_struct_function): Force
189         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
190         profiling is disabled.
191
192 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
193     
194         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
195         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
196         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
197         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
198         macro with statically checked member functions.
199         * rtl.h (rtx_insn::deleted): New method.
200         (rtx_insn::set_deleted): Likewise.
201         (rtx_insn::set_undeleted): Likewise.
202         (INSN_DELETED_P): Remove.
203
204 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
205
206         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
207         result of emit_jump_insn_before to a new variable.
208         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
209         (mark_jump_label_1): Likewise.
210         (mark_jump_label_asm): Likewise.
211         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
212         * rtl.h (mark_jump_label): Adjust.
213
214 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
215
216         * Makefile.in (dg_target_exps): Remove.
217         (check_gcc_parallelize): Change to just an upper bound number.
218         (check-%-subtargets): Always print the non-parallelized goals.
219         (check_p_vars, check_p_comma, check_p_subwork): Remove.
220         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
221         check_p_numbers3, check_p_numbers4, check_p_numbers5,
222         check_p_numbers6): New variables.
223         (check_p_numbers): Set to sequence from 1 to 9999.
224         (check_p_subdirs): Set to sequence from 1 to minimum of
225         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
226         or 128.
227         (check-%, check-parallel-%): Rewritten so that for parallelized
228         testing each job runs all the *.exp files, with
229         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
230
231 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
232
233         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
234         rtx to rtx_insn *.
235         (arc_sets_cc_p): Likewise.
236         * config/arc/arc.c (arc_print_operand): Use methods of
237         "final_sequence" for clarity, and to enable strengthening of
238         locals "jump" and "delay" from rtx to rtx_insn *.
239         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
240         rtx_insn *; use method of rtx_sequence for typesafety.
241         (arc_get_insn_variants): Use insn method of rtx_sequence for
242         typesafety.
243         (arc_pad_return): Likewise.
244         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
245         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
246         dyn_cast to rtx_sequence *, using insn method for typesafety.
247         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
248         rtx_sequence * and use insn method when invoking get_attr_length.
249         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
250         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
251         rtx_sequence *, introducing a local "seq", using its insn method
252         from typesafety and clarity.
253         (add_sched_insns_for_speculation): Strengthen local "next" from
254         rtx to rtx_insn *.
255         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
256         (predicate_insn): Likewise.
257         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
258         second param.
259         * config/cris/cris.c (cris_notice_update_cc): Likewise.
260         * config/epiphany/epiphany-protos.h
261         (extern void epiphany_insert_mode_switch_use): Likewise for param
262         "insn".
263         (get_attr_sched_use_fpu): Likewise for param.
264         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
265         Likewise for param "insn".
266         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
267         param "insn" of "target_insert_mode_switch_use" callback.
268         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
269         (frv_issues_to_branch_unit_p): Likewise.
270         (frv_pack_insn_p): Likewise.
271         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
272         const rtx * (i.e. mutable rtx_def * const *) to
273         rtx_insn * const *.
274         * config/i386/i386-protos.h (standard_sse_constant_opcode):
275         Strengthen first param from rtx to rtx_insn *.
276         (output_fix_trunc): Likewise.
277         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
278         (output_fix_trunc): Likewise.
279         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
280         local "insn".
281         (min_insn_size): Likewise for param "insn".
282         (get_mem_group): Likewise.
283         (is_cmp): Likewise.
284         (get_insn_path): Likewise.
285         (get_insn_group): Likewise.
286         (count_num_restricted): Likewise.
287         (fits_dispatch_window): Likewise.
288         (add_insn_window): Likewise.
289         (add_to_dispatch_window): Likewise.
290         (debug_insn_dispatch_info_file): Likewise.
291         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
292         first param.
293         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
294         "cmp" and local "prev".
295         (m32c_output_compare): Likewise for param "insn".
296         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
297         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
298         (define_predicate "large_insn_p"): Likewise.
299         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
300         param from rtx to rtx_insn *.
301         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
302         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
303         (m68k_sched_attr_size): Likewise.
304         (sched_get_opxy_mem_type): Likewise for param "insn".
305         (m68k_sched_attr_op_mem): Likewise.
306         (sched_mem_operand_p): Likewise.
307         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
308         * config/mep/mep.c (mep_multi_slot): Likewise.
309         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
310         first param.
311         (mips_sync_loop_insns): Likewise.
312         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
313         method of "final_sequence" for typesafety.
314         (mips_process_sync_loop): Strengthen param "insn" from rtx to
315         rtx_insn *.
316         (mips_output_sync_loop): Likewise.
317         (mips_sync_loop_insns): Likewise.
318         (mips_74k_agen_init): Likewise.
319         (mips_sched_init): Use NULL rather than NULL_RTX when working with
320         insns.
321         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
322         Strengthen param "insn" from rtx to rtx_insn *.
323         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
324         local "insn".
325         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
326         param.
327         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
328         "insn".  Use method of rtx_sequence for typesafety.
329         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
330         rtx_insn *.
331         (branch_needs_nop_p): Likewise.
332         (use_skip_p): Likewise.
333         (pa_insn_refs_are_delayed): Likewise.
334         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
335         for locals "insn", "ninsn".
336         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
337         "insn".
338         (is_cracked_insn): Likewise.
339         (is_branch_slot_insn): Likewise.
340         (is_nonpipeline_insn): Likewise.
341         (insn_terminates_group_p): Likewise.
342         (insn_must_be_first_in_group): Likewise.
343         (insn_must_be_last_in_group): Likewise.
344         (force_new_group): Likewise for param "next_insn".
345         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
346         "insn".
347         (s390_sched_score): Likewise.
348         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
349         (rtx sfunc_uses_reg): Likewise for sole param.
350         * config/sh/sh.c (sh_print_operand): Use insn method of
351         final_sequence for typesafety.
352         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
353         Use insn method of final_sequence for typesafety.
354         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
355         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
356         for param.
357         (eligible_for_return_delay): Likewise.
358         (eligible_for_sibcall_delay): Likewise.
359         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
360         (eligible_for_return_delay): Likewise.
361         (eligible_for_sibcall_delay): Likewise.
362         * config/stormy16/stormy16-protos.h
363         (xstormy16_output_cbranch_hi): Likewise for final param.
364         (xstormy16_output_cbranch_si): Likewise.
365         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
366         (xstormy16_output_cbranch_si): Likewise.
367         * config/v850/v850-protos.h (notice_update_cc): Likewise.
368         * config/v850/v850.c (notice_update_cc): Likewise.
369
370         * final.c (get_attr_length_1): Strengthen param "insn" and param
371         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
372         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
373         (get_attr_min_length): Likewise.
374         (shorten_branches): Likewise for signature of locals "length_fun"
375         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
376         from a checked cast and use its methods for clarity and to enable
377         strengthening local "inner_insn" from rtx to rtx_insn *.
378         * genattr.c (gen_attr): When writing out the prototypes of the
379         various generated "get_attr_" functions, strengthen the params of
380         the non-const functions from rtx to rtx_insn *.
381         Similarly, strengthen the params of insn_default_length,
382         insn_min_length, insn_variable_length_p, insn_current_length.
383         (main): Similarly, strengthen the param of num_delay_slots,
384         internal_dfa_insn_code, insn_default_latency, bypass_p,
385         insn_latency, min_issue_delay, print_reservation,
386         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
387         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
388         to hook_int_rtx_insn_unreachable.
389         * genattrtab.c (write_attr_get): When writing out the generated
390         "get_attr_" functions, strengthen the param "insn" from rtx to
391         rtx_insn *, eliminating a checked cast.
392         (make_automaton_attrs): When writing out prototypes of
393         "internal_dfa_insn_code_", "insn_default_latency_" functions
394         and the "internal_dfa_insn_code" and "insn_default_latency"
395         callbacks, strengthen their params from rtx to rtx_insn *
396         * genautomata.c (output_internal_insn_code_evaluation): When
397         writing out code, add a checked cast from rtx to rtx_insn * when
398         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
399         (output_dfa_insn_code_func): Strengthen param of generated
400         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
401         (output_trans_func): Likewise for generated function
402         "state_transition".
403         (output_internal_insn_latency_func): When writing out generated
404         function "internal_insn_latency", rename params from "insn" and
405         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
406         locals "insn" and "insn2" as rtx_insn * with checked casts once
407         we've proven that we're not dealing with const0_rtx.
408         (output_insn_latency_func):  Strengthen param of generated
409         function "insn_latency" from rtx to rtx_insn *.
410         (output_print_reservation_func): Likewise for generated function
411         "print_reservation".
412         (output_insn_has_dfa_reservation_p): Likewise for generated
413         function "insn_has_dfa_reservation_p".
414         * hooks.c (hook_int_rtx_unreachable): Rename to...
415         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
416         from rtx to rtx_insn *.
417         * hooks.h (hook_int_rtx_unreachable): Likewise.
418         (extern int hook_int_rtx_insn_unreachable): Likewise.
419         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
420         (get_attr_min_length): Likewise.
421         * recog.c (get_enabled_alternatives): Likewise.
422         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
423         * reorg.c (find_end_label): Introduce local rtx "pat" and
424         strengthen local "insn" from rtx to rtx_insn *.
425         (redundant_insn): Use insn method of "seq" rather than element for
426         typesafety; strengthen local "control" from rtx to rtx_insn *.
427         * resource.c (mark_referenced_resources): Add checked cast to
428         rtx_insn * within INSN/JUMP_INSN case.
429         (mark_set_resources): Likewise.
430         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
431         rtx to rtx_insn *.
432
433 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
434
435         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
436         param "label" from rtx to rtx_insn *.
437         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
438         and local "op".
439         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
440         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
441         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
442         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
443         * final.c (default_label_align_after_barrier_max_skip): Strengthen
444         param from rtx to rtx_insn *.
445         (default_loop_align_max_skip): Likewise.
446         (default_label_align_max_skip): Likewise.
447         (default_jump_align_max_skip): Likewise.
448         * target.def (label_align_after_barrier_max_skip): Likewise.
449         (loop_align_max_skip): Likewise.
450         (label_align_max_skip): Likewise.
451         (jump_align_max_skip): Likewise.
452         * targhooks.h (default_label_align_after_barrier_max_skip):
453         Likewise.
454         (default_loop_align_max_skip): Likewise.
455         (default_label_align_max_skip): Likewise.
456         (default_jump_align_max_skip): Likewise.
457
458 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
459
460         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
461         from const_rtx to const rtx_insn *.  Update union members from rtx
462         to rtx_insn *.
463         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
464         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
465         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
466         strengthen both params from const_rtx to const rtx_insn *.
467         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
468         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
469         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
470         rtx_insn *.
471         * target.def (can_follow_jump): Strengthen both params from
472         const_rtx to const rtx_insn *, and update default implementation
473         from hook_bool_const_rtx_const_rtx_true to
474         hook_bool_const_rtx_insn_const_rtx_insn_true.
475
476 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
477
478         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
479         "insn" from rtx to rtx_insn *.
480         * sched-int.h (deps_start_bb): Likewise for 2nd param.
481
482 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
483             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
484             Anna Tikhonova  <anna.tikhonova@intel.com>
485             Ilya Tocar  <ilya.tocar@intel.com>
486             Andrey Turetskiy  <andrey.turetskiy@intel.com>
487             Ilya Verbin  <ilya.verbin@intel.com>
488             Kirill Yukhin  <kirill.yukhin@intel.com>
489             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
490
491         * config/i386/sse.md
492         (define_insn "vcvtph2ps<mask_name>"): Add masking.
493         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
494         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
495         (define_expand "vcvtps2ph_mask"): New.
496         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
497         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
498         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
499
500 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
501             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
502             Anna Tikhonova  <anna.tikhonova@intel.com>
503             Ilya Tocar  <ilya.tocar@intel.com>
504             Andrey Turetskiy  <andrey.turetskiy@intel.com>
505             Ilya Verbin  <ilya.verbin@intel.com>
506             Kirill Yukhin  <kirill.yukhin@intel.com>
507             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
508
509         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
510         New.
511         (define_mode_iterator VI24_AVX512BW_1): Ditto.
512         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
513         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
514         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
515         also for TARGET_AVX512VL.
516         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
517
518 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
519
520         * doc/install.texi (Options specification): add 
521         --disable-libsanitizer item.
522
523 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
524             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
525
526         PR target/61407
527         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
528         and above.
529         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
530         kernel version check to avoid incrementing it after every major OS X
531         release.
532         (darwin_default_min_version): Avoid static memory buffer.
533
534 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
535
536         * tree.c (need_assembler_name_p): Store C++ type mangling only
537         for aggregates.
538
539 2014-09-13  Marek Polacek  <polacek@redhat.com>
540
541         * tree.c (protected_set_expr_location): Don't check whether T is
542         non-null here.
543
544 2014-09-12  DJ Delorie  <dj@redhat.com>
545
546         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
547         (extend_and_shift1_hipsi2): Likewise.
548         (extend_and_shift2_hipsi2): Likewise.
549
550 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
551
552         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
553         with NULL when dealing with an insn.
554         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
555         from rtx to rtx_insn *.
556         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
557         const_rtx to const rtx_insn *.
558         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
559
560 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
561
562         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
563         assert.
564
565 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
566
567         * target.def (libgcc_floating_mode_supported_p): New hook.
568         * targhooks.c (default_libgcc_floating_mode_supported_p): New
569         function.
570         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
571         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
572         (LIBGCC2_HAS_TF_MODE): Remove.
573         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
574         * doc/tm.texi: Regenerate.
575         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
576         machine mode.
577         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
578         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
579         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
580         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
581         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
582         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
583         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
584         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
585         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
586         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
587         function.
588         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
589         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
590         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
591         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
592         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
593         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
594         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
595         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
596         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
597         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
598         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
599         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
600         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
601         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
602         Remove.
603         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
604         New macro.
605         (ia64_libgcc_floating_mode_supported_p): New function.
606         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
607         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
608         (IA64_NO_LIBGCC_TFMODE): Define.
609         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
610         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
611         macro.
612         (pdp11_scalar_mode_supported_p): New function.
613         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
614         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
615
616 2014-09-12  Richard Biener  <rguenther@suse.de>
617
618         PR middle-end/63237
619         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
620
621 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
622
623         * tree.c (integer_each_onep): New function.
624         * tree.h (integer_each_onep): Declare it.
625         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
626         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
627         (X & 1) == 0 for vector and complex.
628
629 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
630
631         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
632         for A57.
633         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
634         cost to spilling from integer to FP registers.
635
636 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
637
638         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
639         move handling.
640         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
641         are now handled correctly.
642
643 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
644
645         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
646         handling of CALLER_SAVE_REGS and POINTER_REGS.
647
648 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
649
650         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
651         the number of hard registers.
652
653 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
654             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
655             Anna Tikhonova  <anna.tikhonova@intel.com>
656             Ilya Tocar  <ilya.tocar@intel.com>
657             Andrey Turetskiy  <andrey.turetskiy@intel.com>
658             Ilya Verbin  <ilya.verbin@intel.com>
659             Kirill Yukhin  <kirill.yukhin@intel.com>
660             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
661
662         * config/i386/sse.md
663         (define_mode_iterator VI48_AVX512VL): New.
664         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
665         "avx512f_vternlog<mode>_maskz" and update mode iterator.
666         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
667         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
668         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
669         "avx512f_vternlog<mode>_mask" and update mode iterator.
670         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
671         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
672         iterator.
673         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
674         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
675         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
676         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
677         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
678         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
679
680 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
681             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
682             Anna Tikhonova  <anna.tikhonova@intel.com>
683             Ilya Tocar  <ilya.tocar@intel.com>
684             Andrey Turetskiy  <andrey.turetskiy@intel.com>
685             Ilya Verbin  <ilya.verbin@intel.com>
686             Kirill Yukhin  <kirill.yukhin@intel.com>
687             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
688
689         * config/i386/sse.md (VI128_256): Delete.
690         (define_mode_iterator VI124_256): New.
691         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
692         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
693         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
694         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
695         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
696         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
697         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
698         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
699         iterator.
700         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
701         in presence of AVX-512.
702
703 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
704             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
705             Anna Tikhonova  <anna.tikhonova@intel.com>
706             Ilya Tocar  <ilya.tocar@intel.com>
707             Andrey Turetskiy  <andrey.turetskiy@intel.com>
708             Ilya Verbin  <ilya.verbin@intel.com>
709             Kirill Yukhin  <kirill.yukhin@intel.com>
710             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
711
712         * config/i386/sse.md
713         (define_expand "<avx512>_gathersi<mode>"): Rename from
714         "avx512f_gathersi<mode>".
715         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
716         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
717         (define_expand "<avx512>_gatherdi<mode>"): Rename from
718         "avx512f_gatherdi<mode>".
719         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
720         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
721         wide versions.
722         (define_expand "<avx512>_scattersi<mode>"): Rename from
723         "avx512f_scattersi<mode>".
724         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
725         (define_expand "<avx512>_scatterdi<mode>"): Rename from
726         "avx512f_scatterdi<mode>".
727         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
728
729 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
730
731         * ira.h (ira_finish_once): Delete.
732         * ira-int.h (target_ira_int::~target_ira_int): Declare.
733         (target_ira_int::free_ira_costs): Likewise.
734         (target_ira_int::free_register_move_costs): Likewise.
735         (ira_finish_costs_once): Delete.
736         * ira.c (free_register_move_costs): Replace with...
737         (target_ira_int::free_register_move_costs): ...this new function.
738         (target_ira_int::~target_ira_int): Define.
739         (ira_init): Call free_register_move_costs as a member function rather
740         than a global function.
741         (ira_finish_once): Delete.
742         * ira-costs.c (free_ira_costs): Replace with...
743         (target_ira_int::free_ira_costs): ...this new function.
744         (ira_init_costs): Call free_ira_costs as a member function rather
745         than a global function.
746         (ira_finish_costs_once): Delete.
747         * target-globals.c (target_globals::~target_globals): Call the
748         target_ira_int destructor.
749         * toplev.c: Include lra.h.
750         (finalize): Call lra_finish_once rather than ira_finish_once.
751
752 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
753
754         * common.opt (flto-odr-type-merging): New flag.
755         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
756         (types_same_for_odr): Likewise.
757         (odr_subtypes_equivalent_p): Likewise.
758         (add_type_duplicate): Do not walk type variants.
759         (register_odr_type): New function.
760         * ipa-utils.h (register_odr_type): Declare.
761         (odr_type_p): New function.
762         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
763         TYPE_DECLs
764         * doc/invoke.texi (-flto-odr-type-merging): Document.
765         * tree.c (need_assembler_name_p): Compute ODR names when asked
766         for it.
767         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
768
769 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
770
771         PR target/63228
772         * config/i386/i386.c (ix86_option_override_internal): Also turn
773         off OPTION_MASK_ABI_X32 for -m16.
774
775 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
776
777         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
778         GPR instead of P.
779
780 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
781
782         PR target/58757
783         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
784         Directly forward to __*_DENORM_MIN__.
785
786 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
787
788         * rtl.h (LABEL_REF_LABEL): New macro.
789
790         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
791         of XEXP (, 0), where we know that we have a LABEL_REF.
792         * cfgbuild.c (make_edges): Likewise.
793         (purge_dead_tablejump_edges): Likewise.
794         * cfgexpand.c (convert_debug_memory_address): Likewise.
795         * cfgrtl.c (patch_jump_insn): Likewise.
796         * combine.c (distribute_notes): Likewise.
797         * cse.c (hash_rtx_cb): Likewise.
798         (exp_equiv_p): Likewise.
799         (fold_rtx): Likewise.
800         (check_for_label_ref): Likewise.
801         * cselib.c (rtx_equal_for_cselib_1): Likewise.
802         (cselib_hash_rtx): Likewise.
803         * emit-rtl.c (mark_label_nuses): Likewise.
804         * explow.c (convert_memory_address_addr_space): Likewise.
805         * final.c (output_asm_label): Likewise.
806         (output_addr_const): Likewise.
807         * gcse.c (add_label_notes): Likewise.
808         * genconfig.c (walk_insn_part): Likewise.
809         * genrecog.c (validate_pattern): Likewise.
810         * ifcvt.c (cond_exec_get_condition): Likewise.
811         (noce_emit_store_flag): Likewise.
812         (noce_get_alt_condition): Likewise.
813         (noce_get_condition): Likewise.
814         * jump.c (maybe_propagate_label_ref): Likewise.
815         (mark_jump_label_1): Likewise.
816         (redirect_exp_1): Likewise.
817         (rtx_renumbered_equal_p): Likewise.
818         * lra-constraints.c (operands_match_p): Likewise.
819         * reload.c (operands_match_p): Likewise.
820         (find_reloads): Likewise.
821         * reload1.c (set_label_offsets): Likewise.
822         * reorg.c (get_branch_condition): Likewise.
823         * rtl.c (rtx_equal_p_cb): Likewise.
824         (rtx_equal_p): Likewise.
825         * rtlanal.c (reg_mentioned_p): Likewise.
826         (rtx_referenced_p): Likewise.
827         (get_condition): Likewise.
828         * sched-vis.c (print_value): Likewise.
829         * varasm.c (const_hash_1): Likewise.
830         (compare_constant): Likewise.
831         (const_rtx_hash_1): Likewise.
832         (output_constant_pool_1): Likewise.
833
834 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
835
836         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
837         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
838         instead of minus.
839         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
840         cr6_test_for_lt_reverse): Ditto.
841
842 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
843
844         PR c++/61489
845         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
846
847 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
848
849         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
850         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
851         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
852         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
853         Delete.
854
855         (aarch64_fold_builtin): Remove all reinterpret cases.
856
857         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
858
859         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
860
861         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
862         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
863         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
864         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
865         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
866         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
867         aarch64_reinterpretv2df<mode>): Delete.
868
869         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
870
871         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
872         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
873         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
874         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
875         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
876         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
877         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
878         vreinterpret_u32_f64): Use cast.
879
880         * config/aarch64/iterators.md (VD_RE): Delete.
881
882 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
883
884         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
885         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
886         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
887         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
888         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
889         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
890         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
891         Replace inline assembler with __aarch64_vset_lane_any.
892
893 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
894
895         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
896         types.
897         (vmull_high_lane_s32): Likewise.
898         (vmull_high_lane_u16): Likewise.
899         (vmull_high_lane_u32): Likewise.
900
901 2014-09-11  Jason Merrill  <jason@redhat.com>
902
903         PR c++/58678
904         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
905
906 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
907
908         PR target/63223
909         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
910         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
911         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
912
913 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
914             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
915             Anna Tikhonova  <anna.tikhonova@intel.com>
916             Ilya Tocar  <ilya.tocar@intel.com>
917             Andrey Turetskiy  <andrey.turetskiy@intel.com>
918             Ilya Verbin  <ilya.verbin@intel.com>
919             Kirill Yukhin  <kirill.yukhin@intel.com>
920             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
921
922         * config/i386/sse.md
923         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
924         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
925         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
926         New.
927         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
928         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
929         iterator.
930         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
931         New.
932         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
933         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
934         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
935         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
936         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
937         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
938         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
939         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
940         iterator.
941         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
942         New.
943         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
944         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
945         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
946
947 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
948
949         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
950         to access removed nodes.
951
952 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
953
954         PR tree-optimization/63186
955         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
956         (mark_nonssa_use): Likewise.
957         (verify_non_ssa_vars): Verify all header blocks for label
958         definitions.
959
960 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
961             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
962             Anna Tikhonova  <anna.tikhonova@intel.com>
963             Ilya Tocar  <ilya.tocar@intel.com>
964             Andrey Turetskiy  <andrey.turetskiy@intel.com>
965             Ilya Verbin  <ilya.verbin@intel.com>
966             Kirill Yukhin  <kirill.yukhin@intel.com>
967             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
968
969         * config/i386/sse.md
970         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
971         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
972         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
973         "<avx2_avx512f>_permvar<mode><mask_name>".
974         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
975         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
976         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
977         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
978         Ditto.
979         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
980         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
981         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
982         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
983
984 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
985
986         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
987         V2DF, V4SF, DF, and DI modes.
988         (vsx_fmav2df2): Likewise.
989         (vsx_float_fix_<mode>2): Likewise.
990         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
991
992 2014-09-10  Xinliang David Li  <davidxl@google.com>
993
994         PR target/63209
995         * config/arm/arm.md (movcond_addsi): Handle case where source
996         and target operands are the same.
997
998 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
999
1000         * final.c (this_is_asm_operands): Strengthen this variable from
1001         rtx to const rtx_insn *.
1002         * output.h (this_is_asm_operands): Likewise.
1003         * rtl-error.c (location_for_asm): Strengthen param "insn" from
1004         const_rtx to const rtx_insn *.
1005         (diagnostic_for_asm): Likewise.
1006         * rtl-error.h (error_for_asm): Likewise.
1007         (warning_for_asm): Likewise.
1008
1009 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
1010
1011         * genextract.c (print_header): When writing out insn_extract to
1012         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
1013         * recog.h (insn_extract): Strengthen the param from rtx to
1014         rtx_insn *.
1015
1016 2014-09-10  Mike Stump  <mikestump@comcast.net>
1017
1018         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
1019         8.6.1.
1020
1021 2014-09-10  Martin Jambor  <mjambor@suse.cz>
1022
1023         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
1024         (analyze): Do not set analyze flag if expand_thunk returns false;.
1025         (create_wrapper): Likewise.
1026         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
1027
1028 2014-09-10  Martin Jambor  <mjambor@suse.cz>
1029
1030         PR ipa/61654
1031         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
1032         new decl properly.  Analyze the new thunk if it is expanded.
1033
1034 2014-09-10  Andreas Schwab  <schwab@suse.de>
1035
1036         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
1037         [USED_FOR_TARGET]: Define.
1038
1039 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
1040
1041         * config/mips/mips.c (mips_secondary_reload_class): Handle
1042         regno < 0 case.
1043
1044 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
1045
1046         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
1047         assignment.
1048
1049 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
1050
1051         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
1052         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
1053         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
1054         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
1055         flag_delete_null_pointer_checks for them.
1056         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
1057         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
1058         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
1059         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
1060         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
1061         stmt's iterator.
1062         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
1063         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
1064         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
1065         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
1066         * doc/invoke.texi (-fsanitize=nonnull-attribute,
1067         -fsanitize=returns-nonnull-attribute): Document.
1068
1069         * ubsan.h (struct ubsan_mismatch_data): Removed.
1070         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
1071         * ubsan.c (ubsan_source_location): For unknown locations,
1072         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
1073         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
1074         Allow more than one location and arbitrary extra arguments passed
1075         in ... instead of through MISMATCH pointer.
1076         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
1077         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
1078         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
1079         callers.
1080
1081 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1082             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1083             Anna Tikhonova  <anna.tikhonova@intel.com>
1084             Ilya Tocar  <ilya.tocar@intel.com>
1085             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1086             Ilya Verbin  <ilya.verbin@intel.com>
1087             Kirill Yukhin  <kirill.yukhin@intel.com>
1088             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1089
1090         * config/i386/sse.md
1091         (define_mode_iterator VI48F): New.
1092         (define_insn "<avx512>_compress<mode>_mask"): Rename from
1093         "avx512f_compress<mode>_mask" and update mode iterator.
1094         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
1095         "avx512f_compressstore<mode>_mask" and update mode iterator.
1096         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
1097         "avx512f_expand<mode>_maskz" and update mode iterator.
1098         (define_insn "<avx512>_expand<mode>_mask"): Rename from
1099         "avx512f_expand<mode>_mask" and update mode iterator.
1100
1101 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1102             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1103             Anna Tikhonova  <anna.tikhonova@intel.com>
1104             Ilya Tocar  <ilya.tocar@intel.com>
1105             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1106             Ilya Verbin  <ilya.verbin@intel.com>
1107             Kirill Yukhin  <kirill.yukhin@intel.com>
1108             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1109
1110         * config/i386/i386.c
1111         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
1112         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
1113         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
1114         avx512dq_rangepv4sf_mask.
1115         * config/i386/sse.md
1116         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
1117         UNSPEC_RANGE.
1118         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
1119         (define_insn "reduces<mode>"): Ditto.
1120         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
1121         Ditto.
1122         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
1123         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
1124         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
1125
1126 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1127             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1128             Anna Tikhonova  <anna.tikhonova@intel.com>
1129             Ilya Tocar  <ilya.tocar@intel.com>
1130             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1131             Ilya Verbin  <ilya.verbin@intel.com>
1132             Kirill Yukhin  <kirill.yukhin@intel.com>
1133             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1134
1135         * config/i386/i386.c
1136         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
1137         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
1138         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
1139         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
1140         avx512vl_getmantv2df_mask.
1141         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
1142         avx512f_vgetmantv4sf_round.
1143         * config/i386/sse.md
1144         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
1145         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
1146         mode iterator.
1147         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
1148         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
1149         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
1150         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
1151         iterator..
1152         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
1153         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
1154         update mode iterator.
1155         (define_expand
1156         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
1157         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
1158         mode iterator.
1159         (define_insn
1160         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
1161         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
1162         update mode iterator.
1163         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
1164         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
1165         iterator..
1166         (define_insn
1167         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
1168         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
1169         mode iterator..
1170         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
1171         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
1172         update mode iterator.
1173         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
1174         "avx512f_getmant<mode><round_saeonly_name>".
1175
1176 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
1177
1178         PR ipa/63166
1179         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
1180
1181 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1182             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1183             Anna Tikhonova  <anna.tikhonova@intel.com>
1184             Ilya Tocar  <ilya.tocar@intel.com>
1185             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1186             Ilya Verbin  <ilya.verbin@intel.com>
1187             Kirill Yukhin  <kirill.yukhin@intel.com>
1188             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1189
1190         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
1191         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
1192         (define_mode_iterator FMAMODE_AVX512): New.
1193         (define_mode_iterator FMAMODE): Remove conditions.
1194         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
1195         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
1196         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
1197         mode iterator.
1198         (define_mode_iterator FMAMODE_NOVF512): Remove.
1199         (define_insn "*fma_fmadd_<mode>"): Rename from
1200         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
1201         FMAMODE mode iterator.
1202         (define_mode_iterator VF_SF_AVX512VL): New.
1203         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
1204         Use VF_SF_AVX512VL mode iterator.
1205         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
1206         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
1207         iterator.
1208         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
1209         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1210         iterator.
1211         (define_insn "*fma_fmsub_<mode>"): Rename from
1212         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
1213         FMAMODE mode iterator.
1214         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
1215         Use VF_SF_AVX512VL mode iterator.
1216         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
1217         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
1218         iterator.
1219         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
1220         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1221         iterator.
1222         (define_insn "*fma_fnmadd_<mode>"): Rename from
1223         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
1224         use FMAMODE mode iterator.
1225         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
1226         Use VF_SF_AVX512VL mode iterator.
1227         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
1228         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
1229         iterator.
1230         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
1231         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1232         iterator.
1233         (define_insn "*fma_fnmsub_<mode>"): Rename from
1234         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
1235         FMAMODE mode iterator.
1236         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
1237         Use VF_SF_AVX512VL mode iterator.
1238         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
1239         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
1240         iterator.
1241         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
1242         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1243         iterator.
1244         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
1245         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
1246         use VF_AVX512VL mode iterator.
1247         (define_insn "*fma_fmaddsub_<mode>"): Rename from
1248         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
1249         remove subst usage.
1250         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
1251         Use VF_SF_AVX512VL mode iterator.
1252         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
1253         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
1254         iterator.
1255         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
1256         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1257         iterator.
1258         (define_insn "*fma_fmsubadd_<mode>"): Rename from
1259         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
1260         remove usage of subst.
1261         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
1262         Use VF_SF_AVX512VL mode iterator.
1263         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
1264         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
1265         iterator.
1266         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
1267         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1268         iterator.
1269
1270 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
1271
1272         Revert r213751:
1273         * calls.c (precompute_arguments): Check
1274          promoted_for_signed_and_unsigned_p and set the promoted mode.
1275         (promoted_for_signed_and_unsigned_p): New function.
1276         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
1277         and set the promoted mode.
1278         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
1279         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
1280         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
1281
1282 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1283
1284         * opth-gen.awk: Generate mapping from cpp message reasons to the
1285         options that enable them.
1286         * doc/options.texi (CppReason): Document.
1287
1288 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1289
1290         * doc/invoke.texi (Wnormalized=): Update.
1291
1292 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
1293
1294         PR target/63195
1295         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
1296         operands.  Split off the constant operand alternative to ...
1297         (*bool<mode>3_imm): New.
1298
1299 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1300
1301         * rtl.h (single_set_2): Strengthen first param from const_rtx to
1302         const rtx_insn *, and move prototype to above...
1303         (single_set): ...this.  Convert this from a macro to an inline
1304         function, enforcing the requirement that the param is a const
1305         rtx_insn *.
1306         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
1307
1308         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
1309         Strengthen both params from rtx to rtx_insn *.
1310         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
1311         Likewise; introduce locals "producer_set", "consumer_set", using
1312         them in place of "producer" and "consumer" when dealing with SET
1313         rather than insn.
1314         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
1315         when invoking single_set in region guarded by INSN_P.
1316         (avr_out_bitop): Likewise.
1317         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
1318         region guarded by GET_CODE check, using methods to strengthen
1319         local "this_insn" from rtx to rtx_insn *, and for clarity.
1320         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
1321         Strengthen local "insn" from rtx to rtx_insn *.
1322         (define_insn_and_split "xload<mode>_A"): Likewise.
1323         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
1324         "insn".
1325         (find_load): Likewise for return type.
1326         (workaround_speculation): Likewise for both locals named
1327         "load_insn".
1328         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
1329         local "cc0_user".
1330         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
1331         for local "prev".
1332         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
1333         param 2.
1334         * config/h8300/h8300.c (notice_update_cc): Likewise.
1335         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
1336         "insn" and "dep_insn".
1337         (exact_store_load_dependency): Likewise for both params.
1338         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
1339         since this now clashes with inline function.  Instead, delay
1340         calling single_set until the point where its needed, and then
1341         assign the result to "compare_set" and rework the conditional that
1342         follows.
1343         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
1344         local "last" from rtx to rtx_insn *.
1345         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
1346         second param.
1347         (mips_store_data_bypass_p): Likewise for both params.
1348         * config/mips/mips.c (mips_load_store_insns): Likewise for second
1349         param.
1350         (mips_store_data_bypass_p): Likewise for both params.
1351         (mips_orphaned_high_part_p): Likewise for param "insn".
1352         * config/mn10300/mn10300.c (extract_bundle): Likewise.
1353         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
1354         Introduce local rtx "insn2_pat".
1355         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
1356         "ninsn".
1357         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
1358         Introduce local rtx "set", using it in place of "insn" for the
1359         result of single_set.  This appears to fix a bug, since the call
1360         to find_regno_note on a SET does nothing.
1361         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
1362         params from rtx to rtx_insn *.
1363         (set_to_load_agen): Likewise.
1364         * config/s390/s390.c (s390_label_align): Likewise for local
1365         "prev_insn".  Introduce new rtx locals "set" and "src", using
1366         them in place of "prev_insn" for the results of single_set
1367         and SET_SRC respectively.
1368         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
1369         Introduce new rtx local "set" using in place of "jump" for the
1370         result of single_set.  Use SET_SRC (set) rather than plain
1371         XEXP (set, 1).
1372         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
1373         rtx to rtx_insn *.
1374         (noncall_uses_reg): Likewise.
1375         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
1376         guarded by GET_CODE check, using its methods for clarity, and to
1377         enable strengthening local "this_insn" from rtx to rtx_insn *.
1378         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
1379         "insn" from rtx to rtx_insn *.
1380         (define_expand "umulhisi3"): Likewise.
1381         (define_expand "smulsi3_highpart"): Likewise.
1382         (define_expand "umulsi3_highpart"): Likewise.
1383         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
1384         local "after".  Replace GET_CODE check with a dyn_cast,
1385         introducing new local rtx_sequence * "seq", using insn method for
1386         typesafety.
1387
1388         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
1389         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
1390         place of "insn" once we're dealing with patterns rather than the
1391         input insn.
1392         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
1393         (scan_trace): Likewise for local "elt", updating lookups within
1394         sequence to use insn method rather than element method.
1395         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
1396         to rtx_insn *.
1397         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
1398         * ifcvt.c (noce_try_abs): Likewise for local "insn".
1399         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
1400         invoking single_set.
1401         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
1402         "insn" from rtx to rtx_insn *.
1403         (skip_usage_debug_insns): Likewise for return type, adding a
1404         checked cast.
1405         (check_secondary_memory_needed_p): Likewise for local "insn".
1406         (inherit_reload_reg): Likewise.
1407         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
1408         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
1409         checked casts.
1410         (store_data_bypass_p): Likewise for both params.
1411         (if_test_bypass_p): Likewise.
1412         * recog.h (store_data_bypass_p): Likewise for both params.
1413         (if_test_bypass_p): Likewise.
1414         * reload.c (find_equiv_reg): Likewise for local "where".
1415         * reorg.c (delete_jump): Likewise for param "insn".
1416         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
1417         to const rtx_insn *.
1418         * store-motion.c (replace_store_insn): Likewise for param "del".
1419         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
1420         and use its methods for clarity, and to strengthen local "del"
1421         from rtx to rtx_insn *.
1422         (build_store_vectors): Use insn method of "st" when calling
1423         replace_store_insn for typesafety and clarity.
1424
1425 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1426
1427         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
1428         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
1429         on how to make it legal in future.
1430
1431 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1432
1433         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
1434         to rtx_insn *.
1435         (restinsn): Likewise.
1436         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
1437         Likewise for param.
1438         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
1439         Likewise.
1440         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
1441         first param.
1442         (arc_hazard): Likewise for both params.
1443         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
1444         checked casts to rtx_sequence * and uses of the insn method for
1445         type-safety.
1446         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
1447         (arc_adjust_insn_length): Likewise for param "insn".
1448         (struct insn_length_parameters_s): Likewise for first param of
1449         "get_variants" callback field.
1450         (arc_get_insn_variants): Likewise for first param and local
1451         "inner".  Replace a check of GET_CODE with a dyn_cast to
1452         rtx_sequence *, using methods for type-safety and clarity.
1453         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
1454         rtx_sequence * and uses of the insn method for type-safety when
1455         invoking arc_adjust_insn_length.
1456         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
1457         for param.
1458         (arm_address_offset_is_imm): Likewise.
1459         (struct tune_params): Likewise for params 1 and 3 of the
1460         "sched_adjust_cost" callback field.
1461         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
1462         params 1 and 3 ("insn" and "dep").
1463         (xscale_sched_adjust_cost): Likewise.
1464         (fa726te_sched_adjust_cost): Likewise.
1465         (cortexa7_older_only): Likewise for param "insn".
1466         (cortexa7_younger): Likewise.
1467         (arm_attr_length_move_neon): Likewise.
1468         (arm_address_offset_is_imm): Likewise.
1469         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
1470         * config/avr/avr.c (avr_notice_update_cc): Likewise.
1471         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
1472         (workaround_speculation): Likewise for local "last_condjump".
1473         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
1474         (shadow_or_blockage_p): Likewise.
1475         (get_unit_reqs): Likewise.
1476         (get_unit_operand_masks): Likewise.
1477         (c6x_registers_update): Likewise.
1478         (returning_call_p): Likewise.
1479         (can_use_callp): Likewise.
1480         (convert_to_callp): Likewise.
1481         (find_last_same_clock): Likwise for local "t".
1482         (reorg_split_calls): Likewise for local "shadow".
1483         (hwloop_pattern_reg): Likewise for param "insn".
1484         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
1485         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
1486         (frv_extract_membar): Likewise.
1487         (frv_optimize_membar_local): Strengthen param "last_membar" from
1488         rtx * to rtx_insn **.
1489         (frv_optimize_membar_global): Strengthen param "membar" from rtx
1490         to rtx_insn *.
1491         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
1492         to rtx_insn **.
1493         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
1494         both params from rtx to rtx_insn *.
1495         (ia64_ld_address_bypass_p): Likewise.
1496         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
1497         "insn".
1498         (ia64_safe_type): Likewise.
1499         (group_barrier_needed): Likewise.
1500         (safe_group_barrier_needed): Likewise.
1501         (ia64_single_set): Likewise.
1502         (is_load_p): Likewise.
1503         (record_memory_reference): Likewise.
1504         (get_mode_no_for_insn): Likewise.
1505         (important_for_bundling_p): Likewise.
1506         (unknown_for_bundling_p): Likewise.
1507         (ia64_st_address_bypass_p): Likewise for both params.
1508         (ia64_ld_address_bypass_p): Likewise.
1509         (expand_vselect): Introduce new local rtx_insn * "insn", using it
1510         in place of rtx "x" after the emit_insn call.
1511         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
1512         Strengthen param from rtx to rtx_insn *.
1513         (ix86_agi_dependent): Likewise for both params.
1514         (ix86_attr_length_immediate_default): Likewise for param 1.
1515         (ix86_attr_length_address_default): Likewise for param.
1516         (ix86_attr_length_vex_default): Likewise for param 1.
1517         * config/i386/i386.c (ix86_attr_length_immediate_default):
1518         Likewise for param "insn".
1519         (ix86_attr_length_address_default): Likewise.
1520         (ix86_attr_length_vex_default): Likewise.
1521         (ix86_agi_dependent): Likewise for both params.
1522         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
1523         (vselect_insn): Likewise for this variable.
1524         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
1525         for param 1.
1526         (m68k_sched_attr_opy_type): Likewise.
1527         * config/m68k/m68k.c (sched_get_operand): Likewise.
1528         (sched_attr_op_type): Likewise.
1529         (m68k_sched_attr_opx_type): Likewise.
1530         (m68k_sched_attr_opy_type): Likewise.
1531         (sched_get_reg_operand): Likewise.
1532         (sched_get_mem_operand): Likewise.
1533         (m68k_sched_address_bypass_p): Likewise for both params.
1534         (sched_get_indexed_address_scale): Likewise.
1535         (m68k_sched_indexed_address_bypass_p): Likewise.
1536         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
1537         (m68k_sched_indexed_address_bypass_p): Likewise.
1538         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
1539         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
1540         removing another.
1541         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
1542         params from rtx to rtx_insn *.
1543         (mips_fmadd_bypass): Likewise.
1544         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
1545         (mips_linked_madd_p): Likewise.
1546         (mips_macc_chains_last_hilo): Likewise for this variable.
1547         (mips_macc_chains_record): Likewise for param.
1548         (vr4130_last_insn): Likewise for this variable.
1549         (vr4130_swap_insns_p): Likewise for both params.
1550         (mips_ls2_variable_issue): Likewise for param.
1551         (mips_need_noat_wrapper_p): Likewise for param "insn".
1552         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
1553         in place of "x" after the emit_insn.
1554         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
1555         params from rtx to rtx_insn *.
1556         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
1557         (pa_combine_instructions): Introduce local "par" for result of
1558         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
1559         to make_insn_raw.
1560         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
1561         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
1562         (rl78_alloc_physical_registers_op1): Likewise.
1563         (rl78_alloc_physical_registers_op2): Likewise.
1564         (rl78_alloc_physical_registers_ro1): Likewise.
1565         (rl78_alloc_physical_registers_cmp): Likewise.
1566         (rl78_alloc_physical_registers_umul): Likewise.
1567         (rl78_alloc_address_registers_macax): Likewise.
1568         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
1569         * config/s390/predicates.md (execute_operation): Likewise for
1570         local "insn".
1571         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
1572         params.
1573         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
1574         (addr_generation_dependency_p): Likewise for param "insn".
1575         (s390_agen_dep_p): Likewise for both params.
1576         (s390_fpload_toreg): Likewise for param "insn".
1577         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
1578         * config/sh/sh.c (sh_loop_align): Likewise for param and local
1579         "next".
1580         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
1581         * config/sh/sh_treg_combine.cc
1582         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
1583         and local "i".
1584         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
1585         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
1586         "and_insn", "load", "shift".
1587         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
1588         "insn".
1589         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
1590         for XEXP (note, 0) of the REG_CC_SETTER note.
1591         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
1592         rtx_insn *, eliminating a checked cast made redundant by this.
1593         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
1594         to rtx_insn *.
1595         * genattr.c (main): When writing out the prototype to
1596         const_num_delay_slots, strengthen the param from rtx to
1597         rtx_insn *.
1598         * genattrtab.c (write_const_num_delay_slots): Likewise when
1599         writing out the implementation of const_num_delay_slots.
1600         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
1601         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
1602         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
1603         favor of new rtx locals "src" and "set" and new local rtx_insn *
1604         "insn" and "seq".
1605         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
1606         to rtx_insn *.
1607         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
1608         locals "cond", "if_then_else", "set" and new rtx_insn * locals
1609         "insn" and "seq".
1610         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
1611         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
1612         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
1613         the top-level scope, replacing with new more tightly-scoped rtx
1614         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
1615         "new_insn", "copy_of_insn_b", and make local rtx "set" more
1616         tightly-scoped.
1617         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
1618         rtx_insn *.
1619         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
1620         "move_insn".
1621         (ira_setup_alts): Likewise for param "insn".
1622         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
1623         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
1624         and an rtx_insn *.
1625         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
1626         new more-tightly scoped rtx locals "add3_insn", "insn",
1627         "add2_insn" and rtx_insn * "move_insn".
1628         * postreload-gcse.c (eliminate_partially_redundant_load): Add
1629         checked cast on result of gen_move_insn when invoking
1630         extract_insn.
1631         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
1632         rtx_insn *.
1633         (verify_changes): Add a checked cast on "object" when invoking
1634         insn_invalid_p.
1635         (extract_insn_cached): Strengthen param "insn" from rtx to
1636         rtx_insn *.
1637         (extract_constrain_insn_cached): Likewise.
1638         (extract_insn): Likewise.
1639         * recog.h (insn_invalid_p): Likewise for param 1.
1640         (recog_memoized): Likewise for param.
1641         (extract_insn): Likewise.
1642         (extract_constrain_insn_cached): Likewise.
1643         (extract_insn_cached): Likewise.
1644         * reload.c (can_reload_into): Likewise for local "test_insn".
1645         * reload.h (cleanup_subreg_operands): Likewise for param.
1646         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
1647         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
1648         result of emit_insn.  Remove a checked cast made redundant by this
1649         change.
1650         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
1651         rtx to rtx_insn *.
1652         * sel-sched.c (get_reg_class): Likewise.
1653
1654 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1655         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1656
1657          * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
1658          * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
1659         Define.
1660         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
1661
1662 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1663
1664         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
1665         const rtx_insn *, and from rtx to rtx_insn * for the other
1666         overloaded variant.
1667         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
1668         INSN_LOCATION, since we know INSN_P holds.
1669         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
1670         (insn_file): Likewise.
1671         (insn_scope): Likewise.
1672         (insn_location): Likewise.
1673
1674         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
1675         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
1676         for the result of gen_load_const_gp.
1677         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
1678         param from rtx to rtx_insn *.
1679         * config/rs6000/rs6000.c (output_call): Likewise.
1680         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
1681         introducing a checked cast to rtx_sequence * and use of the insn
1682         method.
1683         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
1684         from rtx to rtx_insn *.
1685         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
1686         (insn_line): Likewise.
1687         (insn_file): Likewise.
1688         (insn_location): Likewise.
1689         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
1690         from rtx to rtx_insn *.
1691         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
1692         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
1693         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
1694         via a checked cast.
1695         * reorg.c (relax_delay_slots): Strengthen locals named "after"
1696         from rtx to rtx_insn *; use methods of "pat" for type-safety.
1697
1698 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1699
1700         * combine.c (try_combine): Eliminate checked cast on result of
1701         gen_rtx_INSN.
1702         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
1703         autogenerated one by strengthening the return type and params 2 and 3
1704         from rtx to rtx_insn *, and by naming the params.
1705         * gengenrtl.c (special_rtx): Add INSN to those that are
1706         special-cased.
1707         * rtl.h (gen_rtx_INSN): New prototype.
1708
1709 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1710
1711         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
1712         than NULL_RTX.
1713         (no_equiv): Likewise.
1714         (update_equiv_regs): Likewise.
1715         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
1716         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
1717         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
1718         clarity.
1719         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
1720         from rtx to rtx_insn_list *.
1721         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
1722         rtx_insn_list * and use methods for clarity and typesafety.
1723         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
1724         "list".
1725         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
1726         redundant check on INSN_P (insns): this cannot hold, as "insns" is
1727         an INSN_LIST, not an insn.
1728         (reverse_equiv_p): Strengthen local "insns" from rtx to
1729         rtx_insn_list * and use methods for clarity and typesafety.
1730         (contains_reloaded_insn_p): Likewise for local "list".
1731
1732 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
1733
1734         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
1735         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
1736         (arm_builtin_vectorized_function): Likewise.
1737         * config/arm/arm_neon_builtins.def: New macro for copysignf.
1738         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
1739
1740 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
1741
1742         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
1743         * builtins.h (default_target_builtins): Likewise.
1744         * gcse.h (default_target_gcse): Likewise.
1745         * target-globals.h (target_globals): Add a destructor.  Convert
1746         void-pointer fields back to their real type and change from
1747         GTY((atomic)) to GTY((skip)).
1748         (restore_target_globals): Remove casts accordingly.
1749         * target-globals.c (save_target_globals): Use XCNEW rather than
1750         ggc_internal_cleared_alloc to allocate non-GC structures.
1751         Use ggc_cleared_alloc to allocate the target_globals structure
1752         itself.
1753         (target_globals::~target_globals): Define.
1754
1755 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1756
1757         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
1758         mnemonic instead of fldmfdd.
1759         * config/arm/arm.c (vfp_output_fstmd): Rename to...
1760         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
1761         Output vpush when address register is SP.
1762         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
1763         (vfp_output_vstmd): ... This.
1764         * config/arm/vfp.md (push_multi_vfp): Update call to
1765         vfp_output_vstmd.
1766
1767 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1768
1769         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
1770
1771 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1772
1773         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
1774         (*sqrtdf2_vfp): Likewise.
1775         (*cmpsf_vfp): Likewise.
1776         (*cmpsf_trap_vfp): Likewise.
1777         (*cmpdf_vfp): Likewise.
1778         (*cmpdf_trap_vfp): Likewise.
1779
1780 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1781
1782         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
1783         (*truncdfsf2_vfp): Likewise.
1784         (*truncsisf2_vfp): Likewise.
1785         (*truncsidf2_vfp): Likewise.
1786         (fixuns_truncsfsi2): Likewise.
1787         (fixuns_truncdfsi2): Likewise.
1788         (*floatsisf2_vfp): Likewise.
1789         (*floatsidf2_vfp): Likewise.
1790         (floatunssisf2): Likewise.
1791         (floatunssidf2): Likewise.
1792
1793 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1794
1795         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
1796         (*muldf3_vfp): Likewise.
1797         (*mulsf3negsf_vfp): Likewise.
1798         (*muldf3negdf_vfp): Likewise.
1799         (*mulsf3addsf_vfp): Likewise.
1800         (*muldf3adddf_vfp): Likewise.
1801         (*mulsf3subsf_vfp): Likewise.
1802         (*muldf3subdf_vfp): Likewise.
1803         (*mulsf3negsfaddsf_vfp): Likewise.
1804         (*fmuldf3negdfadddf_vfp): Likewise.
1805         (*mulsf3negsfsubsf_vfp): Likewise.
1806         (*muldf3negdfsubdf_vfp): Likewise.
1807
1808 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1809
1810         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
1811         (*absdf2_vfp): Likewise.
1812         (*negsf2_vfp): Likewise.
1813         (*negdf2_vfp): Likewise.
1814         (*addsf3_vfp): Likewise.
1815         (*adddf3_vfp): Likewise.
1816         (*subsf3_vfp): Likewise.
1817         (*subdf3_vfp): Likewise.
1818         (*divsf3_vfp): Likewise.
1819         (*divdf3_vfp): Likewise.
1820
1821 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1822
1823         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
1824         multiple.
1825         (arm_print_operand): Don't convert real values to decimal
1826         representation in default case.
1827         (fp_immediate_constant): Delete.
1828         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
1829         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
1830         syntax.
1831         (*thumb2_movsi_vfp): Likewise.
1832         (*movdi_vfp): Likewise.
1833         (*movdi_vfp_cortexa8): Likewise.
1834         (*movhf_vfp_neon): Likewise.
1835         (*movhf_vfp): Likewise.
1836         (*movsf_vfp): Likewise.
1837         (*thumb2_movsf_vfp): Likewise.
1838         (*movdf_vfp): Likewise.
1839         (*thumb2_movdf_vfp): Likewise.
1840         (*movsfcc_vfp): Likewise.
1841         (*thumb2_movsfcc_vfp): Likewise.
1842         (*movdfcc_vfp): Likewise.
1843         (*thumb2_movdfcc_vfp): Likewise.
1844
1845 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
1846
1847         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
1848         (-mtune): Likewise.
1849         (-mcpu): Likewise.
1850
1851 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1852
1853         PR target/61749
1854         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
1855         Use qualifier_immediate for last operand.  Rename to...
1856         (aarch64_types_ternop_lane_qualifiers): ... This.
1857         (TYPES_QUADOP): Rename to...
1858         (TYPES_TERNOP_LANE): ... This.
1859         (aarch64_simd_expand_args): Return const0_rtx when encountering user
1860         error.  Change return of 0 to return of NULL_RTX.
1861         (aarch64_crc32_expand_builtin): Likewise.
1862         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
1863         ICE when expanding unknown builtin.
1864         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
1865         TERNOP_LANE qualifiers.
1866         (sqdmlsl_lane): Likewise.
1867         (sqdmlal_laneq): Likewise.
1868         (sqdmlsl_laneq): Likewise.
1869         (sqdmlal2_lane): Likewise.
1870         (sqdmlsl2_lane): Likewise.
1871         (sqdmlal2_laneq): Likewise.
1872         (sqdmlsl2_laneq): Likewise.
1873
1874 2014-09-09  Nick Clifton  <nickc@redhat.com>
1875
1876         * doc/invoke.texi (Optimization Options): Add missing @gol to the
1877         end of a line.
1878         (S/390 and zSeries Options): Remove superfluous word from the
1879         description of the -mhotpatch option.
1880
1881 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
1882
1883         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
1884         * ira.c: #include "shrink-wrap.h"
1885         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
1886         * ifcvt.c: #include "shrink-wrap.h"
1887         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
1888
1889 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
1890
1891         * common/config/picochip/picochip-common.c: Remove.
1892         * config.gcc: Remove support for picochip.
1893         * config/picochip/constraints.md: Remove.
1894         * config/picochip/dfa_space.md: Remove.
1895         * config/picochip/dfa_speed.md: Remove.
1896         * config/picochip/picochip-protos.h: Remove.
1897         * config/picochip/picochip.c: Remove.
1898         * config/picochip/picochip.h: Remove.
1899         * config/picochip/picochip.md: Remove.
1900         * config/picochip/picochip.opt: Remove.
1901         * config/picochip/predicates.md: Remove.
1902         * config/picochip/t-picochip: Remove.
1903         * doc/md.texi: Don't document picochi.
1904
1905 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
1906
1907         * basic-block.h (control_flow_insn_p): Strengthen param from
1908         const_rtx to const rtx_insn *.
1909         * cfgbuild.c (control_flow_insn_p): Likewise.
1910
1911 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
1912
1913         * gcse.c (modify_mem_list): Strengthen this variable from
1914         vec<rtx> * to vec<rtx_insn *> *.
1915         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
1916         vec<rtx_insn *>.
1917         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
1918         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
1919         (record_last_mem_set_info): Strengthen param "insn" from rtx to
1920         rtx_insn *.
1921         (record_last_set_info): Likewise for local "last_set_insn".
1922
1923 2014-09-08  DJ Delorie  <dj@redhat.com>
1924
1925         * doc/invoke.texi (MSP430 Options): Add -minrt.
1926
1927 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1928
1929         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
1930         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
1931         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
1932         handling SH_SPLAT.
1933         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
1934         of extracted lane.
1935         (adjust_splat): New function.
1936         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
1937         (dump_swap_insn_table): Add case for SH_SPLAT.
1938
1939 2014-09-08  Richard Biener  <rguenther@suse.de>
1940
1941         PR ipa/63196
1942         * tree-inline.c (copy_loops): The source loop header should
1943         always be non-NULL.
1944         (tree_function_versioning): If loops need fixup after removing
1945         unreachable blocks fix them.
1946         * omp-low.c (simd_clone_adjust): Do not add incr block to
1947         loop under construction.
1948
1949 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
1950
1951         * config/aarch64/aarch64-builtins.c
1952         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
1953
1954 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
1955
1956         * config/i386/cygming.h (TF_SIZE): Remove.
1957         * config/i386/darwin.h (TF_SIZE): Remove.
1958         * config/i386/dragonfly.h (TF_SIZE): Remove.
1959         * config/i386/freebsd.h (TF_SIZE): Remove.
1960         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
1961         * config/i386/openbsdelf.h (TF_SIZE): Remove.
1962         * config/i386/sol2.h (TF_SIZE): Remove.
1963         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
1964         * config/ia64/linux.h (TF_SIZE): Remove.
1965         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
1966         * doc/tm.texi: Regenerate.
1967         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
1968
1969 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
1970
1971         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
1972         Remove.
1973         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
1974         Remove.
1975         * doc/tm.texi: Regenerate.
1976         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
1977         Poison.
1978         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
1979         * config/cris/cris.h (__make_dp): Remove.
1980
1981 2014-09-08  Richard Biener  <rguenther@suse.de>
1982
1983         PR bootstrap/63204
1984         * cfgloop.c (mark_loop_for_removal): Track former header
1985         unconditionally.
1986         * cfgloop.h (struct loop): Add former_header member unconditionally.
1987         * loop-init.c (fix_loop_structure): Enable bogus loop removal
1988         diagnostic unconditionally.
1989
1990 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
1991
1992         PR target/63190
1993         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
1994         constraint for operand0 and remove write only modifier from operand3.
1995
1996 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
1997
1998         PR rtl-optimization/62208
1999         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
2000         rather than const0_rtx in eq/ne-xor simplifications.
2001
2002 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
2003
2004         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
2005         (arc_output_mi_thunk): Likewise.
2006
2007         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
2008         arguments to silence bogus warning.
2009
2010 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
2011
2012         PR middle-end/63171
2013         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
2014
2015 2014-09-06  Tom de Vries  <tom@codesourcery.com>
2016
2017         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
2018         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
2019         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
2020
2021 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
2022
2023         PR target/63188
2024         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
2025         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
2026
2027 2014-09-05  Easwaran Raman  <eraman@google.com>
2028
2029         PR rtl-optimization/62146
2030         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
2031         hoisted instruction unconditional.
2032
2033 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
2034
2035         PR target/63187
2036         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
2037         Do not allow any_mask_operand for operands[2].
2038         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
2039
2040 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2041
2042         * config/arc/arc.c (arc_print_operand): Use insn method of
2043         final_sequence for type-safety.
2044         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
2045         "insn" from rtx to rtx_insn *.
2046         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
2047         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
2048         Likewise for locals "branch", "label".
2049         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
2050         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
2051         (same_cmp_following_p): Likewise for locals "i2", "i3".
2052         * config/sh/sh_optimize_sett_clrt.cc
2053         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
2054         param "cbranch_insn".
2055         * function.c (convert_jumps_to_returns): Likewis for local "jump".
2056         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
2057         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
2058         const rtx_insn *.
2059         (condjump_p): Likewise.
2060         (condjump_in_parallel_p): Likewise.
2061         (pc_set): Likewise.
2062         (any_uncondjump_p): Likewise.
2063         (any_condjump_p): Likewise.
2064         (condjump_label): Likewise.
2065         (returnjump_p): Strengthen param "insn" from rtx to
2066         const rtx_insn *.
2067         (onlyjump_p): Strengthen param "insn" from const_rtx to
2068         const rtx_insn *.
2069         (jump_to_label_p): Likewise.
2070         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
2071         (invert_jump): Likewise.
2072         * reorg.c (simplejump_or_return_p): Add checked cast when calling
2073         simplejump_p.
2074         (get_jump_flags): Strengthen param "insn" from rtx to
2075         const rtx_insn *.
2076         (get_branch_condition): Likewise.
2077         (condition_dominates_p): Likewise.
2078         (make_return_insns): Move declaration of local "pat" earlier, to
2079         after we've handled NONJUMP_INSN_P and non-sequences, using its
2080         methods to simplify the code and for type-safety.
2081         * rtl.h (find_constant_src): Strengthen param from const_rtx to
2082         const rtx_insn *.
2083         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
2084         (condjump_p): Strengthen param from const_rtx to
2085         const rtx_insn *.
2086         (any_condjump_p): Likewise.
2087         (any_uncondjump_p): Likewise.
2088         (pc_set): Likewise.
2089         (condjump_label): Likewise.
2090         (simplejump_p): Likewise.
2091         (returnjump_p): Likewise.
2092         (onlyjump_p): Likewise.
2093         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
2094         (invert_jump): Likewise.
2095         (condjump_in_parallel_p): Strengthen param from const_rtx to
2096         const rtx_insn *.
2097         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
2098         to const rtx_insn *.
2099         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
2100         to const rtx_insn *.
2101         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
2102
2103 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2104
2105         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
2106         above the conditional, and convert the check on GET_CODE to a
2107         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
2108         the conditional.  Simplify the conditional by using methods of
2109         "trial_seq".
2110
2111 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2112
2113         * haifa-sched.c (check_clobbered_conditions): Strengthen local
2114         "link" from rtx to rtx_insn_list *, and use its methods for
2115         clarity and type-safety.
2116         (toggle_cancelled_flags): Likewise.
2117         (restore_last_backtrack_point): Likewise.
2118         (queue_to_ready): Use insn method of "link" in one place.
2119         (schedule_block): Strengthen local "link" from rtx to
2120         rtx_insn_list *, and use its methods for clarity and type-safety.
2121
2122 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2123
2124         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
2125         param "insn" from const_rtx to const rtx_insn *.
2126         (sched_get_reverse_condition_uncached): Likewise.
2127         (sched_get_condition_with_rev): Likewise.
2128         (sched_has_condition_p): Likewise.
2129         (sched_insns_conditions_mutex_p): Likewise for both params.
2130         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
2131         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
2132         (setup_insn_reg_uses): Move local "list" to be more tightly
2133         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
2134         its methods for clarity and type-safety.
2135         (sched_analyze_1): Strengthen local "pending" from rtx to
2136         rtx_insn_list *, and local "pending_mem" from rtx to
2137         rtx_expr_list *.  Use methods of each for clarity and type-safety.
2138         (sched_analyze_2): Likewise.
2139         (sched_analyze_insn): Likewise.
2140
2141         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
2142         param from const_rtx to const rtx_insn *.
2143         (sched_insns_conditions_mutex_p): Likewise for both params.
2144         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
2145         param.
2146
2147         * system.h (CONST_CAST_RTX_INSN): New macro.
2148
2149 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2150
2151         * recog.c (peep2_attempt): Strengthen return type from rtx to
2152         rtx_insn *.
2153         (peep2_update_life): Likewise for params "last", "prev", removing
2154         a checked cast made redundant by this.
2155         (peephole2_optimize): Likewise for local "last".
2156
2157 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2158
2159         * basic-block.h (set_block_for_insn): Eliminate this macro in
2160         favor of...
2161         * rtl.h (set_block_for_insn): New inline function, imposing the
2162         requirement that the "insn" param is an rtx_insn *.
2163
2164 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2165
2166         * caller-save.c (setup_save_areas): Strengthen local "insn" from
2167         rtx to rtx_insn *.
2168         * final.c (get_call_reg_set_usage): Likewise for first param,
2169         eliminating a checked cast.
2170         * regs.h (get_call_reg_set_usage): Likewise for first param.
2171         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
2172         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
2173         cast, replacing references to "x" with "call_insn" where
2174         appropriate.
2175         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
2176         rtx_insn *, adding a checked cast.
2177
2178 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2179
2180         * output.h (final_scan_insn): Strengthen first param from rtx to
2181         rtx_insn *.
2182
2183         * final.c (final_scan_insn): Likewise, renaming it back from
2184         "uncast_insn" to "insn", eliminating the checked cast.
2185
2186         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
2187         "vec" with an rtx_sequence * "seq", taking a copy of
2188         "final_sequence", and using methods of "seq" for clarity, and for
2189         type-safety in the calls to final_scan_insn.
2190         * config/mips/mips.c (mips_output_conditional_branch): Use methods
2191         of "final_sequence" for clarity, and for type-safety in the call to
2192         final_scan_insn.
2193         * config/sh/sh.c (print_slot): Strengthen param from rtx to
2194         rtx_sequence * and rename from "insn" to "seq".
2195
2196 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2197
2198         * jump.c (delete_related_insns): Introduce a new local "table" by
2199         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
2200         get_labels method of "table" to simplify access to the labels in
2201         the jump table.
2202
2203 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2204
2205         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
2206         f_minmaxs, f_minmaxd types.
2207
2208 2014-09-05  Richard Biener  <rguenther@suse.de>
2209
2210         * cfgloop.c (mark_loop_for_removal): Record former header
2211         when ENABLE_CHECKING.
2212         * cfgloop.h (strut loop): Add former_header member when
2213         ENABLE_CHECKING.
2214         * loop-init.c (fix_loop_structure): Sanity check loops
2215         marked for removal if they re-appeared.
2216
2217 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2218
2219         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
2220         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
2221
2222         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
2223         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
2224         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
2225         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
2226         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
2227         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
2228         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
2229         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
2230         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
2231         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
2232         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
2233         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
2234         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
2235         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
2236         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
2237         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
2238         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
2239         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
2240         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
2241         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
2242         with int{32,16,8}_t.
2243
2244 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2245
2246         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
2247         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
2248         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
2249         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
2250         Remove temporary __asm__ and reimplement.
2251
2252 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2253
2254         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
2255         handling cmge, cmgt, cmeq, cmtst.
2256
2257         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
2258         cmlt, cmgeu, cmgtu, cmtst): Remove.
2259
2260         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
2261         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
2262         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
2263         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
2264
2265 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2266
2267         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
2268         TYPES_TST): Define.
2269         (aarch64_fold_builtin): Update pattern for cmtst.
2270
2271         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
2272         Declare.
2273
2274         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
2275
2276         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
2277         Switch operands, separate out more cases, refactor.
2278
2279         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
2280
2281         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
2282         argument; rename old version to...
2283         (aarch64_const_vec_all_same_in_range_p): ...this.
2284         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
2285
2286         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
2287
2288 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2289
2290         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
2291         Remove qualifier_const_pointer, update comment.
2292
2293 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2294
2295         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
2296
2297 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2298
2299         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
2300         varargs with pointer parameter.
2301         (aarch64_simd_expand_builtin): pass pointer into previous.
2302
2303 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2304
2305         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
2306         alus_ext.
2307
2308 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2309
2310         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
2311         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
2312         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
2313         Replace temporary asm with call to builtin.
2314         (vrbit_p8, vrbitq_p8): New functions.
2315
2316 2014-09-05  Richard Biener  <rguenther@suse.de>
2317
2318         * cfgloop.c (mark_loop_for_removal): New function.
2319         * cfgloop.h (mark_loop_for_removal): Declare.
2320         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
2321         (merge_blocks): Likewise.
2322         (duplicate_block): Likewise.
2323         * except.c (sjlj_emit_dispatch_table): Likewise.
2324         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
2325         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
2326         (thread_through_loop_header): Likewise.
2327
2328 2014-09-05  Richard Biener  <rguenther@suse.de>
2329
2330         PR middle-end/63148
2331         * fold-const.c (try_move_mult_to_index): Remove.
2332         (fold_binary_loc): Do not call it.
2333         * tree-data-ref.c (dr_analyze_indices): Strip conversions
2334         from the base object again.
2335
2336 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
2337
2338         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
2339         DImode.
2340
2341 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
2342
2343         PR target/55701
2344         * config/arm/arm.md (setmem): New pattern.
2345         * config/arm/arm-protos.h (struct tune_params): New fields.
2346         (arm_gen_setmem): New prototype.
2347         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
2348         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
2349         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
2350         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
2351         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
2352         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
2353         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
2354         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
2355         (arm_const_inline_cost): New function.
2356         (arm_block_set_max_insns): New function.
2357         (arm_block_set_non_vect_profit_p): New function.
2358         (arm_block_set_vect_profit_p): New function.
2359         (arm_block_set_unaligned_vect): New function.
2360         (arm_block_set_aligned_vect): New function.
2361         (arm_block_set_unaligned_non_vect): New function.
2362         (arm_block_set_aligned_non_vect): New function.
2363         (arm_block_set_vect, arm_gen_setmem): New functions.
2364
2365 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
2366
2367         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
2368
2369 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
2370
2371         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
2372
2373 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2374
2375         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
2376         an rtx.
2377         * valtrack.h: Adjust.
2378
2379 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2380
2381         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
2382         an rtx.
2383         (emit_jump_insn_before_noloc): Likewise.
2384         (emit_call_insn_before_noloc): Likewise.
2385         (emit_label_before): Likewise.
2386         (emit_label_after): Likewise.
2387         (emit_insn_before_setloc): Likewise.
2388         (emit_jump_insn_before_setloc): Likewise.
2389         (emit_call_insn_before_setloc): Likewise.
2390         (emit_call_insn_before): Likewise.
2391         * rtl.h: Adjust.
2392
2393 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2394
2395         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
2396         rtx_insn *, eliminating a checked cast.
2397
2398 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2399
2400         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
2401         const_rtx to const rtx_insn *.
2402         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
2403         cast.
2404
2405 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2406
2407         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
2408         fixup_args_size_notes.
2409         * expr.c (fixup_args_size_notes): Strengthen first two params from
2410         rtx to rtx_insn *, eliminating a checked cast.
2411         * rtl.h (fixup_args_size_notes): Strengthen first two params from
2412         rtx to rtx_insn *.
2413
2414 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2415
2416         * haifa-sched.c (get_ready_element): Strengthen return type from
2417         rtx to rtx_insn *.
2418         * sched-int.h (get_ready_element): Likewise.
2419
2420 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
2421
2422         PR target/63165
2423         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
2424         indexed_or_indirect_operand instead of memory_operand.
2425         (floatsi<mode>2_lfiwzx_mem): Ditto.
2426
2427 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2428
2429         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
2430         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
2431         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
2432
2433 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2434
2435         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
2436         rtx.
2437         (get_last_nonnote_insn): Likewise.
2438         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
2439         * resource.c (find_basic_block): Likewise.
2440         * rtl.h: Adjust.
2441         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
2442         const_rtx.
2443
2444 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
2445
2446         * genattr.c (main): Within the prototype of insn_latency written
2447         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
2448         * genautomata.c (output_internal_maximal_insn_latency_func):
2449         Within the implementation of insn_latency written out to
2450         insn-automata.c, strengthen both params from rtx to rtx_insn *,
2451         eliminating a pair of checked casts.
2452
2453 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
2454
2455         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
2456         rtx_insn *.
2457
2458         * rtl.h (eh_returnjump_p): Likewise.
2459
2460 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
2461
2462         * Makefile.in (TAGS): Handle constructs in timevar.def.
2463
2464 2014-09-04  Guozhi Wei  <carrot@google.com>
2465
2466         PR target/62040
2467         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
2468         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
2469         it into two patterns.
2470         (move_lo_quad_internal_be_<mode>): Likewise.
2471
2472 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2473
2474         * doc/options.texi: Document that Var and Init are required if CPP
2475         is given.
2476         * optc-gen.awk: Require Var and Init if CPP is given.
2477         * common.opt (Wpedantic): Use Init.
2478
2479 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2480
2481         * config/rs6000/rs6000.c (special_handling_values): Add
2482         SH_EXTRACT.
2483         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
2484         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
2485         as swappable with special handling SH_EXTRACT.  Remove
2486         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
2487         optimization.
2488         (adjust_extract): New function.
2489         (handle_special_swappables): Add default to case statement; add
2490         case for SH_EXTRACT that calls adjust_extract.
2491         (dump_swap_insn_table): Handle SH_EXTRACT.
2492
2493 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2494
2495         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
2496         selection of 0th memory doubleword, regardless of endianness.
2497
2498 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2499
2500         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
2501
2502 2014-09-04  Alan Modra  <amodra@gmail.com>
2503
2504         PR debug/60655
2505         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
2506         can't be output.
2507
2508 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
2509
2510         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
2511         * targhooks.c (default_dwarf_frame_reg_mode): New function.
2512         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
2513         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
2514         * doc/tm.texi: Regenerate.
2515         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
2516         selection logic to default_dwarf_frame_reg_mode.
2517
2518 2014-09-03  Marek Polacek  <polacek@redhat.com>
2519
2520         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
2521         by -Wall.
2522
2523 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
2524
2525         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
2526         the automodified register.
2527
2528 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
2529
2530         * output.h (get_some_local_dynamic_name): Declare.
2531         * final.c (some_local_dynamic_name): New variable.
2532         (get_some_local_dynamic_name): New function.
2533         (final_end_function): Clear some_local_dynamic_name.
2534         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
2535         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
2536         (print_operand): Report an error if '%&' is used inappropriately.
2537         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
2538         (get_some_local_dynamic_name_1): Delete.
2539         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
2540         (rs6000_get_some_local_dynamic_name): Delete.
2541         (rs6000_get_some_local_dynamic_name_1): Delete.
2542         (print_operand): Report an error if '%&' is used inappropriately.
2543         * config/s390/s390.c (machine_function): Remove some_ld_name.
2544         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
2545         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
2546         * config/sparc/sparc.c: Include rtl-iter.h.
2547         (machine_function): Remove some_ld_name.
2548         (sparc_print_operand): Report an error if '%&' is used inappropriately.
2549         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
2550
2551 2014-09-03  Richard Henderson  <rth@redhat.com>
2552
2553         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
2554         (aarch64_popwb_pair_reg): Remove.
2555         (aarch64_set_frame_expr): Remove.
2556         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
2557         the restore ops performed by the insns generated.
2558         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
2559         insn.  Perform the calls_eh_return addition later; do not attempt to
2560         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
2561         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
2562         special markup at all.  Load cfun->machine->frame.hard_fp_offset
2563         into a local variable.
2564         (aarch64_frame_pointer_required): Don't check calls_alloca.
2565
2566 2014-09-03  Richard Biener  <rguenther@suse.de>
2567
2568         * opts.c (default_options_optimization): Adjust
2569         max-combine-insns to 2 for -Og.
2570
2571 2014-09-03  Martin Jambor  <mjambor@suse.cz>
2572
2573         PR ipa/62015
2574         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
2575         pass-trough jump functions correctly.
2576
2577 2014-09-03  Martin Jambor  <mjambor@suse.cz>
2578
2579         PR ipa/61986
2580         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
2581         created replacements in ascending order of offsets.
2582         (known_aggs_to_agg_replacement_list): Likewise.
2583
2584 2014-09-03  Martin Liska  <mliska@suse.cz>
2585
2586         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
2587         is set to set uninitialized value for vnresult.
2588
2589 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2590
2591         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
2592         for TARGET_MUST_PASS_IN_STACK.
2593
2594 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2595
2596         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
2597         for TARGET_ARG_PARTIAL_BYTES.
2598
2599 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2600
2601         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
2602         instructions for varargs implementation.
2603         (nds32_expand_epilogue): Emit stack adjustment instructions for
2604         varargs implementation.
2605
2606 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2607
2608         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
2609         optimization detection.
2610
2611 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2612
2613         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
2614         arguments.
2615         (nds32_function_arg_advance): Deal with nameless arguments.
2616         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
2617         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
2618         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
2619
2620 2014-09-03  Richard Biener  <rguenther@suse.de>
2621
2622         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
2623         (struct bb_bitmap_sets): Remove deferred member.
2624         (BB_DEFERRED): Remove.
2625         (defer_or_phi_translate_block): Remove.
2626         (compute_antic_aux): Remove deferring of blocks, assert
2627         proper iteration order.
2628         (compute_antic): Do not set BB_DEFERRED.
2629         (eliminate): Allocate el_avail of proper size initially.
2630
2631 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2632
2633         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
2634         according to the value of crtl->args.pretend_args_size.
2635
2636 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2637
2638         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
2639         varargs information.
2640
2641 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2642
2643         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
2644         implementation for TARGET_SETUP_INCOMING_VARARGS.
2645         (nds32_strict_argument_naming): Refine comment.
2646         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
2647         Define for future implementation.
2648
2649 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
2650
2651         * config/i386/adxintrin.h (_subborrow_u32): New.
2652         (_addcarry_u32): Ditto.
2653         (_subborrow_u64): Ditto.
2654         (_addcarry_u64): Ditto.
2655         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
2656         IX86_BUILTIN_SBB64.
2657         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
2658         __builtin_ia32_sbb_u64
2659
2660 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2661
2662         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
2663         GPR-specific stuff.
2664         (nds32_function_arg_advance): Likewise.
2665         (nds32_init_cumulative_args): Likewise.
2666         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
2667         (NDS32_FIRST_GPR_REGNUM): Define.
2668         (NDS32_LAST_GPR_REGNUM): Define.
2669         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
2670         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
2671         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
2672         (machine_function): Use GRP-specific stuff.
2673
2674 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2675
2676         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
2677         (nds32_expand_epilogue): Likewise.
2678         (nds32_expand_prologue_v3push): Likewise.
2679         (nds32_expand_epilogue_v3pop): Likewise.
2680
2681 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2682
2683         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
2684         v3push/v3pop for variadic function.
2685         * config/nds32/nds32.md (prologue, epilogue): Likewise.
2686
2687 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2688
2689         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
2690         Check rtx for varargs implementation.
2691         (nds32_output_stack_pop): Likewise.
2692         * config/nds32/nds32-protos.h: Have a rtx argument for
2693         nds32_output_stack_push and nds32_output_stack_pop.
2694         * config/nds32/nds32.md: Likewise.
2695
2696 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2697
2698         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
2699         to check if FUNC is an interrupt service routine.
2700         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
2701
2702 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2703
2704         * config/nds32/nds32.h (machine_function): Add some fields for variadic
2705         arguments implementation.
2706
2707 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2708
2709         * config/nds32/nds32-predicates.c
2710         (nds32_valid_stack_push_pop): Rename to ...
2711         (nds32_valid_stack_push_pop_p): ... this.
2712         * config/nds32/nds32-protos.h: Likewise.
2713         * config/nds32/predicates.md: Likewise.
2714
2715 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2716
2717         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
2718         (nds32_emit_stack_v3push): ... this.
2719         (nds32_gen_stack_v3pop): Rename to ...
2720         (nds32_emit_stack_v3pop): ... this and consider CFA restore
2721         information.
2722
2723 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2724
2725         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
2726         (nds32_emit_stack_push_multiple): ... this.
2727         (nds32_gen_stack_pop_multiple): Rename to ...
2728         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
2729         information.
2730
2731 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2732
2733         PR target/61078
2734         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
2735         and add a second splitter to handle the remaining cases.
2736
2737 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2738
2739         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
2740
2741 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
2742
2743         * cfgexpand.c (label_rtx_for_bb): Change type to
2744         hash_map<basic_block, rtx_code_label *> *.
2745         (expand_gimple_basic_block): Adjust.
2746         (pass_expand::execute): Likewise.
2747
2748 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
2749
2750         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
2751         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
2752         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
2753         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
2754         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
2755         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
2756         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
2757         of rtx.
2758
2759 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
2760
2761         * alloc-pool.c: Include coretypes.h.
2762         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
2763         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
2764         hash_set instead of htab.
2765         * ggc-page.c (in_gc): New variable.
2766         (ggc_free): Do nothing if a collection is taking place.
2767         (ggc_collect): Set in_gc appropriately.
2768         * ggc.h (gt_ggc_mx(const char *)): New function.
2769         (gt_pch_nx(const char *)): Likewise.
2770         (gt_ggc_mx(int)): Likewise.
2771         (gt_pch_nx(int)): Likewise.
2772         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
2773         (hash_map::hash_entry::pch_nx): Likewise.
2774         (hash_map::hash_entry::pch_nx_helper): Likewise.
2775 (hash_map::hash_map): Adjust.
2776 (hash_map::create_ggc): New function.
2777 (gt_ggc_mx): Likewise.
2778 (gt_pch_nx): Likewise.
2779         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
2780 (default_hashset_traits::pch_nx): Likewise.
2781 (hash_set::hash_entry::ggc_mx): Likewise.
2782 (hash_set::hash_entry::pch_nx): Likewise.
2783 (hash_set::hash_entry::pch_nx_helper): Likewise.
2784 (hash_set::hash_set): Adjust.
2785 (hash_set::create_ggc): New function.
2786 (hash_set::elements): Likewise.
2787 (gt_ggc_mx): Likewise.
2788 (gt_pch_nx): Likewise.
2789         * hash-table.h (hash_table::hash_table): Adjust.
2790 (hash_table::m_ggc): New member.
2791         (hash_table::~hash_table): Adjust.
2792         (hash_table::expand): Likewise.
2793         (hash_table::empty): Likewise.
2794 (gt_ggc_mx): New function.
2795         (hashtab_entry_note_pointers): Likewise.
2796 (gt_pch_nx): Likewise.
2797
2798 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2799
2800         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
2801         built-in definition.
2802         (XVCVUXDDP_SCALE): Likewise.
2803         (XVCVDPSXDS_SCALE): Likewise.
2804         (XVCVDPUXDS_SCALE): Likewise.
2805         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
2806         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
2807         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
2808         VSX_BUILTIN_XVCVDPUXDS_SCALE.
2809         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
2810         prototype.
2811         * config/rs6000/rs6000.c (real.h): New include.
2812         (rs6000_scale_v2df): New function.
2813         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
2814         (UNSPEC_VSX_XVCVUXDDP): Likewise.
2815         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
2816         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
2817         (vsx_xvcvsxddp_scale): New define_expand.
2818         (vsx_xvcvsxddp): New define_insn.
2819         (vsx_xvcvuxddp_scale): New define_expand.
2820         (vsx_xvcvuxddp): New define_insn.
2821         (vsx_xvcvdpsxds_scale): New define_expand.
2822         (vsx_xvcvdpsxds): New define_insn.
2823         (vsx_xvcvdpuxds_scale): New define_expand.
2824         (vsx_xvcvdpuxds): New define_insn.
2825         * doc/extend.texi (vec_ctf): Add new prototypes.
2826         (vec_cts): Likewise.
2827         (vec_ctu): Likewise.
2828         (vec_splat): Likewise.
2829         (vec_div): Likewise.
2830         (vec_mul): Likewise.
2831
2832 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2833
2834         PR target/62275
2835         * config/arm/neon.md
2836         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
2837         <v_cmp_result>): New pattern.
2838         * config/arm/iterators.md (NEON_VCVT): New int iterator.
2839         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
2840         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
2841         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
2842         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
2843         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
2844
2845 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2846
2847         PR target/62275
2848         * config/arm/iterators.md (FIXUORS): New code iterator.
2849         (VCVT): New int iterator.
2850         (su_optab): New code attribute.
2851         (su): Likewise.
2852         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
2853
2854 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2855
2856         * config/aarch64/predicates.md (aarch64_comparison_operation):
2857         New special predicate.
2858         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
2859         aarch64_comparison_operation instead of matching an operator.
2860         Update operand numbers.
2861         (csinc3<mode>_insn): Likewise.
2862         (*csinv3<mode>_insn): Likewise.
2863         (*csneg3<mode>_insn): Likewise.
2864         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
2865         * config/aarch64/aarch64.c (aarch64_get_condition_code):
2866         Return -1 instead of aborting on invalid condition codes.
2867         (aarch64_print_operand): Update aarch64_get_condition_code callsites
2868         to assert that the returned condition code is valid.
2869         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
2870
2871 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
2872
2873         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
2874         tree.def, and gimple.def
2875
2876 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
2877             Balaji V. Iyer  <balaji.v.iyer@intel.com>
2878             Igor Zamyatin  <igor.zamyatin@intel.com>
2879
2880         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
2881         (__cilkrts_cilk_for_64): Likewise.
2882         * cilk-common.c (declare_cilk_for_builtin): New function.
2883         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
2884         __cilkrts_cilk_for_64 bultins.
2885         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
2886         CILK_TI_F_LOOP_64.
2887         (cilk_for_32_fndecl): New define.
2888         (cilk_for_64_fndecl): Likewise.
2889         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
2890         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
2891         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
2892         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
2893         GF_OMP_FOR_COMBINED_INTO.
2894         * gimplify.c (gimplify_scan_omp_clauses): Added
2895         OMP_CLAUSE__CILK_FOR_COUNT_ case.
2896         (gimplify_adjust_omp_clauses): Ditto.
2897         (gimplify_omp_for): Added CILK_FOR case.
2898         (gimplify_expr): Ditto.
2899         * omp-low.c: Include cilk.h.
2900         (extract_omp_for_data): Set appropriate kind for
2901         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
2902         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
2903         (create_omp_child_function_name): Added second argument to handle
2904         cilk_for case.
2905         (cilk_for_check_loop_diff_type): New function.
2906         (expand_cilk_for_call): Likewise.
2907         (expand_cilk_for): Likewise.
2908         (create_omp_child_function): Set cilk_for_count; handle the cases when
2909         it is true; call create_omp_child_function_name with second argument.
2910         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
2911         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
2912         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
2913         * tree-nested.c (convert_nonlocal_omp_clauses): Added
2914         OMP_CLAUSE__CILK_FOR_COUNT_ case.
2915         (convert_local_omp_clauses): Ditto.
2916         * tree-pretty-print.c (dump_omp_clause): Added
2917         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
2918         (dump_generic_node): Added CILK_FOR case.
2919         * tree.c (omp_clause_num_ops): New element
2920         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
2921         (omp_clause_code_name): New element _Cilk_for_count_.
2922         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
2923         * tree.def: Add tree code for CILK_FOR.
2924
2925 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
2926
2927         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
2928         (ppc403-compare): Add "exts with dot" case.
2929         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
2930         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
2931         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
2932         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
2933         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
2934         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
2935         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
2936         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
2937         cell-cmp-microcoded): Similarly.
2938         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
2939         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
2940         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
2941         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
2942         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
2943         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
2944         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
2945         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
2946         (power6-compare): Add "exts with dot" case.
2947         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
2948         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
2949         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
2950
2951         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
2952         if avoiding Cell microcode.
2953         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
2954         (is_cracked_insn): Ditto.
2955         (insn_must_be_first_in_group): Ditto.
2956         * config/rs6000/rs6000.md (dot): Adjust comment.
2957         (cell_micro): Handle exts+dot.
2958         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
2959         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
2960         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
2961         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
2962         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
2963         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
2964         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
2965
2966 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
2967
2968         * config/rs6000/rs6000.md (QHSI): Delete.
2969         (EXTQI, EXTHI, EXTSI): New mode iterators.
2970         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
2971         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
2972         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
2973         9 anonymous instructions, and 8 splitters): Delete.
2974         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
2975         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
2976         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
2977         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
2978         *zero_extendsi<mode>2_dot2): New.
2979
2980 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
2981
2982         * config/rs6000/rs6000.md (any_extend): New code iterator.
2983         (u, su): New code attributes.
2984         (dmode, DMODE): New mode attributes.
2985         (<su>mul<mode>3_highpart): New.
2986         (*<su>mul<mode>3_highpart): New.
2987         (<su>mulsi3_highpart_le): New.
2988         (<su>muldi3_highpart_le): New.
2989         (<su>mulsi3_highpart_64): New.
2990         (<u>mul<mode><dmode>3): New.
2991         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
2992         splitters): Delete.
2993         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
2994         splitters): Delete.
2995
2996 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
2997
2998         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
2999         *mulsi3_internal2, and two splitters): Delete.
3000         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
3001         Delete.
3002         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
3003
3004 2014-09-02  Richard Biener  <rguenther@suse.de>
3005
3006         PR tree-optimization/62695
3007         * tree-ssa-structalias.c (find_func_clobbers): Add missing
3008         vector truncate.
3009
3010 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
3011
3012         PR target/62312
3013         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
3014
3015 2014-09-01  Andi Kleen  <ak@linux.intel.com>
3016
3017         * file-find.c (add_prefix_begin): Add.
3018         (do_add_prefix): Rename from add_prefix with first argument.
3019         (add_prefix): Add new wrapper.
3020         * file-find.h (add_prefix_begin): Add.
3021         * gcc-ar.c (main): Support -B option.
3022
3023 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
3024
3025         * genemit.c: Include dumpfile.h.
3026         (gen_split): Print name of splitter function to dump file.
3027
3028 2014-09-01  Richard Biener  <rguenther@suse.de>
3029
3030         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
3031         Use stack auto_vecs for constraint expressions.
3032         (find_func_aliases_for_call): Likewise.
3033         (find_func_aliases): Likewise.
3034         (find_func_clobbers): Likewise.
3035
3036 2014-09-01  Richard Biener  <rguenther@suse.de>
3037
3038         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
3039         operands vector in most cases.  Remove redundant code.
3040
3041 2014-09-01  Olivier Hainque  <hainque@adacore.com>
3042
3043         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
3044         $WIND_BASE instead of designating a harcoded arbitrary home dir.
3045         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
3046
3047 2014-09-01  Richard Biener  <rguenther@suse.de>
3048
3049         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
3050         copy_reference_ops_from_call, vn_nary_op_compute_hash,
3051         vn_reference_compute_hash, vn_reference_insert): Remove.
3052         (vn_reference_lookup_call): New function.
3053         * tree-ssa-sccvn.c (vn_reference_compute_hash,
3054         copy_reference_ops_from_ref, copy_reference_ops_from_call,
3055         vn_reference_insert, vn_nary_op_compute_hash): Make static.
3056         (create_reference_ops_from_call): Remove.
3057         (vn_reference_lookup_3): Properly update shared_lookup_references.
3058         (vn_reference_lookup_pieces): Assert that we updated
3059         shared_lookup_references properly.
3060         (vn_reference_lookup): Likewise.
3061         (vn_reference_lookup_call): New function.
3062         (visit_reference_op_call): Use it.  Avoid re-building the
3063         reference ops.
3064         (visit_reference_op_load): Remove redundant lookup.
3065         (visit_reference_op_store): Perform special tail-merging work
3066         only when possibly doing tail-merging.
3067         (visit_use): Likewise.
3068         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
3069
3070 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
3071
3072         PR target/62025
3073         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
3074         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
3075         (find_inc): Revert 2014-08-13 change.
3076
3077 2014-09-01  Marek Polacek  <polacek@redhat.com>
3078
3079         PR middle-end/61903
3080         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
3081         Change the type of V to unsigned HOST_WIDE_INT.
3082
3083 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3084
3085         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
3086         the size of byte markers.
3087         (do_shift_rotate): Fix confusion between host, target and marker byte
3088         size.
3089         (verify_symbolic_number_p): Likewise.
3090         (find_bswap_or_nop_1): Likewise.
3091         (find_bswap_or_nop): Likewise.
3092
3093 2014-09-01  Olivier Hainque  <hainque@adacore.com>
3094
3095         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
3096         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
3097
3098 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
3099
3100         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
3101         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
3102         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
3103
3104 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
3105
3106         PR sanitizer/61897
3107         PR sanitizer/62140
3108         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
3109         (build_check_stmt): Likewise.
3110         (instrument_strlen_call): Likewise.
3111         (asan_expand_check_ifn): Likewise and fix types.
3112         (maybe_cast_to_ptrmode): New function.
3113
3114 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3115
3116         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
3117
3118 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
3119
3120         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
3121
3122 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
3123
3124         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
3125         prefix to function labels when generating fast indirect calls.
3126
3127 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
3128
3129         PR bootstrap/62304
3130
3131         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
3132         param back from rtx_insn * to rtx.  Rename param from "label" to
3133         "label_or_return", reintroducing "label" as an rtx_insn * after
3134         we've ensured it's not a RETURN.
3135         (first_active_target_insn): Likewise for return type and param;
3136         add a checked cast to rtx_insn * once we've ensured "insn" is not
3137         a RETURN.
3138         (steal_delay_list_from_target): Convert param "pnew_thread" back
3139         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
3140         with JUMP_LABEL.
3141         (own_thread_p): Convert param "thread" back from an rtx_insn * to
3142         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
3143         cast once we've established we're not dealing with a RETURN,
3144         renaming subsequent uses of "thread" to "thread_insn".
3145         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
3146         to JUMP_LABEL.
3147         (follow_jumps): Convert return type and param "label" from
3148         rtx_insn * back to rtx.  Move initialization of "value" to after
3149         the handling for ANY_RETURN_P, adding a checked cast there to
3150         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
3151         rename to "this_label_or_return", reintroducing "this_label" as
3152         an rtx_insn * once we've handled the case where it could be an
3153         ANY_RETURN_P.
3154         (fill_slots_from_thread): Rename param "thread" to
3155         "thread_or_return", converting from an rtx_insn * back to an rtx.
3156         Reintroduce name "thread" as an rtx_insn * local with a checked
3157         cast once we've handled the case of it being an ANY_RETURN_P.
3158         Convert local "new_thread" from an rtx_insn * back to an rtx.
3159         Add a checked cast when assigning to "trial" from "new_thread".
3160         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
3161         checked cast to rtx_insn * from "new_thread" when invoking
3162         get_label_before.
3163         (fill_eager_delay_slots): Convert locals "target_label",
3164         "insn_at_target" from rtx_insn * back to rtx.
3165         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
3166         (relax_delay_slots): Convert locals "trial", "target_label" from
3167         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
3168         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
3169         invoking update_block.
3170         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
3171         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
3172
3173         * resource.h (mark_target_live_regs): Undo erroneous conversion
3174         of second param of r214693, converting it back from rtx_insn * to
3175         rtx, since it could be a RETURN.
3176
3177         * resource.c (find_dead_or_set_registers): Similarly, convert
3178         param "jump_target" back from an rtx_insn ** to an rtx *, as we
3179         could be writing back a RETURN.  Rename local rtx_insn * "next" to
3180         "next_insn", and introduce "lab_or_return" as a local rtx,
3181         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
3182         (mark_target_live_regs): Undo erroneous conversion
3183         of second param of r214693, converting it back from rtx_insn * to
3184         rtx, since it could be a RETURN.  Rename it from "target" to
3185         "target_maybe_return", reintroducing the name "target" as a local
3186         rtx_insn * with a checked cast, after we've handled the case of
3187         ANY_RETURN_P.
3188
3189 2014-08-29  DJ Delorie  <dj@redhat.com>
3190
3191         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
3192         pointer size up to a power of two.
3193         * defaults.h (DWARF2_ADDR_SIZE): Round up.
3194         (POINTER_SIZE_UNITS): New, rounded up value.
3195         * dwarf2asm.c (size_of_encoded_value): Use it.
3196         (dw2_output_indirect_constant_1): Likewise.
3197         * expmed.c (init_expmed_one_conv): We now know the sizes of
3198         partial int modes.
3199         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
3200         * optabs.c (expand_float): Use precision, not size.
3201         (expand_fix): Likewise.
3202         * simplify-rtx (simplify_unary_operation_1): Likewise.
3203         * tree-dfa.c (get_ref_base_and_extent): Likewise.
3204         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
3205         (default_assemble_integer) Likewise.
3206         (dump_tm_clone_pairs): Likewise.
3207         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
3208         * var-tracking.c (adjust_mems): Allow partial-int modes also.
3209         (prepare_call_arguments): Likewise.
3210         * stor-layout.c (finalize_type_size): Preserve precision.
3211         (layout_type): Use precision, not size.
3212
3213         * expr.c (convert_move): If the target has an explicit converter,
3214         use it.
3215
3216 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
3217
3218         * gdbinit.in: Skip various inline functions in rtl.h when
3219         stepping.
3220
3221 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
3222
3223         PR bootstrap/62301
3224         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
3225
3226 2014-08-29  Richard Biener  <rguenther@suse.de>
3227
3228         PR tree-optimization/62291
3229         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
3230         exactly the vector size needed and use quick_push.
3231         (phi_translate_1): Adjust comment.
3232         (valid_in_sets): Remove block argument and remove pointless
3233         checking of NAMEs.
3234         (dependent_clean): Adjust for removal of block argument.
3235         (clean): Likewise.
3236         (compute_antic_aux): Likewise.
3237         (compute_partial_antic_aux): Likewise.
3238
3239 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3240             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3241             Anna Tikhonova  <anna.tikhonova@intel.com>
3242             Ilya Tocar  <ilya.tocar@intel.com>
3243             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3244             Ilya Verbin  <ilya.verbin@intel.com>
3245             Kirill Yukhin  <kirill.yukhin@intel.com>
3246             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3247
3248         * config/i386/sse.md
3249         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
3250         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
3251         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
3252         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
3253
3254 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3255             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3256             Anna Tikhonova  <anna.tikhonova@intel.com>
3257             Ilya Tocar  <ilya.tocar@intel.com>
3258             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3259             Ilya Verbin  <ilya.verbin@intel.com>
3260             Kirill Yukhin  <kirill.yukhin@intel.com>
3261             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3262
3263         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
3264         * config/i386/sse.md
3265         (define_mode_iterator VI4_128_8_256): New.
3266         (define_mode_iterator VI2_128_4_256): Ditto.
3267         (define_mode_iterator PMOV_DST_MODE): Rename into
3268         (define_mode_iterator PMOV_DST_MODE_1): this.
3269         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
3270         Use PMOV_DST_MODE_1 mode iterator.
3271         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
3272         Ditto.
3273         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
3274         Ditto.
3275         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
3276         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
3277         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
3278         (define_mode_iterator PMOV_DST_MODE_2): New.
3279         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
3280         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
3281         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
3282         Ditto.
3283         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
3284         (define_mode_attr pmov_dst_3): Ditto.
3285         (define_mode_attr pmov_dst_zeroed_3): Ditto.
3286         (define_mode_attr pmov_suff_3): Ditto.
3287         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
3288         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
3289         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
3290         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
3291         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
3292         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
3293         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
3294         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
3295         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
3296         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
3297         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
3298         (define_mode_attr pmov_dst_4): Ditto.
3299         (define_mode_attr pmov_dst_zeroed_4): Ditto.
3300         (define_mode_attr pmov_suff_4): Ditto.
3301         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
3302         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
3303         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
3304         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
3305         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
3306         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
3307         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
3308         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
3309         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
3310         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
3311         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
3312
3313 2014-08-29  Richard Biener  <rguenther@suse.de>
3314
3315         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
3316         NON_LVALUE_EXPR in gimple.
3317
3318 2014-08-29  Richard Biener  <rguenther@suse.de>
3319
3320         PR middle-end/62292
3321         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
3322         from previous refactoring.
3323         (gimple_fold_builtin_strncpy): Likewise.
3324
3325 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
3326
3327         PR bootstrap/62300
3328         * function.c (assign_parm_setup_reg): Remove erroneous checked
3329         cast to rtx_insn * on result of gen_extend_insn in favor of
3330         introducing a new local rtx "pat".
3331
3332 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3333
3334         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
3335         to silence warning.
3336         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
3337
3338 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3339
3340         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
3341         (next_insn): Likewise.
3342         * emit-rtl.c (next_insn): Likewise.
3343         (previous_insn): Likewise.
3344         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
3345         "insn" and "next" from rtx to rtx_insn *.
3346         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
3347         "insn", "insn1", "vliw_start",  "prologue_end_note",
3348         "last_insn_in_packet".
3349
3350 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3351
3352         * shrink-wrap.h (active_insn_between): Strengthen both params from
3353         rtx to rtx_insn *.
3354         * function.c (active_insn_between): Likewise.
3355
3356 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3357
3358         * genattr.c (main): When writing out insn-attr.h, strengthen param
3359         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
3360         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
3361         writing out the definition of dfa_clear_single_insn_cache to the
3362         generated insn-automata.c
3363
3364 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3365
3366         * resource.h (clear_hashed_info_for_insn): Strengthen param from
3367         rtx to rtx_insn *.
3368         (incr_ticks_for_insn): Likewise.
3369         (init_resource_info): Likewise.
3370
3371         * resource.c (init_resource_info): Likewise.
3372         (clear_hashed_info_for_insn): Likewise.
3373         (incr_ticks_for_insn): Likewise.
3374
3375         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
3376         rtx to rtx_insn *.
3377         (steal_delay_list_from_target): Use methods of "seq".
3378         (try_merge_delay_insns): Use methods of "merged_insns".
3379         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
3380         (reorg_redirect_jump): Likewise for param "jump".
3381
3382 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3383
3384         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
3385         rtx to rtx_insn *.
3386         * config/s390/s390.c (s390_split_branches): Eliminate top-level
3387         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
3388         "set_insn".
3389         (s390_mainpool_finish): In three places, split out a local rtx
3390         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
3391         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
3392          and split another local rtx "insn" out into rtx "pat" and
3393         rtx_insn * "insn".
3394         * config/sh/sh.c (output_branchy_insn): Rather than working
3395         directly on operands[9], introduce local rtx_code_label *
3396         variables named "lab" in two places, working on them, and then
3397         assigning them to operands[9], so that the intervening operations
3398         are known by the type system to be on insns.
3399
3400 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3401
3402         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
3403         const rtx_insn *.
3404
3405         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
3406         in invocation of INSN_HAS_LOCATION.
3407
3408 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3409
3410         * config/rs6000/altivec.h (vec_xl): New #define.
3411         (vec_xst): Likewise.
3412         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
3413         (XXSPLTD_V2DI): Likewise.
3414         (DIV_V2DI): Likewise.
3415         (UDIV_V2DI): Likewise.
3416         (MUL_V2DI): Likewise.
3417         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3418         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
3419         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
3420         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
3421         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
3422         (UNSPEC_VSX_DIVSD): Likewise.
3423         (UNSPEC_VSX_DIVUD): Likewise.
3424         (UNSPEC_VSX_MULSD): Likewise.
3425         (vsx_mul_v2di): New insn-and-split.
3426         (vsx_div_v2di): Likewise.
3427         (vsx_udiv_v2di): Likewise.
3428         (vsx_xxspltd_<mode>): New insn.
3429
3430 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3431
3432         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
3433         NEXT_INSN.
3434         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
3435         (NEXT_INSN): Likewise.
3436         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
3437         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
3438         const rtx_insn *.
3439         (no_labels_between_p): Likewise for both params.
3440
3441         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
3442         cast when using NEXT_INSN on operands[2].
3443         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
3444         "insn" from rtx to rtx_insn *, adding a checked cast.
3445         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
3446         rtx_insn *.
3447         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
3448         for third param.
3449         (arc_text_label): Likewise for param "insn".
3450         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
3451         "insn".
3452         (arc_ccfsm_record_condition): Likewise for param "jump".
3453         (arc_text_label): Likewise for local "label".
3454         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
3455         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
3456         a method for typesafety.  Add a checked cast.
3457         * config/arc/constraints.md (Clb): Add a checked cast when getting
3458         the CODE_LABEL from a LABEL_REF.
3459         * config/arm/arm.c (require_pic_register): Strengthen locals
3460         "seq", "insn" from rtx to rtx_insn *.
3461         (create_fix_barrier): Likewise for locals "selected", "next".
3462         (thumb1_reorg): Likewise for locals "prev", "insn".
3463         (arm_expand_prologue): Likewise for local "last".
3464         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
3465         operands[0].
3466         (thumb2_output_casesi): Likewise for operands[2].
3467         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
3468         strengthen local "insn" from rtx to rtx_insn *.
3469         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
3470         type and param "insn".
3471         (find_prev_insn_start): Likewise.
3472         (hwloop_optimize): Likewise for locals "insn", "last_insn",
3473         "prev".
3474         (gen_one_bundle): Likewise for loal "t".
3475         (find_load): Likewise for param "insn".
3476         (workaround_speculation): Likewise for locals "insn", "next",
3477         "target", "next_tgt".
3478         * config/c6x/c6x.c (assign_reservations): Likewise for both params
3479         and for locals "insn", "within", "last".
3480         (count_unit_reqs): Likewise for params "head", "tail" and local
3481         "insn".
3482         (try_rename_operands): Likewise for params "head", "tail".
3483         (reshuffle_units): Likewise for locals "head", "tail", "insn".
3484         (struct c6x_sched_context): Likewise for fields
3485         "last_scheduled_insn", "last_scheduled_iter0".
3486         (init_sched_state): Replace NULL_RTX with NULL.
3487         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
3488         to rtx_insn *.
3489         (undo_split_delayed_nonbranch): Likewise for param and for local
3490         "prev".
3491         (conditionalize_after_sched): Likewise for local "insn".
3492         (bb_earliest_end_cycle): Likewise.
3493         (filter_insns_above): Likewise for locals "insn", "next".
3494         (hwloop_optimize): Remove redundant checked cast.
3495         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
3496         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
3497         NULL_RTX with NULL.
3498         (cris_simple_epilogue): Likewise.
3499         (cris_expand_prologue): Likewise.
3500         (cris_expand_epilogue): Likewise.
3501         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
3502         local "insn" from rtx to rtx_insn *.
3503         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
3504         (struct frv_packet_group): Likewise for the elements within array
3505         fields "insns", "sorted", and for field "nop".
3506         (frv_packet): Likewise for the elements within array field
3507         "insns".
3508         (frv_add_insn_to_packet): Likewise for param "insn".
3509         (frv_insert_nop_in_packet): Likewise for param "insn" and local
3510         "last".
3511         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
3512         (frv_sort_insn_group_1): Likewise for local "insn".
3513         (frv_optimize_membar_local): Likewise.
3514         (frv_align_label): Likewise for locals "x", "last", "barrier",
3515         "label".
3516         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
3517         local.
3518         (ia64_sched_init): Likewise for local "insn".
3519         (scheduled_good_insn): Likewise for param "last".
3520         (struct _ia64_sched_context): Likewise for field
3521         "last_scheduled_insn".
3522         (ia64_init_sched_context): Replace NULL_RTX with NULL.
3523         (struct bundle_state): Likewise for field "insn".
3524         (issue_nops_and_insn): Likewise for param "insn".
3525         (get_next_important_insn): Likewise for return type and both
3526         params.
3527         (ia64_add_bundle_selector_before): Likewise for param "insn".
3528         (bundling): Likewise for params "prev_head_insn", "tail" and
3529         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
3530         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
3531         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
3532         Strengthen final param from rtx to rtx_insn *.
3533         (iq2000_move_1word): Likewise for second param.
3534         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
3535         param "cur_insn" and local "next_insn".
3536         (iq2000_move_1word): Likewise for param "insn".
3537         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
3538         casts when using NEXT_INSN on operands[1].
3539         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
3540         "insn" from rtx to rtx_insn *.
3541         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
3542         "x", introducing local rtx_insn * "insn" for when working with the
3543         CODE_LABEL of the LABEL_REF.
3544         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
3545         rtx_insn *.
3546         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
3547         param.
3548         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
3549         type.
3550         (conditionalize_block): Likewise for return type and param.
3551         (mcore_is_dead): Likewise for param "first" and local "insn".
3552         (emit_new_cond_insn): Likewise for return type.
3553         (conditionalize_block): Likewise for return type, param, and
3554         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
3555         "newinsn".
3556         (conditionalize_optimization): Likewise for local "insn".
3557         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
3558         using NEXT_INSN.
3559         * config/microblaze/microblaze.md: Add checked casts when using
3560         NEXT_INSN.
3561         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
3562         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
3563         and rtx_insn * "insn".
3564         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
3565         checked cast when using NEXT_INSN on operands[2].
3566         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
3567         local "insn" from rtx to rtx_insn *.
3568         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
3569         Likewise.
3570         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
3571         Add a checked cast when using NEXT_INSN on operands[1].
3572         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
3573         rtx to rtx_insn *.
3574         (pa_output_cbranch): Likewise for final param.
3575         (pa_output_lbranch): Likewise for second param.
3576         (pa_output_bb): Likewise for third param.
3577         (pa_output_bvb): Likewise.
3578         (pa_output_dbra): Likewise for second param.
3579         (pa_output_movb): Likewise.
3580         (pa_output_parallel_movb): Likewise.
3581         (pa_output_parallel_addb): Likewise.
3582         (pa_output_millicode_call): Likewise for first param.
3583         (pa_output_mul_insn): Likewise for second param.
3584         (pa_output_div_insn): Likewise for third param.
3585         (pa_output_mod_insn): Likewise for second param.
3586         (pa_jump_in_call_delay): Likewise for param.
3587         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
3588         (pa_output_div_insn): Likewise.
3589         (pa_output_mod_insn): Likewise.
3590         (pa_output_cbranch): Likewise.
3591         (pa_output_lbranch): Likewise.
3592         (pa_output_bb): Likewise.
3593         (pa_output_bvb): Likewise.
3594         (pa_output_dbra): Likewise.
3595         (pa_output_movb): Likewise.
3596         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
3597         to simplify and for typesafety.
3598         (pa_output_call): Use method of rtx_sequence *.
3599         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
3600         (pa_jump_in_call_delay): Likewise.
3601         (pa_output_parallel_movb): Likewise.
3602         (pa_output_parallel_addb): Likewise.
3603         (pa_following_call): Likewise.
3604         (pa_combine_instructions): Likewise for locals "anchor",
3605         "floater".
3606         (pa_can_combine_p): Likewise for params "anchor", "floater" and
3607         locals "start", "end".
3608         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
3609         param "insn" and local "local_insn".
3610         (picochip_final_prescan_insn): Likewise for local "local_insn".
3611         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
3612         local "insn".
3613         (uses_TOC): Likewise.
3614         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
3615         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
3616         splitting out to more tightly-scoped locals, 3 as rtx and one as
3617         rtx_insn *.
3618         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
3619         to rtx_insn *.
3620         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
3621         where needed.
3622         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
3623         to rtx_insn *.
3624         (fixup_addr_diff_vecs): Likewise.
3625         (reg_unused_after): Likewise for param 2.
3626         (sh_can_redirect_branch): Likewise for both params.
3627         (check_use_sfunc_addr): Likewise for param 1.
3628         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
3629         (find_barrier): Likewise for local "last_got".
3630         (gen_block_redirect): Likewise for return type, param "jump" and
3631         locals "prev", "scan", "next", "insn".
3632         (struct far_branch): Likewise for fields "near_label",
3633         "insert_place", "far_label".
3634         (gen_far_branch): Likewise for local "jump".
3635         (fixup_addr_diff_vecs): Likewise for param "first" and locals
3636         "insn", "prev".
3637         (barrier_align): Likewise for param and for locals "prev", "x".
3638         Introduce local rtx_sequence * "prev_seq" and use insn method for
3639         typesafety and clarity.
3640         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
3641         (get_dest_uid): Likewise for local "dest".
3642         (split_branches): Likewise for locals "next", "beyond", "label",
3643         "block", "far_label".  Add checked casts when assigning to
3644         bp->far_label and "far_label".
3645         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
3646         (sequence_insn_p): Likewise.
3647         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
3648         more loop-scoped rtx "insn" when walking LABEL_REFS.
3649         (sh_can_redirect_branch): Strengthen both params from rtx to
3650         rtx_insn *.
3651         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
3652         new local rtx_sequence * "seq" via a dyn_cast, and use a method
3653         for clarity and typesafety.
3654         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
3655         "insn" from rtx to rtx_insn *.
3656         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
3657         when using NEXT_INSN on the CODE_LABEL in operands[2].
3658         (define_insn "casesi_worker_2"): Likewise.
3659         (define_insn "casesi_shift_media"): Likewise.
3660         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
3661         operands[3].
3662         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
3663         Strengthen field "insn" from rtx to rtx_insn *.
3664         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
3665         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
3666         param "start_insn" and local "start_insn".
3667         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
3668         field "insn".
3669         (find_set_of_reg_bb): Likewise for param "insn".
3670         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
3671         (trace_reg_uses): Likewise for param "start_insn".
3672         (sh_treg_combine::cbranch_trace): Likewise for field
3673         "cbranch_insn".
3674         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
3675         param "insn".
3676         (sh_treg_combine::record_set_of_reg): Likewise for param
3677         "start_insn" and local "i".
3678         (sh_treg_combine::can_remove_cstore): Likewise for local
3679         "prev_insn".
3680         (sh_treg_combine::try_optimize_cbranch): Likewise for param
3681         "insn".
3682         (sh_treg_combine::execute): Likewise for local "i".
3683         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
3684         param.
3685         (sparc_check_64): Likewise for second param.
3686         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
3687         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
3688         dyn_cast, using its insn method for typesafety and clarity.
3689         (empty_delay_slot): Strengthen param "insn" from rtx to
3690         rtx_insn *.
3691         (set_extends): Likewise.
3692         (sparc_check_64): Likewise.
3693         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
3694         for locals "seq", "last_insn".
3695         (combine_bnp): Likewise for param "insn".
3696         (xstormy16_reorg): Likewise for local "insn".
3697         * config/v850/v850.c (substitute_ep_register): Likewise for params
3698         "first_insn", "last_insn" and local "insn".
3699         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
3700         elements of "regs" array, and local "insn".
3701         * except.c (emit_note_eh_region_end): Likewise for param "insn".
3702         * final.c (final_sequence): Strengthen this global from rtx to
3703         rtx_sequence *.
3704         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
3705         rtx_insn *.
3706         (final_scan_insn): Update assignment to "final_sequence" to be
3707         from "seq", the cast version of "body", for type-safety.
3708         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
3709         "insns" from rtx to rtx_insn *.
3710         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
3711         * genattr.c (main): When writing out generated insn-attr.h,
3712         strengthen params 1 and 3 of eligible_for_delay,
3713         eligible_for_annul_true, eligible_for_annul_false from rtx to
3714         rtx_insn *.
3715         * genattrtab.c (write_eligible_delay): Likewise when writing out
3716         generated insn-attrtab.c; also local "insn" the generated
3717         functions.
3718         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
3719         to rtx_insn *.
3720         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
3721         "start_label" from rtx to rtx_insn *.
3722         * ira.c (decrease_live_ranges_number): Likewise for local "p".
3723         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
3724         "insns" and local "insn".
3725         (validate_equiv_mem): Likewise for param "start" and local "insn".
3726         (memref_used_between_p): Likewise for params "start", "end" and
3727         local "insn".
3728         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
3729         final param.
3730         * loop-doloop.c (doloop_optimize): Within region guarded by
3731         INSN_P (doloop_pat), introduce a new local rtx_insn *
3732         "doloop_insn" via a checked cast, and use it for typesafety,
3733         eventually writing the value back into doloop_pat.
3734         * output.h (final_sequence): Strengthen this global from rtx to
3735         rtx_sequence *.
3736         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
3737         reintroducing "insn" as an rtx_insn * via a checked cast.
3738         Strengthen param "attempt" and local "new_insn"from rtx to
3739         rtx_insn *.
3740         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
3741         to rtx_insn *.
3742         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
3743         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
3744         "p" in favor of more tightly-scoped replacements, sometimes rtx
3745         and sometimes rtx_insn *, as appropriate.
3746         (delete_output_reload): Eliminate top-level rtx "i1", splitting
3747         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
3748         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
3749         local "trial" from rtx to rtx_insn *.
3750         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
3751         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
3752         rtx_sequence * and use methods for clarity and typesafety.
3753         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
3754         rtx to rtx_insn *.  Strenghten local "li" from rtx to
3755         rtx_insn_list * and use its methods for clarity and typesafety.
3756         (steal_delay_list_from_target): Strengthen param "insn" from rtx
3757         to rtx_insn *.
3758         (steal_delay_list_from_fallthrough): Likewise.
3759         (try_merge_delay_insns): Likewise for param "thread" and locals
3760         "trial", "next_trial", "delay_insn".
3761         (redundant_insn): Likewise for param "target" and local "trial".
3762         (own_thread_p): Likewise for param "thread" and locals
3763         "active_insn", "insn".
3764         (get_label_before): Likewise for param "insn".
3765         (fill_simple_delay_slots): Likewise for local "new_label"; use
3766         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
3767         (label_before_next_insn): Strengthen return type and local "insn"
3768         from rtx to rtx_insn *.
3769         (relax_delay_slots): Likewise for locals "other", "tmp".
3770         (make_return_insns): Likewise for param "first" and locals "insn",
3771         "jump_insn", "prev".  Move declaration of "pat" to its assignment
3772         and strengthen from rtx to rtx_sequence *.  Use its methods for
3773         clarity and typesafety.
3774         * rtlanal.c (no_labels_between_p): Strengthen params from
3775         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
3776         rtx_insn *.
3777         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
3778         from const_rtx to const rtx_insn *.
3779         (reg_set_between_p): Rename param "from_insn" to
3780         "uncast_from_insn", and reintroduce "from_insn" as a
3781         const rtx_insn * via a checked cast.
3782         (modified_between_p): Likewise for param "start" as "uncast_start".
3783         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
3784         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
3785         "tmp", head" from rtx to rtx_insn *.
3786         (recompute_rev_top_order): Likewise for local "insn".
3787         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
3788         * store-motion.c (build_store_vectors): Likewise for local "insn".
3789         Strengthen local "st" from rtx to rtx_insn_list * and use methods
3790         for clarity and typesafety.
3791         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
3792         rtx to rtx_insn *.
3793         (computation_cost): Likewise for local "seq".
3794         (get_address_cost): Likewise.
3795
3796 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3797
3798         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
3799         const rtx_insn *.
3800         (label_is_jump_target_p): Likewise for second param.
3801
3802         * rtlanal.c (tablejump_p): Likewise for param "insn".
3803         (label_is_jump_target_p): Likewise for param "jump_insn".
3804
3805 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3806
3807         * rtl.h (find_first_parameter_load): Strengthen return type and
3808         both params from rtx to rtx_insn *.
3809         * rtlanal.c (find_first_parameter_load): Strengthen return type,
3810         both params and locals "before", "first_set" from rtx to
3811         rtx_insn *.  Remove now-redundant cast.
3812         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
3813
3814 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3815
3816         * rtl.h (find_last_value): Delete.
3817         * rtlanal.c (find_last_value): Delete.
3818
3819 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3820
3821         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
3822         from rtx to rtx_insn *.
3823         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
3824         rtx "note" with new local rtx_insn * "new_head" when calculating
3825         head insn of new basic block.
3826         * combine.c (combine_split_insns): Strengthen return type and local
3827         "ret" from rtx to rtx_insn *.
3828         (likely_spilled_retval_p): Likewise for locals "use" and "p".
3829         (try_combine): Eliminate local "m_split", splitting into new
3830         locals "m_split_insn" and "m_split_pat".
3831         (find_split_point): Strengthen local "seq" from rtx into
3832         rtx_insn *.
3833         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
3834         locals "label", "branch".
3835         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
3836         for local "insn".
3837         (define_expand "umulsi3_highpart"): Likewise for local "insn".
3838         * dse.c (note_add_store_info): Likewise for fields "first",
3839         "current".
3840         (note_add_store): Likewise for local "insn".
3841         (emit_inc_dec_insn_before): Likewise for locals "insn",
3842         "new_insn", "cur".
3843         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
3844         (replace_read): Likewise for locals "insns", "this_insn".
3845         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
3846         (notice_eh_throw): Likewise for param "insn".
3847         (before_next_cfi_note): Likewise for return type, param, and local
3848         "prev".
3849         (connect_traces): Likewise for local "note".
3850         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
3851         (verify_rtl_sharing): Likewise.
3852         (unshare_all_rtl_in_chain): Likewise for param "insn".
3853         (get_first_nonnote_insn): Likewise for local "insn".
3854         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
3855         "seq" and use its methods to clarify things.
3856         (next_insn): Strengthen return type from rtx to rtx_insn *.
3857         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
3858         local rtx_insn * using a checked cast, dropping a checked cast
3859         made redundant by this change.  Use a cast to and method of
3860         rtx_sequence to clarify the code.
3861         (previous_insn): Rename param "insn" to "uncast_insn" and
3862         reintroduce "insn" as a local rtx_insn * using a checked cast,
3863         dropping a checked cast made redundant by this change.  Use a cast
3864         to and method of rtx_sequence to clarify the code.
3865         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
3866         reintroduce "insn" as a local rtx_insn * using a checked cast,
3867         dropping a checked cast made redundant by this change.
3868         (next_nonnote_insn_bb): Likewise.
3869         (prev_nonnote_insn): Likewise.
3870         (prev_nonnote_insn_bb): Likewise.
3871         (next_nondebug_insn): Likewise.
3872         (prev_nondebug_insn): Likewise.
3873         (next_nonnote_nondebug_insn): Likewise.
3874         (prev_nonnote_nondebug_insn): Likewise.
3875         (next_real_insn): Likewise.
3876         (prev_real_insn): Likewise.
3877         (next_active_insn): Likewise.
3878         (prev_active_insn): Likewise.
3879         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
3880         clarity.
3881         (prev_cc0_setter): Likewise.
3882         (try_split): Rename param "trial" to "uncast_trial" and
3883         reintroduce "insn" as a local rtx_insn * using a checked cast,
3884         dropping checked casts made redundant by this change.
3885         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
3886         rtx to rtx_insn *.
3887         (remove_insn): Rename param "insn" to "uncast_insn" and
3888         reintroduce "insn" as a local rtx_insn * using a checked cast.
3889         (emit_pattern_after_setloc): Likewise for param "after", as
3890         "uncast_after".
3891         (emit_pattern_after): Likewise.  Strengthen local "prev" from
3892         rtx to rtx_insn *.
3893         (emit_pattern_before_setloc): Rename param "before" to
3894         "uncast_before" and reintroduce "before" as a local rtx_insn *
3895         using a checked cast.  Strengthen locals "first", "last" from
3896         rtx to rtx_insn *.
3897         (emit_pattern_before): Likewise rename/cast param "before" to
3898         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
3899         * except.c (copy_reg_eh_region_note_forward): Strengthen param
3900         "first" and local "insn" from rtx to rtx_insn *.
3901         (copy_reg_eh_region_note_backward): Likewise for param "last"
3902         and local "insn".
3903         * expr.c (fixup_args_size_notes): Rename param "last" to
3904         "uncast_last" and reintroduce "last" as a local rtx_insn *
3905         using a checked cast.  Strengthen local "insn" from rtx to
3906         rtx_insn *.
3907         * function.c (set_insn_locations): Strengthen param "insn" from
3908         rtx to rtx_insn *.
3909         (record_insns): Likewise for param "insns" and local "tmp".
3910         (active_insn_between): Rename param "tail" to
3911         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
3912         using a checked cast.
3913         (thread_prologue_and_epilogue_insns): Split out top-level local
3914         rtx "seq" into three different rtx_insn * locals.  Strengthen
3915         local "prologue_seq" from rtx to rtx_insn *.
3916         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
3917         from rtx to rtx_insn *.
3918         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
3919         (priority): Likewise for locals "prev_first", "twin".
3920         (setup_insn_max_reg_pressure): Likewise for param "after".
3921         (sched_setup_bb_reg_pressure_info): Likewise.
3922         (no_real_insns_p): Strengthen params from const_rtx to
3923         const rtx_insn *.
3924         (schedule_block): Strengthen local "next_tail" from rtx to
3925         rtx_insn *.
3926         * ifcvt.c (find_active_insn_before): Strengthen return type and
3927         param "insn" from rtx to rtx_insn *.
3928         (find_active_insn_after): Likewise.
3929         (cond_exec_process_insns): Likewise for param "start" and local "insn".
3930         (cond_exec_process_if_block): Likewise for locals "then_start",
3931         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
3932         (noce_process_if_block): Likewise for local "jump".
3933         (merge_if_block): Likewise for two locals named "end".
3934         (cond_exec_find_if_block): Likewise for local "last_insn".
3935         * jump.c (delete_related_insns): Rename param "insn" to
3936         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
3937         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
3938         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
3939         NULL.
3940         (split_reg): Likewise.
3941         * lra.c (lra_process_new_insns): Likewise.
3942         * modulo-sched.c (permute_partial_schedule): Strengthen param
3943         "last" from rtx to rtx_insn *.
3944         * optabs.c (add_equal_note): Likewise for param "insns" and local
3945         "last_insn".
3946         (expand_binop_directly): Add checked casts to rtx_insn * within
3947         NEXT_INSN (pat) uses.
3948         (expand_unop_direct): Likewise.
3949         (maybe_emit_unop_insn): Likewise.
3950         * recog.c (peep2_attempt): Strengthen locals "last",
3951         "before_try", "x" from rtx to rtx_insn *.
3952         * reorg.c (optimize_skip): Strengthen return type and local
3953         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
3954         and locals "trial", "next_trial" from rtx to rtx_insn *.
3955         * resource.c (next_insn_no_annul): Strengthen return type and
3956         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
3957         rtx_sequence to clarify the code.
3958         (mark_referenced_resources): Add a checked cast to rtx_insn *
3959         within PREV_INSN (x).
3960         (find_dead_or_set_registers): Strengthen return type, param
3961         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
3962         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
3963         to rtx_insn **.
3964         (mark_target_live_regs): Strengthen params "insns" and "target",
3965         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
3966         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
3967         the code.
3968         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
3969         from rtx to rtx_insn *.
3970         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
3971         from rtx to rtx_insn *.
3972         (copy_reg_eh_region_note_backward): Likewise.
3973         (unshare_all_rtl_in_chain): Likewise for sole param.
3974         (dump_rtl_slim): Strengthen second and third params from const_rtx
3975         to const rtx_insn *.
3976         * sched-deps.c (sched_free_deps): Strengthen params "head" and
3977         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
3978         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
3979         "next_tail" from rtx to rtx_insn *.
3980         (begin_move_insn): Likewise for local "next".
3981         * sched-int.h (sched_free_deps): Likewise for first and second
3982         params.
3983         (no_real_insns_p): Strengthen both params from const_rtx to
3984         const rtx_insn *.
3985         (sched_setup_bb_reg_pressure_info): Strengthen second params from
3986         rtx to rtx_insn *.
3987         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
3988         "next_tail".
3989         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
3990         and locals "insn", "tail" from const_rtx to const rtx_insn *.
3991         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
3992         rtx_insn *.
3993         (debug_rtl_slim): Strengthen params "first" and "last" from
3994         const_rtx to const rtx_insn *.
3995         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
3996         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
3997         (convert_to_simple_return): Likewise for param "returnjump".
3998         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
3999         "prologue_seq".
4000         (convert_to_simple_return): Likewise for param "returnjump".
4001         * valtrack.c (propagate_for_debug): Likewise for params
4002         "insn", "last".
4003         * valtrack.h (propagate_for_debug): Likewise for second param.
4004
4005 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4006
4007         * output.h (insn_current_reference_address): Strengthen param
4008         from rtx to rtx_insn *.
4009         * final.c (insn_current_reference_address): Likewise.
4010
4011 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4012
4013         * basic-block.h (inside_basic_block_p): Strengthen param from
4014         const_rtx to const rtx_insn *.
4015         * cfgbuild.c (inside_basic_block_p): Likewise.
4016
4017 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4018
4019         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
4020         rtx_insn *.
4021         (get_trace_info): Likewise for param "insn".
4022         (save_point_p): Likewise.
4023         (maybe_record_trace_start): Likewise for both params.
4024         (maybe_record_trace_start_abnormal): Likewise.
4025         (create_trace_edges): Likewise for sole param and for three of the
4026         locals named "lab".
4027         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
4028         to rtx_insn *, and update a call to pat->element to pat->insn.
4029
4030 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4031
4032         * function.h (struct expr_status): Convert field "x_forced_labels"
4033         from rtx_expr_list * to rtx_insn_list *.
4034
4035         * cfgbuild.c (make_edges): Convert local "x" from an
4036         rtx_expr_list * to an rtx_insn_list *, replacing use of
4037         "element" method with "insn" method.
4038         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
4039         * except.c (sjlj_emit_dispatch_table): Replace use of
4040         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
4041         forced_labels.
4042         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
4043         rtx_expr_list * to an rtx_insn_list *, replacing use of
4044         "element" method with "insn" method.
4045         * reload1.c (set_initial_label_offsets): Likewise for local "x".
4046         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
4047         rtx_insn *, adding a checked cast.  Replace use of
4048         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
4049         forced_labels.
4050         (expand_label): Likewise for local "label_r".
4051
4052 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4053
4054         * function.h (struct rtl_data): Convert field
4055         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
4056         rtx_insn_list *.
4057         * rtl.h (remove_node_from_insn_list): New prototype.
4058
4059         * builtins.c (expand_builtin): When prepending to
4060         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
4061         gen_rtx_EXPR_LIST.
4062         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
4063         to rtx_insn_list *, and use its "insn" method rather than
4064         "element" method.
4065         * cfgrtl.c (delete_insn): Use new function
4066         remove_node_from_insn_list rather than
4067         remove_node_from_expr_list.
4068         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
4069         to rtx_insn_list *, and use its "insn" method rather than
4070         "element" method.
4071         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
4072         * reload1.c (set_initial_label_offsets): Likewise for local "x".
4073         * rtlanal.c (remove_node_from_insn_list): New function, adapted
4074         from remove_node_from_expr_list.
4075         * stmt.c (expand_label): When prepending to
4076         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
4077         gen_rtx_EXPR_LIST.
4078
4079 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4080
4081         * function.h (struct rtl_data): Strengthen fields "x_return_label"
4082         and "x_naked_return_label" from rtx to rtx_code_label *.
4083
4084 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4085
4086         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
4087         (SET_NEXT_INSN): Likewise.
4088         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
4089
4090         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
4091         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
4092         to split out the SEQUENCE from local "bundle", strengthening the
4093         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
4094         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
4095         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
4096         and the type of the elements of the "slot" array from rtx to
4097         rtx_insn *.
4098         (reorg_split_calls): Likewise for locals "insn" and "next", and
4099         the type of the elements of the "slot" array.
4100
4101         * config/frv/frv.c (frv_nops): Likewise for the elements of this
4102         array.
4103         (frv_function_prologue): Likewise for locals "insn", "next",
4104         "last_call".
4105         (frv_register_nop): Introduce a local "nop_insn" to be the
4106         rtx_insn * containing rtx "nop".
4107
4108         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
4109         used as an insn and sometimes as a pattern, so rename it to
4110         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
4111         using it where dealing with the core insn.
4112
4113         * config/picochip/picochip.c (reorder_var_tracking_notes):
4114         Strengthen locals "insn", "next", "last_insn", "queue",
4115         "next_queue", "prev" from rtx to rtx_insn *.
4116
4117         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
4118         the second param is an rtx_insn ** rather than an rtx **.
4119         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
4120         from rtx to rtx_sequence *, and introduce local named "sequence",
4121         using methods of rtx_sequence to clarify the code.
4122         (remove_insn): Introduce local rtx_sequence * named "sequence" and
4123         use its methods.
4124         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
4125         Rename param "after" to "uncast_after", reintroducing "after" as a
4126         local rtx_insn * with a checked cast.
4127         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
4128         reintroducing "after" as a local rtx_insn * with a checked cast.
4129         Strengthen local "last" from rtx to rtx_insn * and remove the
4130         now-redundant checked casts.
4131         (copy_delay_slot_insn): Strengthen return type and param from rtx
4132         to rtx_insn *.
4133
4134         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
4135         "last" from rtx to rtx_insn *.
4136
4137 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4138
4139         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
4140         param from rtx to rtx_insn *.
4141
4142         * emit-rtl.c (copy_delay_slot_insn): Likewise.
4143
4144         * reorg.c (skip_consecutive_labels): Strengthen return type, param
4145         and local "insn" from rtx to rtx_insn *.
4146         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
4147         (unfilled_slots_next): Likewise.
4148         (function_return_label): Strengthen from rtx to rtx_code_label *.
4149         (function_simple_return_label): Likewise.
4150         (first_active_target_insn): Strengthen return type and param from
4151         rtx to rtx_insn *.
4152         (find_end_label): Strengthen return type from rtx to
4153         rtx_code_label *; strengthen locals as appropriate.
4154         (emit_delay_sequence): Strengthen return type, param "insn" and
4155         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
4156         and local "li" from rtx to rtx_insn_list *, using methods of
4157         rtx_insn_list for clarity and typesafety.
4158         (add_to_delay_list): Strengthen return type and param "insn" from
4159         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
4160         rtx_insn_list * and use methods of rtx_insn_list.
4161         (delete_from_delay_slot): Strengthen return type, param "insn",
4162         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
4163         Strengthen local "seq" from rtx to rtx_sequence *, and local
4164         "delay_list" from rtx to rtx_insn_list *, using methods of
4165         rtx_sequence for clarity and type-safety.
4166         (delete_scheduled_jump): Add checked cast when invoking
4167         delete_from_delay_slot.  Strengthen local "trial" from rtx to
4168         rtx_insn *.
4169         (optimize_skip): Strengthen return type and local "delay_list"
4170         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
4171         rtx_insn *.
4172         (steal_delay_list_from_target): Strengthen return type, param
4173         "delay_list" and local "new_delay_list" from rtx to
4174         rtx_insn_list *.  Strengthen param "seq" from rtx to
4175         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
4176         rtx_insn **.
4177         Split out local "temp" into multiple more-tightly scoped locals:
4178         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
4179         of rtx_insn_list and rtx_sequence for clarity and typesafety.
4180         Strengthen locals named "trial" from rtx to rtx_insn *.
4181         (steal_delay_list_from_fallthrough): Strengthen return type and
4182         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
4183         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
4184         Strengthen local "trial" from rtx to rtx_insn *.
4185         (try_merge_delay_insns): Strength local "merged_insns" from rtx
4186         to rtx_insn_list * and use its methods.  Strengthen local "pat"
4187         from rtx to rtx_sequence * and use its methods.  Strengthen locals
4188         "dtrial" and "new_rtx" from rtx to rtx_insn *.
4189         (get_label_before): Strengthen return type and local "label" from
4190         rtx to rtx_insn *.
4191         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
4192         "next_trial", "next", prev".  Strengthen local "delay_list" from
4193         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
4194         rtx_insn **.
4195         (follow_jumps): Strengthen return type, param "label" and locals
4196         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
4197         (fill_slots_from_thread): Strengthen return type, param
4198         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
4199         "insn", "thread", "opposite_thread" and locals "new_thread",
4200         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
4201         "sequence" from a checked cast to rtx_sequence so that we can call
4202         steal_delay_list_from_target and steal_delay_list_from_fallthrough
4203         with an rtx_sequence *.
4204         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
4205         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
4206         Strengthen local "delay_list" from rtx to rtx_insn_list *.
4207         (relax_delay_slots): Strengthen param "first" and locals "insn",
4208         "next", "trial", "delay_insn", "target_label" from rtx to
4209         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
4210         Introduce a local "trial_seq" for PATTERN (trial) of type
4211         rtx_sequence *, in both cases using methods of rtx_sequence.
4212         (dbr_schedule): Strengthen param "first" and locals "insn",
4213         "next", "epilogue_insn" from rtx to rtx_insn *.
4214
4215 2014-08-28  Richard Biener  <rguenther@suse.de>
4216
4217         PR tree-optimization/62283
4218         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4219         Do not peel loops for alignment where the vector loop likely
4220         doesn't run at least VF times.
4221
4222 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
4223
4224         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
4225         important_candidates.  Consider all important candidates if
4226         IVS doesn't give any result.  Remove check on ivs->upto.
4227         (try_add_cand_for): Call iv_ca_add_use only once.
4228
4229 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4230             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4231             Anna Tikhonova  <anna.tikhonova@intel.com>
4232             Ilya Tocar  <ilya.tocar@intel.com>
4233             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4234             Ilya Verbin  <ilya.verbin@intel.com>
4235             Kirill Yukhin  <kirill.yukhin@intel.com>
4236             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4237
4238         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
4239         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
4240         masking.
4241         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
4242         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
4243         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
4244         (define_insn "*mul<mode>3"): Add EVEX version.
4245
4246 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4247             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4248             Anna Tikhonova  <anna.tikhonova@intel.com>
4249             Ilya Tocar  <ilya.tocar@intel.com>
4250             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4251             Ilya Verbin  <ilya.verbin@intel.com>
4252             Kirill Yukhin  <kirill.yukhin@intel.com>
4253             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4254
4255         * config/i386/sse.md
4256         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
4257         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
4258         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
4259         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
4260         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
4261         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
4262         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
4263         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
4264         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
4265         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
4266         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
4267         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
4268         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
4269         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
4270         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
4271         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
4272
4273 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4274             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4275             Anna Tikhonova  <anna.tikhonova@intel.com>
4276             Ilya Tocar  <ilya.tocar@intel.com>
4277             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4278             Ilya Verbin  <ilya.verbin@intel.com>
4279             Kirill Yukhin  <kirill.yukhin@intel.com>
4280             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4281
4282         * config/i386/sse.md
4283         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
4284         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
4285         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
4286
4287 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4288             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4289             Anna Tikhonova  <anna.tikhonova@intel.com>
4290             Ilya Tocar  <ilya.tocar@intel.com>
4291             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4292             Ilya Verbin  <ilya.verbin@intel.com>
4293             Kirill Yukhin  <kirill.yukhin@intel.com>
4294             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4295
4296         * config/i386/sse.md
4297         (define_mode_iterator VI128_256): New.
4298         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
4299
4300 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4301             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4302             Anna Tikhonova  <anna.tikhonova@intel.com>
4303             Ilya Tocar  <ilya.tocar@intel.com>
4304             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4305             Ilya Verbin  <ilya.verbin@intel.com>
4306             Kirill Yukhin  <kirill.yukhin@intel.com>
4307             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4308
4309         * config/i386/sse.md
4310         (define_mode_iterator VI8_256_512): New.
4311         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
4312         Ditto.
4313         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
4314         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
4315         Ditto.
4316         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
4317
4318 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4319
4320         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
4321         pointer to the cumulative reloc value and return the value for
4322         this reloc instead.
4323         (compute_reloc_for_rtx): Take a const_rtx.  Call
4324         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
4325         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
4326         for_each_rtx for the CONST case.
4327
4328 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4329
4330         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
4331         (mark_constants_in_pattern): ...this new function to iterate over
4332         all the subrtxes.
4333         (mark_constants): Update accordingly.
4334
4335 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4336
4337         * varasm.c: Include rtl-iter.h.
4338         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
4339         Remove the pointer to the cumulative hashval_t and just return
4340         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
4341         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4342         Accumulate the hashval_ts here instead of const_rtx_hash_1.
4343
4344 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4345
4346         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
4347         Give real type of data parameter.  Remove return value.
4348         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
4349         to iterate over subrtxes.
4350
4351 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4352
4353         * var-tracking.c (use_narrower_mode_test): Turn from being a
4354         for_each_rtx callback to being a function that examines each
4355         subrtx itself.
4356         (adjust_mems): Update accordingly.
4357
4358 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4359
4360         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
4361         callback to being a function that examines each subrtx itself.
4362         Remove handling of null rtxes.
4363         (add_uses): Update accordingly.
4364
4365 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4366
4367         * var-tracking.c: Include rtl-iter.h.
4368         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
4369         to being a function that examines each subrtx itself.
4370         (use_type): Update accordingly.
4371
4372 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4373
4374         * store-motion.c: Include rtl-iter.h.
4375         (extract_mentioned_regs_1): Delete.
4376         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
4377         for_each_rtx to iterate over subrtxes.
4378
4379 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4380
4381         * sel-sched.c: Include rtl-iter.h
4382         (count_occurrences_1): Delete.
4383         (count_occurrences_equiv): Turn rtxes into const_rtxes.
4384         Use FOR_EACH_SUBRTX rather than for_each_rtx.
4385
4386 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4387
4388         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
4389         * rtlanal.c (tls_referenced_p_1): Delete.
4390         (tls_referenced_p): Take a const_rtx rather than an rtx.
4391         Use FOR_EACH_SUBRTX rather than for_each_rtx.
4392
4393 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4394
4395         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
4396         (for_each_inc_dec): Take an rtx rather than an rtx *.
4397         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
4398         (cselib_record_sets): Likewise.
4399         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
4400         (check_for_inc_dec): Likewise.
4401         * rtlanal.c (for_each_inc_dec_ops): Delete.
4402         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
4403         rather than a pointer to the memory address.  Replace
4404         for_each_inc_dec_ops argument with separate function and data
4405         arguments.  Abort on non-autoinc addresses.
4406         (for_each_inc_dec_find_mem): Delete.
4407         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
4408         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
4409
4410 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4411
4412         * rtl.h (find_all_hard_regs): Declare.
4413         * rtlanal.c (find_all_hard_regs): New function.
4414         (record_hard_reg_uses_1): Delete.
4415         (record_hard_reg_uses): Use find_all_hard_regs.
4416
4417 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4418
4419         * rtl.h (replace_label_data): Delete.
4420         (replace_label): Take the old label, new label and update-nuses flag
4421         as direct arguments.  Return void.
4422         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
4423         * rtlanal.c (replace_label): Update interface as above.  Handle
4424         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
4425         iterator.  Use FOR_EACH_SUBRTX_PTR.
4426
4427 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4428
4429         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
4430         with const_rtx parameters.
4431         * varasm.c (get_pool_constant): Likewise.
4432         * rtlanal.c (rtx_referenced_p_1): Delete.
4433         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4434         Assert that the rtx we're looking for is nonnull.  Allow searches
4435         for constant pool SYMBOL_REFs.
4436
4437 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4438
4439         * reload1.c: Include rtl-iter.h.
4440         (note_reg_elim_costly): Turn from being a for_each_rtx callback
4441         to being a function that examines each subrtx itself.
4442         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
4443
4444 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4445
4446         * regcprop.c (cprop_find_used_regs_1): Delete.
4447         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4448
4449 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4450
4451         * regcprop.c: Include rtl-iter.h.
4452         (kill_value): Take a const_rtx.
4453         (kill_autoinc_value): Turn from being a for_each_rtx callback
4454         to being a function that examines each subrtx itself.
4455         (copyprop_hardreg_forward_1): Update accordingly.
4456
4457 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4458
4459         * reg-stack.c: Include rtl-iter.h.
4460         (subst_stack_regs_in_debug_insn): Delete.
4461         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
4462         instead of for_each_rtx.
4463
4464 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4465
4466         * lower-subreg.c (find_decomposable_subregs): Turn from being
4467         a for_each_rtx callback to being a function that examines each
4468         subrtx itself.  Remove handling of null rtxes.
4469         (decompose_multiword_subregs): Update accordingly.
4470
4471 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4472
4473         * lower-subreg.c (adjust_decomposed_uses): Delete.
4474         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
4475         Remove handling of null rtxes.
4476
4477 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4478
4479         * lower-subreg.c: Include rtl-iter.h.
4480         (resolve_subreg_use): Turn from being a for_each_rtx callback
4481         to being a function that examines each subrtx itself.  Remove
4482         handling of null rtxes.
4483         (resolve_reg_notes, resolve_simple_move): Update accordingly.
4484         (decompose_multiword_subregs): Likewise.
4485
4486 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4487
4488         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
4489         to being a function that examines each subrtx itself.
4490         (simplify_using_condition, simplify_using_initial_values): Update
4491         accordingly.
4492
4493 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4494
4495         * loop-iv.c: Include rtl-iter.h.
4496         (find_single_def_src): New function.
4497         (replace_single_def_regs): Turn from being a for_each_rtx callback
4498         to being a function that examines each subrtx itself.
4499         (replace_in_expr, simplify_using_initial_values): Update accordingly.
4500
4501 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4502
4503         * jump.c (eh_returnjump_p_1): Delete.
4504         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
4505         Remove handling of null rtxes.
4506
4507 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4508
4509         * jump.c: Include rtl-iter.h.
4510         (returnjump_p_1): Delete.
4511         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
4512         Remove handling of null rtxes.
4513
4514 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4515
4516         * ira.c: Include rtl-iter.h.
4517         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
4518         to being a function that examines each subrtx itself.  Remove
4519         handling of null rtxes.
4520         (update_equiv_regs): Update call accordingly.
4521
4522 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4523
4524         * fwprop.c: Include rtl-iter.h.
4525         (varying_mem_p): Turn from being a for_each_rtx callback to being
4526         a function that examines each subrtx itself.
4527         (propagate_rtx): Update accordingly.
4528
4529 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4530
4531         * function.c: Include rtl-iter.h
4532         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
4533         callback to being a function that examines each subrtx itself.
4534         Return the changed flag.
4535         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
4536         (instantiate_virtual_regs): Update calls accordingly.
4537
4538 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4539
4540         * final.c: Include rtl-iter.h.
4541         (mark_symbol_ref_as_used): Delete.
4542         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
4543         for_each_rtx.
4544
4545 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4546
4547         * emit-rtl.c: Include rtl-iter.h.
4548         (find_auto_inc): Turn from being a for_each_rtx callback to being
4549         a function that examines each subrtx itself.  Assume the first operand
4550         to an RTX_AUTOINC is the automodified register.
4551         (try_split): Update call accordingly.
4552
4553 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4554
4555         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
4556         Return a bool, inverting the result so that 0/false means "not ok".
4557         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
4558         subrtxes of a CONST.
4559         (mem_loc_descriptor, add_const_value_attribute)
4560         (resolve_addr_in_expr): Update calls accordingly.
4561
4562 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4563
4564         * dwarf2out.c: Include rtl-iter.h.
4565         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
4566         Remove unused data parameter.  Return a bool, inverting the result
4567         so that 0/false means "not ok".
4568         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
4569         instead of for_each_rtx.
4570
4571 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4572
4573         * dse.c: Include rtl-iter.h.
4574         (check_mem_read_rtx): Change void * parameter to real type.
4575         Remove return value.
4576         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
4577         for_each_rtx.  Don't handle null rtxes.
4578
4579 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4580
4581         * df-problems.c: Include rtl-iter.h.
4582         (find_memory): Turn from being a for_each_rtx callback to being
4583         a function that examines each subrtx itself.  Continue to look for
4584         volatile references even after a nonvolatile one has been found.
4585         (can_move_insns_across): Update calls accordingly.
4586
4587 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4588
4589         * ddg.c (walk_mems_2, walk_mems_1): Delete.
4590         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
4591         to iterate over subrtxes.  Return a bool rather than an int.
4592
4593 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4594
4595         * ddg.c: Include rtl-iter.h.
4596         (mark_mem_use_1): Rename to...
4597         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
4598         instead of for_each_rtx.
4599         (mem_read_insn_p): Update accordingly.
4600
4601 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4602
4603         * cse.c (change_cc_mode_args): Delete.
4604         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
4605         a function that examines each subrtx itself.  Take the fields of
4606         change_cc_mode_args as argument and return void.
4607         (cse_change_cc_mode_insn): Update calls accordingly.
4608
4609 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4610
4611         * cse.c (is_dead_reg): Change argument to const_rtx.
4612         (dead_debug_insn_data): Delete.
4613         (is_dead_debug_insn): Expand commentary.  Turn from being a
4614         for_each_rtx callback to being a function that examines
4615         each subrtx itself.  Take the fields of dead_debug_insn_data
4616         as argument.
4617         (delete_trivially_dead_insns): Update call accordingly.
4618
4619 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4620
4621         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
4622         being a for_each_rtx callback to being a function that examines
4623         each subrtx itself.
4624         (cse_extended_basic_block): Update call accordingly.
4625
4626 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4627
4628         * cse.c (check_dependence_data): Delete.
4629         (check_dependence): Change from being a for_each_rtx callback to being
4630         a function that examines all subrtxes itself.  Don't handle null rtxes.
4631         (invalidate): Update call accordingly.
4632
4633 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4634
4635         * cse.c: Include rtl-iter.h.
4636         (approx_reg_cost_1): Delete.
4637         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4638         Don't handle null rtxes.
4639
4640 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4641
4642         * cfgcleanup.c: Include rtl-iter.h.
4643         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
4644         to being a function that examines each subrtx itself.
4645         (thread_jump): Update accordingly.
4646
4647 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4648
4649         * combine-stack-adj.c: Include rtl-iter.h.
4650         (record_stack_refs_data): Delete.
4651         (record_stack_refs): Turn from being a for_each_rtx callback
4652         to being a function that examines each subrtx itself.
4653         Take a pointer to the reflist.  Invert sense of return value
4654         so that true means success and false means failure.  Don't
4655         handle null rtxes.
4656         (combine_stack_adjustments_for_block): Update accordingly.
4657
4658 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4659
4660         * combine.c (record_truncated_value): Turn from being a for_each_rtx
4661         callback to a function that takes an rtx and returns a bool
4662         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
4663         for_each_rtx.
4664
4665 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4666
4667         * combine.c: Include rtl-iter.h.
4668         (unmentioned_reg_p_1): Delete.
4669         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
4670         Don't handle null rtxes.
4671
4672 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4673
4674         * calls.c: Include rtl-iter.h.
4675         (internal_arg_pointer_based_exp_1): Delete.
4676         (internal_arg_pointer_based_exp): Take a const_rtx.
4677         Use FOR_EACH_SUBRTX to iterate over subrtxes.
4678
4679 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4680
4681         * caller-save.c: Include rtl-iter.h.
4682         (add_used_regs_1): Delete.
4683         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
4684         to iterate over subrtxes.  Assert that any remaining pseudos
4685         have been spilled.
4686
4687 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4688
4689         * bt-load.c: Include rtl-iter.h.
4690         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
4691         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
4692         to iterate over subrtxes.
4693         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
4694         find_btr_use rather than btr_referenced_p.
4695
4696 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4697
4698         * alias.c: Include rtl-iter.h.
4699         (refs_newer_value_cb): Delete.
4700         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4701
4702 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4703
4704         * rtl-iter.h: New file.
4705         * rtlanal.c: Include it.
4706         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
4707         (generic_subrtx_iterator <T>::add_single_to_queue)
4708         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
4709         (generic_subrtx_iterator <T>::free_array): New functions.
4710         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
4711         (generic_subrtx_iterator <const_rtx_accessor>)
4712         (generic_subrtx_iterator <rtx_var_accessor>
4713         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
4714         (setup_reg_subrtx_bounds): New function.
4715         (init_rtlanal): Call it.
4716
4717 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
4718
4719         PR target/62261
4720         * config/sh/sh.md (ashlsi3): Handle negative shift count for
4721         TARGET_SHMEDIA.
4722         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
4723
4724 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
4725
4726         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
4727
4728 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4729
4730         * rtl.h (JUMP_LABEL_AS_INSN): New.
4731
4732 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4733
4734         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
4735         rtx_expr_list **.
4736         (alloc_EXPR_LIST): Strengthen return type from rtx to
4737         rtx_expr_list *.
4738         (remove_free_EXPR_LIST_node): Likewise for param.
4739         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
4740         from rtx to rtx_expr_list *.
4741         * sched-int.h (struct deps_desc): Strengthen fields
4742         "pending_read_mems" and "pending_write_mems" from rtx to
4743         rtx_expr_list *.
4744
4745         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
4746         rtx to rtx_expr_list *.
4747         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
4748         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
4749         rtx_expr_list **.
4750         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
4751         from rtx to rtx_expr_list *.
4752         * loop-iv.c (simplify_using_initial_values): Strengthen local
4753         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
4754         "pnote_next" from rtx * to rtx_expr_list **.
4755         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
4756         param "exprp" from rtx * to rtx_expr_list **.
4757         (add_insn_mem_dependence): Strengthen local "mem_list" from
4758         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
4759         to rtx_expr_list *.
4760         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
4761         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
4762         param "old_mems_p" from rtx * to rtx_expr_list **.
4763         * var-tracking.c (struct adjust_mem_data): Strengthen field
4764         "side_effects" from rtx to rtx_expr_list *.
4765         (adjust_insn): Replace NULL_RTX with NULL when assigning to
4766         rtx_expr_list *.
4767         (prepare_call_arguments): Likewise.
4768
4769 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4770
4771         * function.h (struct rtl_data): Strengthen field
4772         "x_stack_slot_list" from rtx to rtx_expr_list *.
4773
4774         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
4775         when assigning to stack_slot_list.
4776
4777 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4778
4779         * function.h (struct rtl_data): Strengthen field
4780         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
4781         * rtl.h (remove_node_from_expr_list): Strengthen second param from
4782         rtx * to rtx_expr_list **.
4783
4784         * cfgbuild.c (make_edges): In loop over
4785         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
4786         rtx_expr_list *, and use methods of the latter class to clarify
4787         the code.
4788         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
4789         rtx_expr_list *, and use methods of the latter class to clarify
4790         the code.
4791         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
4792         * reload1.c (set_initial_label_offsets): Likewise for local "x".
4793         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
4794         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
4795         to rtx_expr_list *.  Use methods of the latter class to clarify
4796         the code.
4797
4798 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4799
4800         * function.h (struct expr_status): Strengthen field
4801         "x_forced_labels" from rtx to rtx_expr_list *.
4802
4803         * cfgbuild.c (make_edges): Split local "x" into two locals,
4804         strengthening one from rtx to rtx_expr_list *, and using methods
4805         of said class.
4806         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
4807         loop over forced_labels, introduce strengthen it from rtx to
4808         rtx_expr_list *, using methods to clarify the code.
4809         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
4810         to rtx_expr_list *, using methods of said class to clarify the
4811         code.
4812         * reload1.c (set_initial_label_offsets): Split local "x" into two
4813         per-loop variables, strengthening the first from rtx to
4814         rtx_expr_list * and using methods.
4815
4816 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4817
4818         * coretypes.h (class rtx_expr_list): Add forward declaration.
4819         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
4820         * gengenrtl.c (special_rtx): Add EXPR_LIST.
4821         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
4822         invariant: GET_CODE (X) == EXPR_LIST.
4823         (is_a_helper <rtx_expr_list *>::test): New.
4824         (rtx_expr_list::next): New.
4825         (rtx_expr_list::element): New.
4826         (gen_rtx_EXPR_LIST): New.
4827
4828 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4829
4830         * varasm.c (mark_constants): Convert a GET_CODE check into a
4831         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
4832         Use methods of rtx_sequence to clarify the code.
4833
4834 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4835
4836         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
4837         local "seq" via a checked cast, and use methods of rtx_sequence
4838         to simplify the code.
4839
4840 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4841
4842         * resource.c (mark_referenced_resources): Strengthen local
4843         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
4844         using methods of rtx_sequence to clarify the code.
4845         (find_dead_or_set_registers): Within the switch statement, convert
4846         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
4847         the JUMP_P handling, introduce another local "seq", adding a
4848         checked cast to rtx_sequence *.  In both cases, use methods of
4849         rtx_sequence to clarify the code.
4850         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
4851         via a checked cast, and use methods of rtx_sequence to simplify
4852         the code.
4853
4854 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4855
4856         * reorg.c (redundant_insn): In two places in the function, replace
4857         a check of GET_CODE with a dyn_cast, introducing local "seq", and
4858         usings methods of rtx_sequence to clarify the code.
4859
4860 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4861
4862         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
4863         local "seq" with a checked cast, and use methods of rtx_sequence
4864         to clarify the code.
4865
4866 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4867
4868         * function.c (contains): Introduce local "seq" for PATTERN (insn),
4869         with a checked cast, in the region for where we know it's a
4870         SEQUENCE.  Use methods of rtx_sequence.
4871
4872 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4873
4874         * final.c (get_attr_length_1): Replace GET_CODE check with a
4875         dyn_cast, introducing local "seq" and the use of methods of
4876         rtx_sequence.
4877         (shorten_branches): Likewise, introducing local "body_seq".
4878         Strengthen local "inner_insn" from rtx to rtx_insn *.
4879         (reemit_insn_block_notes): Replace GET_CODE check with a
4880         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
4881         Use methods of rtx_sequence.
4882         (final_scan_insn): Likewise, introducing local "seq" for when
4883         "body" is known to be a SEQUENCE, using its methods.
4884
4885 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4886
4887         * except.c (can_throw_external): Strengthen local "seq" from rtx
4888         to rtx_sequence *.  Use methods of rtx_sequence.
4889         (insn_nothrow_p): Likewise.
4890
4891 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4892
4893         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
4894         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
4895         Use methods of rtx_sequence.
4896         (scan_trace): Likewise for local "pat".
4897
4898 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4899
4900         * coretypes.h (class rtx_sequence): Add forward declaration.
4901         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
4902         invariant: GET_CODE (X) == SEQUENCE.
4903         (is_a_helper <rtx_sequence *>::test): New.
4904         (is_a_helper <const rtx_sequence *>::test): New.
4905         (rtx_sequence::len): New.
4906         (rtx_sequence::element): New.
4907         (rtx_sequence::insn): New.
4908
4909 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4910
4911         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
4912         rtx_insn_list **.
4913         (alloc_INSN_LIST): Strengthen return type from rtx to
4914         rtx_insn_list *.
4915         (copy_INSN_LIST): Likewise for return type and param.
4916         (concat_INSN_LIST): Likewise for both params and return type.
4917         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
4918         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
4919         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
4920         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
4921
4922         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
4923         "implicit_sets", "control_uses", "clobbers" from rtx to
4924         rtx_insn_list *.
4925         (struct deps_desc): Likewise for fields "pending_read_insns",
4926         "pending_write_insns", "pending_jump_insns",
4927         "last_pending_memory_flush", "last_function_call",
4928         "last_function_call_may_noreturn", "sched_before_next_call",
4929         "sched_before_next_jump".
4930         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
4931         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
4932
4933         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
4934         from rtx to rtx_insn_list *.
4935         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
4936         rtx_insn_list *.
4937
4938         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
4939         to rtx_insn_list **.
4940         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
4941         rtx_insn_list *.
4942         (queue_insn): Likewise for local "link".
4943         (struct haifa_saved_data): Strengthen field "insn_queue" from
4944         rtx * to rtx_insn_list **.
4945         (save_backtrack_point): Update allocation of save->insn_queue to
4946         reflect the strengthening of elements from rtx to rtx_insn_list *.
4947         (queue_to_ready): Strengthen local "link" from rtx to
4948         rtx_insn_list *; use methods "next" and "insn" when traversing the
4949         list.
4950         (early_queue_to_ready): Likewise for locals "link", "next_link",
4951         "prev_link".
4952         (schedule_block): Update allocation of insn_queue to reflect the
4953         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
4954         local "link" from rtx to rtx_insn_list *, and use methods when
4955         working it.
4956         (add_to_speculative_block): Strengthen locals "twins" and
4957         "next_node" from rtx to rtx_insn_list *, and use methods when
4958         working with them.  Strengthen local "twin" from rtx to
4959         rtx_insn *, eliminating a checked cast.
4960         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
4961         from rtx to rtx_insn_list *, and use methods when working with
4962         them.
4963
4964         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
4965         from rtx to rtx_insn_list *, adding a checked cast.
4966         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
4967         rtx_insn_list **.
4968         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
4969         "newlink" from rtx to rtx_insn_list *.  Strengthen local
4970         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
4971         from rtx to rtx_insn *.
4972         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
4973         from rtx to rtx_insn_list *.  Use methods of the latter class.
4974         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
4975         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
4976         (remove_free_INSN_LIST_node): Strengthen return type and local
4977         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
4978         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
4979         rtx_insn_list *, using "insn" method.
4980
4981         * sched-deps.c (add_dependence_list):  Strengthen param "list"
4982         from rtx to rtx_insn_list *, and use methods when working with it.
4983         (add_dependence_list_and_free):  Strengthen param "listp" from
4984         rtx * to rtx_insn_list **.
4985         (remove_from_dependence_list): Strenghten param "listp" from rtx *
4986         to rtx_insn_list **, and use methods when working with *listp.
4987         (remove_from_both_dependence_lists): Strengthen param "listp" from
4988         rtx * to rtx_insn_list **
4989         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
4990         to rtx_insn_list **.  Eliminate local "link", in favor of two new
4991         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
4992         respectively.
4993         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
4994         by introducing local "cond_deps".
4995         (remove_from_deps): Strengthen param "insn" from rtx to
4996         rtx_insn *.
4997
4998         * sched-rgn.c (concat_insn_mem_list): Strengthen param
4999         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
5000         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
5001         Use methods of rtx_insn_list.
5002
5003         * store-motion.c (struct st_expr): Strengthen fields
5004         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
5005         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
5006         rtx_insn_list *.
5007         (find_moveable_store): Split out "tmp" into multiple more-tightly
5008         scoped locals.  Use methods of rtx_insn_list *.
5009         (compute_store_table): Strengthen local "tmp" from rtx to
5010         rtx_insn *.  Use methods of rtx_insn_list *.
5011
5012 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5013
5014         * coretypes.h (class rtx_insn_list): Add forward declaration.
5015         * rtl.h (class rtx_insn_list): New subclass of rtx_def
5016         (is_a_helper <rtx_insn_list *>::test): New.
5017         (rtx_insn_list::next): New.
5018         (rtx_insn_list::insn): New.
5019         (gen_rtx_INSN_LIST): Add prototype.
5020         * emit-rtl.c (gen_rtx_INSN_LIST): New.
5021         * gengenrtl.c (special_rtx): Add INSN_LIST.
5022
5023 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5024
5025         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
5026         "prev" from rtx to rtx_insn *.
5027
5028 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5029
5030         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
5031         functions.  Require merely an rtx for now, not an rtx_insn *.
5032         (BLOCK_FOR_INSN): Likewise.
5033         (INSN_LOCATION): Likewise.
5034         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
5035
5036 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5037
5038         * rtl.h (PATTERN): Convert this macro into a pair of inline
5039         functions, for now, requiring const_rtx and rtx.
5040
5041 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5042
5043         * target.def (unwind_emit): Strengthen param "insn" from rtx to
5044         rtx_insn *.
5045         (final_postscan_insn): Likewise.
5046         (adjust_cost): Likewise.
5047         (adjust_priority): Likewise.
5048         (variable_issue): Likewise.
5049         (macro_fusion_pair_p): Likewise.
5050         (dfa_post_cycle_insn): Likewise.
5051         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
5052         (first_cycle_multipass_issue): Likewise.
5053         (dfa_new_cycle): Likewise.
5054         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
5055         (speculate_insn): Likewise for param "insn".
5056         (gen_spec_check): Likewise for params "insn" and "label".
5057         (get_insn_spec_ds): Likewise for param "insn".
5058         (get_insn_checked_ds): Likewise.
5059         (dispatch_do): Likewise.
5060         (dispatch): Likewise.
5061         (cannot_copy_insn_p): Likewise.
5062         (invalid_within_doloop): Likewise.
5063         (legitimate_combined_insn): Likewise.
5064         (needed): Likewise.
5065         (after): Likewise.
5066
5067         * doc/tm.texi: Automatically updated to reflect changes to
5068         target.def.
5069
5070         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
5071         working with insn.
5072         (schedule_block): Likewise.
5073         (sched_init): Likewise.
5074         (sched_speculate_insn): Strengthen param "insn" from rtx to
5075         rtx_insn *.
5076         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
5077         working with insn.
5078         * hooks.c (hook_bool_rtx_true): Rename to...
5079         hook_bool_rtx_insn_true): ...this, and strengthen first param from
5080         rtx to rtx_insn *.
5081         (hook_constcharptr_const_rtx_null): Rename to...
5082         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
5083         first param from const_rtx to const rtx_insn *.
5084         (hook_bool_rtx_int_false): Rename to...
5085         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
5086         param from rtx to rtx_insn *.
5087         (hook_void_rtx_int): Rename to...
5088         (hook_void_rtx_insn_int): ...this, and strengthen first param from
5089         rtx to rtx_insn *.
5090
5091         * hooks.h (hook_bool_rtx_true): Rename to...
5092         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
5093         rtx to rtx_insn *.
5094         (hook_bool_rtx_int_false): Rename to...
5095         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
5096         param from rtx to rtx_insn *.
5097         (hook_void_rtx_int): Rename to...
5098         (hook_void_rtx_insn_int): ...this, and strengthen first param from
5099         rtx to rtx_insn *.
5100         (hook_constcharptr_const_rtx_null): Rename to...
5101         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
5102         first param from const_rtx to const rtx_insn *.
5103
5104         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
5105         and local "prev" from rtx to rtx_insn *.
5106
5107         * sched-int.h (sched_speculate_insn): Strengthen first param from
5108         rtx to rtx_insn *.
5109
5110         * sel-sched.c (create_speculation_check): Likewise for local "label".
5111         * targhooks.c (default_invalid_within_doloop): Strengthen param
5112         "insn" from const_rtx to const rtx_insn *.
5113         * targhooks.h (default_invalid_within_doloop): Strengthen param
5114         from const_rtx to const rtx_insn *.
5115
5116         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
5117         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
5118
5119         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
5120         "insn".
5121         (arc_invalid_within_doloop): Likewise, with const.
5122
5123         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
5124         (arm_cannot_copy_insn_p): Likewise for param "insn".
5125         (arm_unwind_emit): Likewise.
5126
5127         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
5128         "dep_insn".
5129
5130         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
5131         (c6x_variable_issue): Likewise.  Removed now-redundant checked
5132         cast.
5133         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
5134
5135         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
5136         Likewise for param "insn".
5137         (epiphany_mode_after): Likewise.
5138         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
5139         params "insn", "dep_insn".
5140         (epiphany_mode_needed): Likewise for param "insn".
5141         (epiphany_mode_after): Likewise.
5142
5143         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
5144         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
5145         (ix86_avx_u128_mode_needed): Likewise.
5146         (ix86_i387_mode_needed): Likewise.
5147         (ix86_mode_needed): Likewise.
5148         (ix86_avx_u128_mode_after): Likewise.
5149         (ix86_mode_after): Likewise.
5150         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
5151         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
5152         (ix86_adjust_priority): Likewise for param "insn".
5153         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
5154         (do_dispatch): Likewise.
5155         (has_dispatch): Likewise.
5156         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
5157
5158         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
5159         reflect renaming of default hook implementation from
5160         hook_constcharptr_const_rtx_null to
5161         hook_constcharptr_const_rtx_insn_null.
5162         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
5163         rtx to rtx_insn *.
5164         (ia64_variable_issue): Likewise for param "insn".
5165         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
5166         (ia64_dfa_new_cycle): Likewise.
5167         (ia64_get_insn_spec_ds): Likewise.
5168         (ia64_get_insn_checked_ds): Likewise.
5169         (ia64_speculate_insn): Likewise.
5170         (ia64_gen_spec_check): Likewise for params "insn", "label".
5171         (ia64_asm_unwind_emit): Likewise for param "insn".
5172
5173         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
5174
5175         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
5176         "insn", "def_insn".
5177         (m68k_sched_variable_issue): Likewise for param "insn".
5178
5179         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
5180         "def_insn".
5181
5182         * config/microblaze/microblaze.c (microblaze_adjust_cost):
5183         Likewise for params "insn", "dep".
5184
5185         * config/mips/mips.c (mips_adjust_cost): Likewise.
5186         (mips_variable_issue): Likewise for param "insn".
5187         (mips_final_postscan_insn): Likewise.
5188
5189         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
5190         for params "insn", "dep".
5191
5192         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
5193         "dep_insn".
5194         (pa_adjust_priority): Likewise for param "insn".
5195
5196         * config/picochip/picochip.c (picochip_sched_adjust_cost):
5197         Likewise for params "insn", "dep_insn".
5198
5199         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
5200         param "insn".
5201         (rs6000_variable_issue): Likewise.
5202         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
5203         (rs6000_debug_adjust_cost): Likewise.
5204         (rs6000_adjust_priority): Likewise for param "insn".
5205         (rs6000_use_sched_lookahead_guard): Likewise.
5206         (get_next_active_insn): Likewise for return type and both params.
5207         (redefine_groups): Likewise for params "prev_head_insn", "tail"
5208         and locals "insn", "next_insn".
5209         (pad_groups): Likewise.
5210
5211         * config/s390/s390.c (s390_adjust_priority): Likewise for param
5212         "insn".
5213         (s390_cannot_copy_insn_p): Likewise.
5214         (s390_sched_variable_issue): Likewise for third param, eliminating
5215         checked cast.
5216         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
5217         default hook implementation from hook_constcharptr_const_rtx_null
5218         to hook_constcharptr_const_rtx_insn_null.
5219
5220         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
5221         from rtx to rtx_insn *.
5222         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
5223         (sh_variable_issue): Likewise for param "insn".
5224         (sh_dfa_new_cycle): Likewise.
5225         (sh_mode_needed): Likewise.
5226         (sh_mode_after): Likewise.
5227
5228         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
5229         params "insn", "dep_insn".
5230         (hypersparc_adjust_cost): Likewise.
5231         (sparc_adjust_cost): Likewise.
5232
5233         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
5234         param, eliminated checked cast.
5235         (spu_sched_adjust_cost): Likewise for first and third params.
5236
5237         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
5238         params "insn" and "dep_insn" from rtx to rtx_insn *.
5239
5240         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
5241
5242 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5243
5244         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
5245         (set_is_load_p): ...this, updating to work on a SET pattern rather
5246         than an insn.
5247         (is_store_insn): Rename to...
5248         (set_is_store_p): ...this, updating to work on a SET pattern
5249         rather than an insn.
5250         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
5251         top of function to where it is needed.  Rewrite the bogus
5252         condition that checks for "insn" and "dep" being PARALLEL to
5253         instead use single_set, introducing locals "insn_set" and
5254         "dep_set".  Given that we only ever returned "cost" for a non-pair
5255         of SETs, bail out early if we don't have a pair of SET.
5256         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
5257         use the new locals "insn_set" and "dep_set", and update calls to
5258         is_load_insn and is_store_insn to be calls to set_is_load_p and
5259         set_is_store_p.
5260
5261 2014-08-27  Guozhi Wei  <carrot@google.com>
5262
5263         PR target/62262
5264         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
5265         amount before using it.
5266
5267 2014-08-27  Richard Biener  <rguenther@suse.de>
5268
5269         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
5270         get_maxval_strlen inside a more useful API.
5271         (gimple_fold_builtin_with_strlen): Remove and fold into ...
5272         (gimple_fold_builtin): ... caller.
5273         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
5274         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
5275         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
5276         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
5277         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
5278         gimple_fold_builtin_sprintf): Adjust to compute maxval
5279         themselves.
5280
5281 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
5282
5283         PR other/62248
5284         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
5285
5286 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5287             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5288             Anna Tikhonova  <anna.tikhonova@intel.com>
5289             Ilya Tocar  <ilya.tocar@intel.com>
5290             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5291             Ilya Verbin  <ilya.verbin@intel.com>
5292             Kirill Yukhin  <kirill.yukhin@intel.com>
5293             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5294
5295         * config/i386/sse.md
5296         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
5297         Use `concat_tg_mode' attribute to determine asm register size.
5298
5299 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5300             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5301             Anna Tikhonova  <anna.tikhonova@intel.com>
5302             Ilya Tocar  <ilya.tocar@intel.com>
5303             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5304             Ilya Verbin  <ilya.verbin@intel.com>
5305             Kirill Yukhin  <kirill.yukhin@intel.com>
5306             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5307
5308         * config/i386/sse.md
5309         (define_mode_iterator VI48_AVX512VL): New.
5310         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
5311         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
5312         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
5313         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5314         with VI1): Change mode iterator.
5315         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5316         with VI_ULOADSTORE_BW_AVX512VL): New.
5317         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5318         with VI_ULOADSTORE_F_AVX512VL): Ditto.
5319         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5320         with VI1): Change mode iterator.
5321         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5322         with VI_ULOADSTORE_BW_AVX512VL): New.
5323         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5324         with VI_ULOADSTORE_F_AVX512VL): Ditto.
5325         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
5326         with VI1): Change mode iterator.
5327         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
5328         with VI_ULOADSTORE_BW_AVX512VL): New.
5329         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
5330         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
5331         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
5332         (define_insn "<avx512>_storedqu<mode>_mask" with
5333         VI48_AVX512VL): New.
5334         (define_insn "<avx512>_storedqu<mode>_mask" with
5335         VI12_AVX512VL): Ditto.
5336
5337 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5338             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5339             Anna Tikhonova  <anna.tikhonova@intel.com>
5340             Ilya Tocar  <ilya.tocar@intel.com>
5341             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5342             Ilya Verbin  <ilya.verbin@intel.com>
5343             Kirill Yukhin  <kirill.yukhin@intel.com>
5344             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5345
5346         * config/i386/sse.md
5347         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
5348         (define_mode_iterator VI48_AVX512BW): New.
5349         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
5350         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
5351         with VI48_AVX2_48_AVX512F): New.
5352         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
5353         with VI2_AVX512VL): Ditto.
5354
5355 2014-08-27  Richard Biener  <rguenther@suse.de>
5356
5357         PR middle-end/62239
5358         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
5359         (fold_builtin_3): Do not fold strcat_chk here.
5360         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
5361         from builtins.c.
5362         (gimple_fold_builtin): Fold strcat_chk here.
5363
5364 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
5365
5366         * dwarf2out.h (dwarf2out_decl): Remove prototype.
5367         * dwarf2out.c (dwarf2out_decl): Make static.
5368
5369 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
5370
5371         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
5372
5373 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5374
5375         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
5376         from rtx to rtx_insn *.
5377         (cselib_lookup_from_insn): Likewise for final param.
5378         (cselib_subst_to_values_from_insn): Likewise.
5379         (cselib_add_permanent_equiv): Likewise.
5380
5381         * cselib.c (cselib_current_insn): Likewise for this variable.
5382         (cselib_subst_to_values_from_insn): Likewise for param "insn".
5383         (cselib_lookup_from_insn): Likewise.
5384         (cselib_add_permanent_equiv): Likewise for param "insn" and local
5385         "save_cselib_current_insn".
5386         (cselib_process_insn): Replace use of NULL_RTX with NULL.
5387
5388         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
5389         from rtx to rtx_insn *.
5390
5391 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5392
5393         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
5394         rtx_insn *.
5395
5396 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5397
5398         * df.h (df_dump_insn_problem_function): Strengthen first param of
5399         this callback from const_rtx to const rtx_insn *.
5400         (struct df_insn_info): Strengthen field "insn" from rtx to
5401         rtx_insn *.
5402         (DF_REF_INSN): Eliminate this function, reinstating the older
5403         macro definition.
5404         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
5405         (df_reg_defined): Likewise.
5406         (df_find_use): Likewise.
5407         (df_reg_used): Likewise.
5408         (df_dump_insn_top): Strengthen param 1 from const_rtx to
5409         const rtx_insn *.
5410         (df_dump_insn_bottom): Likewise.
5411         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
5412         (df_insn_debug_regno): Likewise.
5413         (debug_df_insn): Likewise.
5414         (df_rd_simulate_one_insn): Likewise for param 2.
5415         (df_word_lr_simulate_defs): Likewise for param 1.
5416         (df_word_lr_simulate_uses): Likewise.
5417         (df_md_simulate_one_insn): Likewise for param 2.
5418         (df_simulate_find_noclobber_defs): Likewise for param 1.
5419         (df_simulate_find_defs): Likewise.
5420         (df_simulate_defs): Likewise.
5421         (df_simulate_uses): Likewise.
5422         (df_simulate_one_insn_backwards): Likewise for param 2.
5423         (df_simulate_one_insn_forwards): Likewise.
5424         (df_uses_create): Likewise for param 2.
5425         (df_insn_create_insn_record): Likewise for param 1.
5426         (df_insn_delete): Likewise.
5427         (df_insn_rescan): Likewise.
5428         (df_insn_rescan_debug_internal): Likewise.
5429         (df_insn_change_bb): Likewise.
5430         (df_notes_rescan): Likewise.
5431         * rtl.h (remove_death): Likewise for param 2.
5432         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
5433         const rtx_insn *.
5434         * sched-int.h (reemit_notes): Strengthen param from rtx to
5435         rtx_insn *.
5436         * valtrack.h (propagate_for_debug): Likewise for param 1.
5437
5438         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
5439         local "tmp_rtx" from const_rtx to const rtx_insn *.
5440         * combine.c (remove_death): Strengthen param "insn" from rtx to
5441         rtx_insn *.
5442         (move_deaths): Likewise for local "where_dead".
5443         * cse.c (delete_trivially_dead_insns): Introduce local
5444         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
5445         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
5446         rtx_insn *.
5447         (df_reg_defined): Likewise.
5448         (df_find_use): Likewise.
5449         (df_reg_used): Likewise.
5450         (df_dump_insn_problem_data): Strengthen param "insn" from
5451         const_rtx to const rtx_insn *.
5452         (df_dump_insn_top): Likewise.
5453         (df_dump_insn_bottom): Likewise.
5454         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
5455         (df_insn_debug_regno): Likewise.
5456         (debug_df_insn): Likewise.
5457         (DF_REF_INSN): Delete.
5458         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
5459         from rtx to rtx_insn *.
5460         (df_chain_insn_top_dump): Strengthen param "insn" from
5461         const_rtx to const rtx_insn *.
5462         (df_chain_insn_bottom_dump): Likewise.
5463         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
5464         rtx_insn *.
5465         (df_word_lr_simulate_uses): Likewise.
5466         (df_print_note): Likewise.
5467         (df_remove_dead_and_unused_notes): Likewise.
5468         (df_set_unused_notes_for_mw): Likewise.
5469         (df_set_dead_notes_for_mw): Likewise.
5470         (df_create_unused_note): Likewise.
5471         (df_simulate_find_defs): Likewise.
5472         (df_simulate_find_uses): Likewise.
5473         (df_simulate_find_noclobber_defs): Likewise.
5474         (df_simulate_defs): Likewise.
5475         (df_simulate_uses): Likewise.
5476         (df_simulate_one_insn_backwards): Likewise.
5477         (df_simulate_one_insn_forwards): Likewise.
5478         (df_md_simulate_one_insn): Likewise.
5479         * df-scan.c (df_uses_create): Likewise.
5480         (df_insn_create_insn_record): Likewise.
5481         (df_insn_delete): Likewise.
5482         (df_insn_rescan): Likewise.
5483         (df_insn_rescan_debug_internal): Likewise.
5484         (df_insn_change_bb): Likewise.
5485         (df_notes_rescan): Likewise.
5486         (df_refs_add_to_chains): Likewise.
5487         (df_insn_refs_verify): Likewise.
5488         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
5489         when invoking df_insn_delete.
5490         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
5491         (set_unique_reg_note): Add checked cast.
5492         * final.c (cleanup_subreg_operands): Likewise.
5493         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
5494         "insn" from rtx to rtx_insn *.
5495         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
5496         "last" from rtx to rtx_insn *.
5497         * ira-emit.c (change_regs_in_insn): New function.
5498         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
5499         Invoke change_regs_in_insn rather than change_regs.
5500         * ira.c (update_equiv_regs): Strengthen locals "insn",
5501         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
5502         for_each_rtx_in_insn rather than for_each_rtx.
5503         * recog.c (confirm_change_group): Add checked casts.
5504         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
5505         Add checked cast.
5506         (peep2_fill_buffer): Add checked cast.
5507         * rtlanal.c (remove_note): Likewise.
5508         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
5509         locals "next" "end" from rtx to rtx_insn *.
5510
5511 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5512
5513         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
5514         to rtx_insn *.
5515         (struct reg_use_data): Likewise for field "insn".
5516         (insn_cost): Likewise for param.
5517         (real_insn_for_shadow): Likewise for return type and param.
5518         (increase_insn_priority): Likewise for param 1.
5519         (debug_dependencies): Likewise for both params.
5520
5521         * haifa-sched.c (insn_delay): Likewise for param "insn".
5522         (real_insn_for_shadow): Likewise for return type and param "insn".
5523         (update_insn_after_change): Likewise for param "insn".
5524         (recompute_todo_spec): Likewise for param "next" and locals "pro",
5525         "other".
5526         (insn_cost): Likewise for param "insn".
5527         (increase_insn_priority): Likewise.
5528         (calculate_reg_deaths): Likewise.
5529         (setup_insn_reg_pressure_info): Likewise.
5530         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
5531         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
5532         (model_recompute): Likewise.
5533         (must_restore_pattern_p): Likewise for param "next".
5534         (model_excess_cost): Likewise for param "insn".
5535         (queue_remove): Likewise.
5536         (adjust_priority): Likewise for param "prev".
5537         (update_register_pressure): Likewise for param "insn".
5538         (setup_insn_max_reg_pressure): Likewise for local "insn".
5539         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
5540         (model_add_to_schedule): Likewise.
5541         (model_reset_queue_indices): Likewise for local "insn".
5542         (unschedule_insns_until): Strengthen local "recompute_vec" from
5543         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
5544         "con" from rtx to rtx_insn *.
5545         (restore_last_backtrack_point): Likewise for both locals "x". Add
5546         checked casts.
5547         (estimate_insn_tick): Likewise for param "insn".
5548         (commit_schedule): Likewise for params "prev_head", "tail" and
5549         local "x".
5550         (verify_shadows): Likewise for locals "i1", "i2".
5551         (dump_insn_stream): Likewise for params "head", "tail" and locals
5552         "next_tail", "insn".
5553         (schedule_block): Likewise for locals "insn", "x".  Add a checked
5554         cast.
5555         (fix_inter_tick): Likewise for params "head", "tail".
5556         (create_check_block_twin): Likewise for local "jump".
5557         (haifa_change_pattern): Likewise for param "insn".
5558         (haifa_speculate_insn): Likewise.
5559         (dump_new_block_header): Likewise for params "head", "tail".
5560         (fix_jump_move): Likewise for param "jump".
5561         (move_block_after_check): Likewise.
5562         (sched_init_insn_luid): Likewise for param "insn".
5563         (sched_init_luids): Likewise for local "insn".
5564         (insn_luid): Likewise for param "insn".
5565         (init_h_i_d): Likewise.
5566         (haifa_init_h_i_d): Likewise for local "insn".
5567         (haifa_init_insn): Likewise for param "insn".
5568         * sched-deps.c (add_dependence): Likewise for local "real_pro",
5569         "other".
5570         (create_insn_reg_use): Likewise for param "insn".
5571         (setup_insn_reg_uses): Likewise.  Add a checked cast.
5572         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
5573         "tail" from rtx to rtx_insn *.
5574         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
5575         "insn", "next_tail".
5576
5577 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5578
5579         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
5580         from rtx to rtx_insn *.
5581         (model_add_to_schedule): Likewise for locals "start", "end",
5582         "iter".
5583
5584 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5585
5586         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
5587         rtx_insn *.
5588         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
5589         "to" and locals "insn", "next", "copy".  Remove now-redundant
5590         checked cast.
5591
5592 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5593
5594         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
5595         rtx_insn * and param 4 from rtx * to rtx_insn **.
5596         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
5597         param 2 from rtx * to rtx_insn **.
5598
5599         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
5600         rtx_insn * and final param from rtx * to rtx_insn **.
5601
5602         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
5603         from rtx to rtx_insn *.
5604         (try_head_merge_bb): Likewise for both locals named "move_upto".
5605         * df-problems.c (can_move_insns_across): Likewise for params
5606         "from", "to", "across_from", "across_to" and locals "insn",
5607         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
5608         rtx_insn **.
5609         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
5610         from rtx to rtx_insn *.
5611         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
5612         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
5613         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
5614         rtx_insn *.
5615         (noce_try_abs): Likewise.
5616         (noce_get_condition): Likewise for param "jump".  Strengthen param
5617         "earliest" from rtx * to rtx_insn **.
5618         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
5619         rtx_insn *.
5620         (find_cond_trap): Likewise.
5621         (dead_or_predicable): Likewise for local "earliest".
5622         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
5623         checked cast.
5624         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
5625         and local "prev".  Strengthen param "earliest" from rtx * to
5626         rtx_insn **.
5627         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
5628         Strengthen param "earliest" from rtx * to rtx_insn **.
5629
5630 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5631
5632         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
5633         "to" and local "insn" from rtx to rtx_insn *.
5634
5635 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5636
5637         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
5638         from rtx to rtx_insn *.
5639         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
5640         (code_motion_path_driver): Likewise for local "last_insn".
5641         (simplify_changed_insns): Likewise for local "insn".
5642
5643 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5644
5645         * rtl.h (push_to_sequence): Strengthen param from rtx to
5646         rtx_insn *.
5647         (push_to_sequence2): Likewise for both params.
5648         (delete_insns_since): Likewise for param.
5649         (reorder_insns_nobb): Likewise for all three params.
5650         (set_new_first_and_last_insn): Likewise for both params.
5651
5652         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
5653         rtx_insn *.  Remove now-redundant cast.
5654         (set_last_insn): Likewise.
5655
5656         * builtins.c (expand_builtin_return): Strengthen local
5657         "call_fusage" from rtx to rtx_insn *.
5658         * cfgrtl.c (create_basic_block_structure): Likewise for local
5659         "after".
5660         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
5661         "first", "last" and local "insn".
5662         (delete_insns_since): Likewise for param "from".
5663         (reorder_insns_nobb): Likewise for params "from", "to", "after"
5664         and local "x".
5665         (push_to_sequence): Likewise for param "first" and local "last".
5666         (push_to_sequence2): Likewise for params "first" and "last".
5667         * lra.c (emit_add3_insn): Likewise for local "last".
5668         (lra_emit_add): Likewise.
5669         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
5670         "last_insn".
5671         (process_address_1): Likewise for locals "insn", last".
5672         * modulo-sched.c (ps_first_note): Likewise for return type.
5673         * optabs.c (expand_binop_directly): Likewise for param "last".
5674
5675 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5676
5677         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
5678         to rtx_insn*.
5679         * emit-rtl.c (get_last_insn_anywhere): Likewise.
5680
5681 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5682
5683         * function.h (struct sequence_stack): Strengthen fields "first"
5684         and "last" from rtx to rtx_insn *.
5685         (struct emit_status): Likewise for fields "x_first_insn" and
5686         "x_last_insn".
5687
5688         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
5689         (set_first_insn): Add checked cast.
5690         (get_last_insn): Remove now-redundant checked cast.
5691         (set_last_insn): Add checked cast.
5692
5693         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
5694         "saved_first" and "saved_last" from rtx to rtx_insn *.
5695
5696 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5697
5698         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
5699         (unlink_insn_chain): Strengthen both params from rtx to
5700         rtx_insn *.
5701
5702         * cfgrtl.c (cfg_layout_function_header): Likewise for this
5703         variable.
5704         (unlink_insn_chain): Likewise for params "first" and "last".
5705         Remove now-redundant checked cast.
5706         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
5707         (fixup_reorder_chain): Strengthen local "insn" from rtx to
5708         rtx_insn *.
5709         * emit-rtl.c (link_insn_into_chain): Likewise for all three
5710         params.
5711         (add_insn): Likewise for param "insn" and local "prev".
5712         (add_insn_after_nobb): Likewise for both params and local "next".
5713         (add_insn_before_nobb): Likewise for both params and local "prev".
5714         (add_insn_after): Rename param "after" to "uncast_after",
5715         introducing local "after" with another checked cast.
5716         (add_insn_before): Rename params "insn" and "before", giving them
5717         "uncast_" prefixes, adding the old names back using checked casts.
5718         (emit_note_after): Likewise for param "after".
5719         (emit_note_before): Likewise for param "before".
5720         (emit_label): Add a checked cast.
5721
5722 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5723
5724         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
5725         "insn" from rtx to rtx_insn *.
5726
5727         * cselib.c (cselib_record_sets_hook): Likewise.
5728
5729         * var-tracking.c (add_with_sets): Likewise, renaming back from
5730         "uncast_insn" to "insn" and eliminating the checked cast from rtx
5731         to rtx_insn *.
5732
5733 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5734
5735         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
5736         and "header_" from rtx to rtx_insn *.
5737         (struct basic_block_d): Likewise for field "head_" within "x"
5738         field of union basic_block_il_dependent.
5739         (BB_HEAD): Drop function...
5740         (SET_BB_HEAD): ...and this function in favor of...
5741         (BB_HEAD): ...reinstate macro.
5742         (BB_END): Drop function...
5743         (SET_BB_END): ...and this function in favor of...
5744         (BB_END): ...reinstate macro.
5745         (BB_HEADER): Drop function...
5746         (SET_BB_HEADER): ...and this function in favor of...
5747         (BB_HEADER): ...reinstate macro.
5748
5749         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
5750         (fix_crossing_unconditional_branches): Likewise.
5751         * caller-save.c (save_call_clobbered_regs): Likewise.
5752         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
5753         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
5754         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
5755         (merge_blocks_move_successor_nojumps): Likewise.
5756         (outgoing_edges_match): Update use of for_each_rtx to
5757         for_each_rtx_in_insn.
5758         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
5759         (expand_gimple_cond): Likewise.
5760         (expand_gimple_tailcall): Likewise.
5761         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
5762         SET_BB_END.
5763         (construct_exit_block): Drop use of SET_BB_END.
5764         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
5765         rtx_insn *.
5766         (delete_insn): Rename param "insn" to "uncast_insn", introducing
5767         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
5768         SET_BB_HEAD and SET_BB_END.
5769         (create_basic_block_structure): Drop use of SET_BB_HEAD and
5770         SET_BB_END.
5771         (rtl_delete_block): Drop use of SET_BB_HEAD.
5772         (rtl_split_block): Drop use of SET_BB_END.
5773         (emit_nop_for_unique_locus_between): Likewise.
5774         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
5775         (block_label): Drop use of SET_BB_HEAD.
5776         (fixup_abnormal_edges): Drop use of SET_BB_END.
5777         (record_effective_endpoints): Drop use of SET_BB_HEADER.
5778         (relink_block_chain): Likewise.
5779         (fixup_reorder_chain): Drop use of SET_BB_END.
5780         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
5781         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
5782         rtx_insn **.  Drop use of SET_BB_HEADER.
5783         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
5784         SET_BB_HEAD.
5785         (BB_HEAD): Delete this function.
5786         (SET_BB_HEAD): Likewise.
5787         (BB_END): Likewise.
5788         (SET_BB_END): Likewise.
5789         (BB_HEADER): Likewise.
5790         (SET_BB_HEADER): Likewise.
5791         * emit-rtl.c (add_insn_after):  Rename param "insn" to
5792         "uncast_insn", adding a new local "insn" and a checked cast to
5793         rtx_insn *.  Drop use of SET_BB_END.
5794         (remove_insn): Strengthen locals "next" and "prev" from rtx to
5795         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
5796         (reorder_insns): Drop use of SET_BB_END.
5797         (emit_insn_after_1): Strengthen param "first" and locals "last",
5798         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
5799         (emit_pattern_after_noloc): Add checked cast.
5800         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
5801         (restore_other_notes): Likewise.
5802         (move_insn): Likewise.
5803         (sched_extend_bb): Likewise.
5804         (fix_jump_move): Likewise.
5805         * ifcvt.c (noce_process_if_block): Likewise.
5806         (dead_or_predicable): Likewise.
5807         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
5808         * reg-stack.c (change_stack): Drop use of SET_BB_END.
5809         * sel-sched-ir.c (sel_move_insn): Likewise.
5810         * sel-sched.c (move_nop_to_previous_block): Likewise.
5811
5812         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
5813         SET_BB_END.
5814         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
5815
5816 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5817
5818         * basic-block.h (create_basic_block_structure): Strengthen params
5819         1 "head" and 2 "end" from rtx to rtx_insn *.
5820         * cfgrtl.c (create_basic_block_structure): Likewise.
5821         (rtl_create_basic_block): Update casts from void * to rtx to
5822         rtx_insn *, so that we can pass them as rtx_insn * to
5823         create_basic_block_structure.
5824         * sel-sched-ir.c (sel_create_basic_block): Likewise.
5825
5826 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5827
5828         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
5829         rtx_insn **.
5830         (check_for_inc_dec): Strengthen param "insn" from rtx to
5831         rtx_insn *.
5832
5833         * cselib.h (cselib_process_insn): Likewise.
5834
5835         * cselib.c (cselib_record_sets): Likewise.
5836         (cselib_process_insn): Likewise.
5837
5838         * dse.c (struct insn_info): Likewise for field "insn".
5839         (check_for_inc_dec_1): Likewise for local "insn".
5840         (check_for_inc_dec): Likewise for param "insn".
5841         (scan_insn): Likewise.
5842         (dse_step1): Likewise for local "insn".
5843
5844         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
5845         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
5846
5847 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5848
5849         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
5850         from rtx to rtx_insn *.
5851         (DEP_PRO): Delete this function and...
5852         (SET_DEP_PRO): ...this function in favor of...
5853         (DEP_PRO): ...reinstate this macro.
5854         (DEP_CON): Delete this function and...
5855         (SET_DEP_CON): ...this function in favor of...
5856         (DEP_CON): ...reinstate this old macro.
5857         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
5858         (init_dep): Likewise.
5859         (set_priorities): Likewise for both params.
5860         (sd_copy_back_deps): Likewise for params 1 and 2.
5861
5862         * haifa-sched.c (priority): Likewise for param "insn" and local
5863         "next".
5864         (set_priorities): Likewise for params "head" and "tail" and local
5865         "insn".
5866         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
5867         local "consumer".
5868         (add_to_speculative_block): Add a checked cast.
5869         (create_check_block_twin): Drop use of SET_DEP_CON.
5870         (add_jump_dependencies): Strengthen params "insn" and "jump" from
5871         rtx to rtx_insn *.
5872
5873         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
5874         Drop use of SET_DEP_PRO
5875         (init_dep): Strengthen params "pro" and "con" from rtx to
5876         rtx_insn *.
5877         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
5878         use of SET_DEP_CON.
5879         (DEP_PRO): Delete.
5880         (DEP_CON): Delete.
5881         (SET_DEP_PRO): Delete.
5882         (SET_DEP_CON): Delete.
5883
5884 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5885
5886         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
5887         from rtx to rtx_insn *.
5888         (VINSN_INSN_RTX): Eliminate rvalue function and...
5889         (SET_VINSN_INSN): ...lvalue function in favor of...
5890         (VINSN_INSN_RTX): reinstate this old macro.
5891
5892         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
5893         in favor of VINSN_INSN_RTX.
5894         (VINSN_INSN_RTX): Delete this function.
5895         (SET_VINSN_INSN_RTX): Likewise.
5896
5897 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5898
5899         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
5900         (BND_TO): Delete this function and...
5901         (SET_BND_TO): ...this functions in favor of...
5902         (BND_TO): ...reinstating this macro.
5903         (struct _fence): Strengthen field "executing_insns" from
5904         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
5905         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
5906         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
5907         and param "insn" from rtx to insn_t.
5908         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
5909         rtx_insn *.
5910
5911         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
5912         vec<rtx_insn *> .
5913         (rtx_vec_t): Likewise.
5914         (struct sched_deps_info_def): Strengthen param of "start_insn"
5915         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
5916         "note_mem_dep" callback and first param of "note_dep" callback.
5917
5918         * haifa-sched.c (add_to_speculative_block): Strengthen param
5919         "insn" from rtx to rtx_insn *.
5920         (clear_priorities): Likewise.
5921         (calc_priorities): Likewise for local "insn".
5922
5923         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
5924         Remove redundant checked cast.
5925         (haifa_note_mem_dep): Likewise for param "pending_insn".
5926         (haifa_note_dep): Likewise for param "elem".
5927         (note_mem_dep): Likewise for param "e".
5928         (sched_analyze_1): Add checked casts.
5929         (sched_analyze_2): Likewise.
5930
5931         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
5932         from rtx to rtx_insn *.
5933         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
5934         from vec<rtx> * to vec<rtx_insn *> *.
5935
5936         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
5937         scaffolding.
5938         (flist_add): Strengthen param "executing_insns" from
5939         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
5940         (advance_deps_context): Remove now-redundant checked cast.
5941         (init_fences): Replace uses of NULL_RTX with NULL.
5942         (merge_fences): Strengthen params "last_scheduled_insn" and
5943         "sched_next" from rtx to rtx_insn * and "executing_insns" from
5944         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
5945         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
5946         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
5947         an instruction, rather than doing double-duty as a pattern.
5948         (return_nop_to_pool): Update for change of insn_t.
5949         (deps_init_id): Remove now-redundant checked cast.
5950         (struct sched_scan_info_def): Strengthen param of "init_insn"
5951         callback from rtx to insn_t.
5952         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
5953         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
5954         NULL.
5955         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
5956         "end" from rtx to rtx_insn *.
5957         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
5958         (rtx insn_rtx, bool force_unique_p)
5959         (BND_TO): Delete function.
5960         (SET_BND_TO): Delete function.
5961
5962         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
5963         rtx to rtx_insn *.
5964         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
5965         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
5966         rtx to rtx_insn *.
5967         (undo_transformations): Likewise for param "insn".
5968         (update_liveness_on_insn): Likewise.
5969         (compute_live_below_insn): Likewise for param "insn" and local
5970         "succ".
5971         (update_data_sets): Likewise for param "insn".
5972         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
5973         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
5974         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
5975         rtx_insn *.
5976         (move_cond_jump): Likewise for param "insn".
5977         (move_cond_jump): Drop use of SET_BND_TO.
5978         (compute_av_set_on_boundaries): Likewise.
5979         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
5980         (update_and_record_unavailable_insns): Strengthen local "bb_end"
5981         from rtx to rtx_insn *.
5982         (maybe_emit_renaming_copy): Likewise for param "insn".
5983         (maybe_emit_speculative_check): Likewise.
5984         (handle_emitting_transformations): Likewise.
5985         (remove_insn_from_stream): Likewise.
5986         (code_motion_process_successors): Strengthen local "succ" from rtx
5987         to insn_t.
5988
5989 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5990
5991         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
5992         ilist_t, not _xlist_t;
5993         (ILIST_INSN): Define in terms of new union field "insn".
5994         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
5995         _XLIST_NEXT.
5996         (struct _list_node): Add new field "insn" to the union, of type
5997         insn_t.
5998         (ilist_add): Replace macro with an inline function, requiring an
5999         insn_t.
6000         (ilist_remove): Define this macro directly in terms of
6001         _list_remove, rather than indirectly via _xlist_remove.
6002         (ilist_clear): Likewise, in terms of _list_clear rather than
6003         _xlist_clear.
6004         (ilist_is_in_p): Replace macro with an inline function, requiring
6005         an insn_t.
6006         (_list_iter_cond_insn): New function.
6007         (ilist_iter_remove): Define this macro directly in terms of
6008         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
6009         (ilist_iterator): Define directly in terms of _list_iterator
6010         rather than indirectly through _xlist_iterator.
6011         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
6012         than in terms of _FOR_EACH_X.
6013         (FOR_EACH_INSN_1): Likewise.
6014
6015 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
6016
6017         PR target/60606
6018         PR target/61330
6019         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
6020         DECL_HARD_REGISTER and return for invalid register specifications.
6021         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
6022         DECL_HARD_REGISTER, call expand_one_error_var.
6023         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
6024         CC_REGNUM with non-MODE_CC modes.
6025         (arm_regno_class): Return NO_REGS for PC_REGNUM.
6026
6027 2014-08-26  Marek Polacek  <polacek@redhat.com>
6028
6029         PR c/61271
6030         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
6031
6032 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
6033
6034         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
6035         qi cost; add di cost.
6036         (cortexa57_addrcost_table): Likewise.
6037
6038 2014-08-26  Marek Polacek  <polacek@redhat.com>
6039
6040         PR c/61271
6041         * expr.c (is_aligning_offset): Remove logical not.
6042
6043 2014-08-26  Marek Polacek  <polacek@redhat.com>
6044
6045         PR c/61271
6046         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
6047         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
6048
6049 2014-08-26  Richard Biener  <rguenther@suse.de>
6050
6051         PR tree-optimization/62175
6052         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6053         expand possibly trapping operations.
6054
6055 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
6056
6057         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
6058         "insn" from rtx to rtx_insn *.
6059         (permute_load): Likewise for param "insn".
6060         (permute_store): Likewise.
6061         (handle_special_swappables): Likewise for local "insn".
6062         (replace_swap_with_copy): Likewise for locals "insn" and
6063         "new_insn".
6064         (rs6000_analyze_swaps): Likewise for local "insn".
6065
6066 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6067
6068         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
6069         to rtx_insn *.
6070
6071 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6072
6073         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
6074         "note_list" from rtx to rtx_insn *.
6075         (BB_NOTE_LIST): Replace this function and...
6076         (SET_BB_NOTE_LIST): ...this function with...
6077         (BB_NOTE_LIST): ...the former macro implementation.
6078
6079         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
6080         local "from_start" from rtx to rtx_insn *.  Strengthen param
6081         "to_endp" from rtx * to rtx_insn **.
6082
6083         * haifa-sched.c (concat_note_lists): Likewise.
6084         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
6085         BB_NOTE_LIST.
6086         (sel_restore_notes): Likewise.
6087         (move_bb_info): Likewise.
6088         (BB_NOTE_LIST): Delete this function.
6089         (SET_BB_NOTE_LIST): Delete this function.
6090         * sel-sched.c (create_block_for_bookkeeping): Eliminate
6091         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
6092
6093 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6094
6095         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
6096         from rtx * to rtx_insn **.
6097         (reorder2): Likewise.
6098         (dependencies_evaluation_hook): Strengthen params "head", "tail"
6099         from rtx to rtx_insn *.
6100
6101         * doc/tm.texi: Update mechanically for above change to target.def.
6102
6103         * sched-int.h (note_list): Strengthen this variable from rtx to
6104         rtx_insn *.
6105         (remove_notes): Likewise for both params.
6106         (restore_other_notes): Likewise for return type and first param.
6107         (struct ready_list): Strengthen field "vec" from rtx * to
6108         rtx_insn **.
6109         (struct dep_replacement): Strenghten field "insn" from rtx to
6110         rtx_insn *.
6111         (struct deps_desc): Likewise for fields "last_debug_insn",
6112         "last_args_size".
6113         (struct haifa_sched_info): Likewise for callback field
6114         "can_schedule_ready_p"'s param, for first param of "new_ready"
6115         callback field, for both params of "rank" callback field, for
6116         first field of "print_insn" callback field (with a const), for
6117         both params of "contributes_to_priority" callback, for param
6118         of "insn_finishes_block_p" callback, for fields "prev_head",
6119         "next_tail", "head", "tail", for first param of "add_remove_insn"
6120         callback, for first param of "begin_schedule_ready" callback, for
6121         both params of "begin_move_insn" callback, and for second param
6122         of "advance_target_bb" callback.
6123         (add_dependence): Likewise for params 1 and 2.
6124         (sched_analyze): Likewise for params 2 and 3.
6125         (deps_analyze_insn): Likewise for param 2.
6126         (ready_element): Likewise for return type.
6127         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
6128         (try_ready): Strenghten param from rtx to rtx_insn *.
6129         (sched_emit_insn): Likewise for return type.
6130         (record_delay_slot_pair): Likewise for params 1 and 2.
6131         (add_delay_dependencies): Likewise for param.
6132         (contributes_to_priority): Likewise for both params.
6133         (find_modifiable_mems): Likewise.
6134
6135         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
6136         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
6137         "first_older_only_insn" from rtx to rtx_insn *.
6138         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
6139         rtx_insn **.
6140
6141         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
6142         "last_scheduled_iter0" from rtx to rtx_insn *.
6143         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
6144         (c6x_sched_reorder_1): Strengthen param "ready" and locals
6145         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
6146         "insn" from rtx to rtx_insn *.
6147         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
6148         rtx_insn **.
6149         (c6x_sched_reorder2): Strengthen param "ready" and locals
6150         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
6151         "insn" from rtx to rtx_insn *.
6152         (c6x_variable_issue):  Add a checked cast when assigning from insn
6153         to ss.last_scheduled_iter0.
6154         (split_delayed_branch): Strengthen param "insn" and local "i1"
6155         from rtx to rtx_insn *.
6156         (split_delayed_nonbranch): Likewise.
6157         (undo_split_delayed_nonbranch): Likewise for local "insn".
6158         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
6159         "entry_after", "end_packet", "head_insn", "tail_insn",
6160         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
6161         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
6162         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
6163         but add a checked cast on loop->start_label.  Consolidate calls to
6164         avoid assigning result of gen_spkernel to "insn", now an
6165         rtx_insn *.
6166
6167         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
6168         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
6169         rtx to rtx_insn *.
6170         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
6171         rtx_insn **.  Strengthen locals "top", "next" from rtx to
6172         rtx_insn *.
6173         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
6174         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
6175         (add_parameter_dependencies): Strengthen params "call", "head" and
6176         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
6177         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
6178         (add_dependee_for_func_arg): Likewise for param "arg" and local
6179         "insn".
6180         (ix86_dependencies_evaluation_hook): Likewise for params "head",
6181         "tail" and locals "insn", "first_arg".
6182
6183         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
6184         for params "head", "tail" and locals "insn", "next", "next_tail".
6185         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
6186         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
6187         "insn", "lowest", "highest" from rtx to rtx_insn *.
6188         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
6189         rtx_insn **.
6190         (ia64_sched_reorder2): Likewise.
6191
6192         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
6193         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
6194         from rtx * to rtx_insn **.
6195         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
6196         rtx_insn **.
6197         (mep_print_sched_insn): Strengthen param "insn" from rtx to
6198         rtx_insn *.
6199         (mep_sched_reorder): Strengthen param "ready" from rtx * to
6200         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
6201         to rtx_insn *.
6202
6203         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
6204         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
6205         to rtx_insn *.
6206         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
6207         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
6208         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
6209         rtx_insn **.
6210         (vr4130_reorder): Likewise.
6211         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
6212         rtx to rtx_insn *.
6213         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
6214         rtx_insn **.
6215         (mips_sched_reorder): Likewise.
6216         (mips_sched_reorder2): Likewise.
6217
6218         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
6219
6220         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
6221         Strengthen local "tmp" from rtx to rtx_insn *.
6222         (rs6000_sched_reorder2): Likewise.
6223
6224         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
6225         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
6226         (s390_sched_reorder): Strengthen param "ready" from rtx * to
6227         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
6228
6229         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
6230         "tmp2" from rtx to rtx_insn *.
6231         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
6232         Strengthen local "insn" from rtx to rtx_insn *.
6233         (ready_reorder): Strengthen param "ready" from rtx * to
6234         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
6235         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
6236         (sh_reorder2): Likewise.
6237
6238         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
6239         local "insn" from rtx to rtx_insn *.
6240
6241         * haifa-sched.c (note_list): Strengthen this variable from rtx to
6242         rtx_insn *.
6243         (scheduled_insns): Strengthen this variable from vec<rtx> to
6244         vec<rtx_insn *>.
6245         (set_modulo_params): Likewise for locals "i1", "i2".
6246         (record_delay_slot_pair): Likewise for params "i1", "i2".
6247         (add_delay_dependencies): Likewise for param "insn".
6248         (cond_clobbered_p): Likewise.
6249         (recompute_todo_spec): Likewise for local "prev".
6250         (last_scheduled_insn): Likewise for this variable.
6251         (nonscheduled_insns_begin): Likewise.
6252         (model_set_excess_costs): Strengthen param "insns" from rtx * to
6253         rtx_insn **.
6254         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
6255         rtx_insn *.
6256         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
6257         Strengthen local "insn" from rtx to rtx_insn *.
6258         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
6259         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
6260         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
6261         (ready_remove_first): Likewise for return type and local "t".
6262         (ready_element): Likewise for return type.
6263         (ready_remove): Likewise for return type and local "t".
6264         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
6265         (check_clobbered_conditions): Strengthen local "x" from rtx to
6266         rtx_insn *, adding a checked cast.
6267         (schedule_insn): Likewise for param "insn".
6268         (remove_notes): Likewise for params "head", "tail" and locals
6269         "next_tail", "insn", "next".
6270         (struct haifa_saved_data): Likewise for fields
6271         "last_scheduled_insn", "nonscheduled_insns_begin".
6272         (save_backtrack_point): Update for change to field "vec" of
6273         struct ready_list.
6274         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
6275         rtx_insn **.
6276         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
6277         from rtx to rtx_insn *
6278         (resolve_dependencies): Strengthen param "insn" from rtx to
6279         rtx_insn *
6280         (restore_other_notes): Likewise for return type, for param "head"
6281         and local "note_head".
6282         (undo_all_replacements): Likewise for local "insn".
6283         (first_nonscheduled_insn): Likewise for return type and local "insn".
6284         (queue_to_ready): Likewise for local "insn", adding checked casts.
6285         (early_queue_to_ready): Likewise for local "insn".
6286         (debug_ready_list_1): Strengthen local "p" from rtx * to
6287         rtx_insn **.
6288         (move_insn): Strengthen param "insn" and local "note" from rtx to
6289         rtx_insn *
6290         (insn_finishes_cycle_p): Likewise for param "insn".
6291         (max_issue): Likewise for local "insn".
6292         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
6293         to rtx_insn **.
6294         (commit_schedule): Strengthen param "prev_head" and local "insn"
6295         from rtx to rtx_insn *
6296         (prune_ready_list): Likewise for local "insn".
6297         (schedule_block): Likewise for locals "prev_head", "head", "tail",
6298         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
6299         (set_priorities): Likewise for local "prev_head".
6300         (try_ready): Likewise for param "next".
6301         (fix_tick_ready): Likewise.
6302         (change_queue_index): Likewise.
6303         (sched_extend_ready_list): Update for change to field "vec" of
6304         struct ready_list.
6305         (generate_recovery_code): Strengthen param "insn" from rtx to
6306         rtx_insn *.
6307         (begin_speculative_block): Likewise.
6308         (create_check_block_twin): Likewise for param "insn" and locals
6309         "label", "check", "twin".  Introduce local "check_pat" to avoid
6310         "check" being used as a plain rtx before being used as an insn.
6311         (fix_recovery_deps): Add a checked cast to rtx_insn * when
6312         extracting elements from ready_list.
6313         (sched_remove_insn): Strengthen param "insn" from rtx to
6314         rtx_insn *.
6315         (sched_emit_insn): Likewise for return type.
6316         (ready_remove_first_dispatch): Likewise for return type and local
6317         "insn".
6318
6319         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
6320
6321         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
6322         const rtx_insn *.
6323
6324         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
6325         from rtx to rtx_insn *.
6326         (add_dependence_list): Likewise for param "insn".  Add a checked
6327         cast.
6328         (add_dependence_list_and_free): Strengthen param "insn" from rtx
6329         to rtx_insn *.  Strengthen param "list_p" from rtx * to
6330         rtx_insn **.
6331         (chain_to_prev_insn): Strengthen param "insn" and locals
6332         "prec_nonnote", "i" from rtx to rtx_insn *.
6333         (flush_pending_lists): Likewise for param "insn".
6334         (cur_insn): Likewise for this variable.
6335         (haifa_start_insn): Add a checked cast.
6336         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
6337         (sched_analyze_reg): Likewise for param "insn".
6338         (sched_analyze_1): Likewise.
6339         (sched_analyze_2): Likewise.  Add checked casts.
6340         (sched_analyze_insn): Likewise.  Also for local "prev".
6341         (deps_analyze_insn): Likewise for param "insn".
6342         (sched_analyze): Likewise for params "head", "tail" and local "insn".
6343         (add_dependence_1): Likewise for params "insn", "elem".
6344         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
6345         (parse_add_or_inc): Likewise for param "insn".
6346         (find_inc): Likewise for local "inc_cand".
6347         (find_modifiable_mems): Likewise for params "head", "tail" and
6348         locals "insn", "next_tail".
6349
6350         * sched-ebb.c (init_ready_list): Likewise for local "insn".
6351         (begin_schedule_ready): Likewise for param "insn".
6352         (begin_move_insn): Likewise for params "insn" and "last".
6353         (ebb_print_insn): Strengthen param "insn" from const_rtx to
6354         const rtx_insn *.
6355         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
6356         (ebb_contributes_to_priority): Likewise for params "next", "insn".
6357         (ebb_add_remove_insn): Likewise for param "insn".
6358         (advance_target_bb): Likewise.
6359
6360         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
6361         "insn".
6362         (check_live): Likewise for param "insn".
6363         (init_ready_list): Likewise for local "insn".
6364         (can_schedule_ready_p): Likewise for param "insn".
6365         (begin_schedule_ready): Likewise.
6366         (new_ready): Likewise for param "next".
6367         (rgn_print_insn): Likewise for param "insn".
6368         (rgn_rank): Likewise for params "insn1", "insn2".
6369         (contributes_to_priority): Likewise for params "next", "insn".
6370         (rgn_insn_finishes_block_p): Likewise for param "insn".
6371         (add_branch_dependences): Likewise for params "head", "tail" and
6372         locals "insn", "last".
6373         (rgn_add_remove_insn): Likewise for param "insn".
6374         (advance_target_bb): Likewise.
6375
6376         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
6377         const_rtx to const rtx_insn *.
6378
6379         * sel-sched-dump.h (sel_print_insn): Likewise.
6380
6381         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
6382         (deps_init_id): Likewise.
6383
6384         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
6385         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
6386         rtx_insn **.
6387
6388 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6389
6390         * output.h (final_start_function): Strengthen param 1 from rtx to
6391         rtx_insn *.
6392
6393         * final.c (final_start_function): Likewise, renaming back from
6394         "uncast_first" to "first", and dropping the checked cast from rtx
6395         to rtx_insn *.
6396
6397 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6398
6399         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
6400         * final.c (final): Likewise.  Rename param back from
6401         "uncast_first" to "first" and eliminate the checked cast from rtx
6402         to rtx_insn *.
6403
6404 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6405
6406         * output.h (shorten_branches): Strengthen param from rtx to
6407         rtx_insn *.
6408
6409         * final.c (shorten_branches): Likewise, renaming param back from
6410         "uncast_first" to "first", and dropping the checked cast from rtx
6411         to rtx_insn *.
6412
6413         * genattr.c (gen_attr): Likewise when writing out the prototype of
6414         shorten_branches.
6415
6416 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6417
6418         * sched-int.h (struct haifa_sched_info): Strengthen fields
6419         "prev_head" and "next_tail" from rtx to rtx_insn *.
6420
6421 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6422
6423         * rtl.h (rtx_jump_table_data::get_labels): New method.
6424         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
6425         with use of the new rtx_jump_table_data::get_labels method.
6426         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
6427         to rtx_jump_table_data *.  Simplify by using get_labels method.
6428         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
6429         a dyn_cast, introducing local "table", using it to replace
6430         label-lookup logic with a get_labels method call.
6431         (patch_jump_insn): Simplify using get_labels method.
6432         * dwarf2cfi.c (create_trace_edges): Likewise.
6433         * rtlanal.c (label_is_jump_target_p): Likewise.
6434
6435 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6436
6437         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
6438         to rtx_insn *.
6439
6440         * emit-rtl.c (unshare_all_rtl_1): Likewise.
6441         (unshare_all_rtl_again): Likewise, also for local "p".
6442
6443 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6444
6445         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
6446         to rtx_insn *.
6447         * cfgrtl.c (delete_insn_and_edges): Likewise.
6448
6449 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6450
6451         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
6452         from rtx to rtx_insn *.
6453
6454         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
6455
6456 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6457
6458         * function.c (thread_prologue_and_epilogue_insns): Likewise for
6459         locals "returnjump", "epilogue_end", "insn", "next".
6460
6461         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
6462         "returnjump" from rtx * to rtx_insn **.
6463         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
6464
6465 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6466
6467         * basic-block.h (struct edge_def). Strengthen "r" within
6468         union edge_def_insns from rtx to rtx_insn *.
6469
6470         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
6471         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
6472         rtx_insn *.
6473         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
6474         from rtx to rtx_insn *.
6475         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
6476         rtx_insn *.
6477         * postreload-gcse.c (reg_killed_on_edge): Likewise.
6478         (reg_used_on_edge): Likewise.
6479         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
6480         (gt_pch_nx): New overload for rtx_insn *&.
6481         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
6482         from rtx to rtx_insn *.
6483
6484 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6485
6486         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
6487         from rtx to rtx_insn *.
6488         (BB_FOOTER): Replace function with access macro.
6489         (SET_BB_FOOTER): Delete.
6490
6491         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
6492         with BB_FOOTER.
6493         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
6494         (emit_barrier_after_bb): Likewise.
6495         (record_effective_endpoints): Likewise.
6496         (relink_block_chain): Likewise.
6497         (fixup_fallthru_exit_predecessor): Likewise.
6498         (cfg_layout_duplicate_bb): Likewise.
6499         (cfg_layout_split_block): Likewise.
6500         (cfg_layout_delete_block): Likewise.
6501         (cfg_layout_merge_blocks): Likewise.
6502         (BB_FOOTER): Delete function.
6503         (SET_BB_FOOTER): Delete function.
6504         * combine.c (update_cfg_for_uncondjump): Replace uses of
6505         SET_BB_FOOTER with BB_FOOTER.
6506
6507 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6508
6509         * except.h (struct eh_landing_pad_d): Strengthen field
6510         "landing_pad" from rtx to rtx_code_label *.
6511
6512         * except.c (sjlj_emit_dispatch_table): Likewise for param
6513         "dispatch_label"
6514         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
6515
6516 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6517
6518         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
6519         first param from rtx to rtx_insn *.
6520         * config/xtensa/xtensa.c (struct machine_function): Likewise for
6521         field "set_frame_ptr_insn".
6522         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
6523         "csend" from rtx to rtx_code_label *.
6524         (xtensa_expand_atomic): Likewise for local "csloop".
6525         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
6526         rtx_insn *.
6527         (xtensa_call_tls_desc): Likewise for return type and locals
6528         "call_insn", "insns".
6529         (xtensa_legitimize_tls_address): Likewise for local "insns".
6530         (xtensa_expand_prologue): Likewise for locals "insn", "first".
6531
6532 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6533
6534         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
6535         first param from rtx to rtx_insn *.
6536         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
6537         "insn".
6538
6539 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6540
6541         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
6542         Strengthen param 1 from rtx to rtx_insn *.
6543         (tilepro_output_cbranch): Likewise.
6544         (tilepro_adjust_insn_length): Likewise.
6545         (tilepro_final_prescan_insn): Likewise for sole param.
6546
6547         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
6548         Likewise for local "last".
6549         (cbranch_predicted_p): Likewise for param "insn".
6550         (tilepro_output_simple_cbranch_with_opcode): Likewise.
6551         (tilepro_output_cbranch_with_opcode): Likewise.
6552         (tilepro_output_cbranch): Likewise.
6553         (frame_emit_load): Likewise for return type and locals "seq",
6554         "insn".
6555         (emit_sp_adjust): Likewise for return type and local "insn".
6556         (tilepro_expand_epilogue): Likewise for locals "last_insn",
6557         "insn".
6558         (tilepro_adjust_insn_length): Likewise for param "insn".
6559         (next_insn_to_bundle): Likewise for return type and params
6560         "r", "end".
6561         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
6562         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
6563         local "new_insns".
6564         (match_addli_pcrel): Likewise for param "insn".
6565         (replace_addli_pcrel): Likewise.
6566         (match_auli_pcrel): Likewise.
6567         (replace_auli_pcrel): Likewise.
6568         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
6569         "next_insn".
6570         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
6571         "queue", "next_queue", "prev".
6572         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
6573         (tilepro_final_prescan_insn): Likewise for param "insn".
6574
6575 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6576
6577         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
6578         Strengthen param 1 from rtx to rtx_insn *.
6579         (tilegx_output_cbranch): Likewise.
6580         (tilegx_adjust_insn_length): Likewise.
6581         (tilegx_final_prescan_insn): Likewise for sole param.
6582
6583         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
6584         or local "last".
6585         (cbranch_predicted_p): Likewise for param "insn".
6586         (tilegx_output_simple_cbranch_with_opcode): Likewise.
6587         (tilegx_output_cbranch_with_opcode): Likewise.
6588         (tilegx_output_cbranch): Likewise.
6589         (frame_emit_load): Likewise for return type.
6590         (set_frame_related_p): Likewise for locals "seq", "insn".
6591         (emit_sp_adjust): Likewise for return type, and for local "insn".
6592         Introduce local "pat" for use in place of "insn" where the latter
6593         isn't an instruction.
6594         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
6595         from rtx to rtx_insn *.
6596         (tilegx_adjust_insn_length): Likewise for param "insn".
6597         (next_insn_to_bundle): Likewise for return type and params "r" and
6598         "end".
6599         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
6600         "end".
6601         (replace_insns): Likewise for params "old_insn", "new_insns".
6602         (replace_mov_pcrel_step1): Likewise for param "insn" and local
6603         "new_insns".
6604         (replace_mov_pcrel_step2): Likewise.
6605         (replace_mov_pcrel_step3): Likewise.
6606         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
6607         "next_insn".
6608         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
6609         "queue", "next_queue", "prev".
6610         (tilegx_output_mi_thunk): Likewise for local "insn".
6611         (tilegx_final_prescan_insn): Likewise for param "insn".
6612
6613 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6614
6615         * config/spu/spu.c (frame_emit_store): Strengthen return type from
6616         rtx to rtx_insn *.
6617         (frame_emit_load): Likewise.
6618         (frame_emit_add_imm): Likewise, also for local "insn".
6619         (spu_expand_prologue): Likewise for local "insn".
6620         (struct spu_bb_info): Likewise for field "prop_jump".
6621         (emit_nop_for_insn): Likewise for param "insn" and local
6622         "new_insn".
6623         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
6624         "hbr_insn".
6625         (spu_emit_branch_hint): Likewise for params "before", "branch" and
6626         locals "hint", "insn".
6627         (get_branch_target): Likewise for param "branch".
6628         (insn_clobbers_hbr): Likewise for param "insn".
6629         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
6630         locals "insn", "before_4", "before_16".
6631         (insert_hbrp): Likewise for local "insn".
6632         (spu_machine_dependent_reorg): Likewise for locals "branch",
6633         "insn", "next", "bbend".
6634         (uses_ls_unit): Likewise for param "insn".
6635         (get_pipe): Likewise.
6636         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
6637         introducing a checked cast.
6638         (spu_sched_adjust_cost): Likewise for params "insn" and
6639         "dep_insn".
6640         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
6641         (spu_sms_res_mii): Likewise.
6642
6643 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6644
6645         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
6646         from rtx to rtx_insn *.
6647         (output_cbranch): Likewise for param 6.
6648         (output_return): Likewise for param 1.
6649         (output_sibcall): Likewise.
6650         (output_v8plus_shift): Likewise.
6651         (output_v8plus_mult): Likewise.
6652         (output_v9branch): Likewise for param 7.
6653         (output_cbcond):  Likewise for param 3.
6654
6655         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
6656         for local "insn".
6657         (sparc_legitimize_pic_address): Likewise.
6658         (sparc_emit_call_insn): Likewise.
6659         (emit_save_or_restore_regs): Likewise.
6660         (emit_window_save): Likewise for return type and local "insn".
6661         (sparc_expand_prologue): Likewise for local "insn".
6662         (sparc_flat_expand_prologue): Likewise.
6663         (output_return): Likewise for param "insn".
6664         (output_sibcall): Likewise for param "insn" and local "delay".
6665         (output_ubranch): Likewise for param "insn".
6666         (output_cbranch): Likewise.
6667         (output_cbcond): Likewise.
6668         (output_v9branch): Likewise.
6669         (output_v8plus_shift): Likewise.
6670         (sparc_output_mi_thunk): Likewise for local "insn".
6671         (get_some_local_dynamic_name): Likewise.
6672         (output_v8plus_mult): Likewise for param "insn".
6673
6674 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6675
6676         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
6677         from rtx to rtx_insn *.
6678         (output_branchy_insn): Likewise for param 3.
6679         (output_far_jump): Likewise for param 1.
6680         (final_prescan_insn): Likewise.
6681         (sh_insn_length_adjustment): Likewise for sole param.
6682
6683         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
6684         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
6685         rtx_code_label *.
6686         (sh_emit_compare_and_set): Likewise for local "lab".
6687         (output_far_jump): Strengthen param "insn" and local "prev" from
6688         rtx to rtx_insn *.
6689         (output_branchy_insn): Likewise for param "insn" and local
6690         "next_insn".
6691         (output_ieee_ccmpeq): Likewise for param "insn".
6692         (struct label_ref_list_d): Strengthen field "label" from rtx to
6693         rtx_code_label *.
6694         (pool_node): Likewise.
6695         (pool_window_label): Likewise for this global.
6696         (add_constant): Likewise for return type and locals "lab", "new_rtx".
6697         (dump_table): Strengthen params "start", "barrier" and local
6698         "scan" from rtx to rtx_insn *.
6699         (broken_move): Likewise for param "insn".
6700         (untangle_mova): Likewise for params "first_mova" and "new_mova".
6701         Strengthen param "first_mova" from rtx * to rtx_insn **.
6702         (mova_p): Likewise for param "insn".
6703         (fixup_mova): Likewise for param "mova".
6704         (find_barrier): Likewise for return type, params "mova" and
6705         "from", and locals "barrier_before_mova", "found_barrier",
6706         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
6707         "label" from rtx to rtx_code_label *.
6708         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
6709         rtx to rtx_insn *.
6710         (sh_reorg): Likewise for locals "link", "scan", "barrier".
6711         (split_branches): Likewise for param "first" and local "insn".
6712         (final_prescan_insn): Likewise for param "insn".
6713         (sequence_insn_p): Likewise for locals "prev", "next".
6714         (sh_insn_length_adjustment): Likewise for param "insn".
6715         (sh_can_redirect_branch): Likewise for local "insn".
6716         (find_r0_life_regions): Likewise for locals "end", "insn".
6717         (sh_output_mi_thunk): Likewise for local "insns".
6718
6719 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6720
6721         * config/score/score.c (score_output_mi_thunk): Strengthen local
6722         "insn" from rtx to rtx_insn *.
6723         (score_prologue): Likewise.
6724
6725 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6726
6727         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
6728         1 from rtx to rtx_insn *.
6729         (s390_emit_jump): Likewise for return type.
6730         (s390_emit_call): Likewise.
6731         (s390_load_got): Likewise.
6732
6733         * config/s390/s390.c (last_scheduled_insn): Likewise for this
6734         variable.
6735         (s390_match_ccmode): Likewise for param "insn".
6736         (s390_emit_jump): Likewise for return type.
6737         (s390_split_branches): Likewise for local "label".
6738         (struct constant): Strengthen field "label" from rtx to
6739         rtx_code_label *.
6740         (struct constant_pool): Likewise for field "label".  Strengthen
6741         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
6742         rtx_insn *.
6743         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
6744         insns.
6745         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
6746         (s390_end_pool): Likewise.
6747         (s390_dump_pool): Likewise for local "insn".
6748         (s390_mainpool_start): Likewise.
6749         (s390_chunkify_start): Likewise.
6750         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
6751         with insns.  Strengthen locals "label", "jump", "barrier", "next",
6752         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
6753         (s390_chunkify_finish): Strengthen local "insn" from rtx to
6754         rtx_insn *.
6755         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
6756         "jump", "label", "next_insn".
6757         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
6758         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
6759         "tbegin_insn".
6760         (s390_load_got): Likewise for return type and local "insns".
6761         (s390_save_gprs_to_fprs): Likewise for local "insn".
6762         (s390_restore_gprs_from_fprs): Likewise.
6763         (pass_s390_early_mach::execute): Likewise.
6764         (s390_emit_prologue): Likewise for local "insns".
6765         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
6766         rtx_code_label *.
6767         (s390_emit_call): Strengthen return type and local "insn" from
6768         rtx to rtx_insn *.
6769         (s390_emit_tpf_eh_return): Likewise for local "insn".
6770         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
6771         "next_insn", introducing locals "s_pat", "rpat" to allow this.
6772         (s390_fix_long_loop_prediction): Likewise for param "insn" and
6773         local "cur_insn".
6774         (s390_non_addr_reg_read_p): Likewise for param "insn".
6775         (find_cond_jump): Likewise for return type and param "insn".
6776         (s390_swap_cmp): Likewise for param "insn".
6777         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
6778         "prev_insn", "next_insn".
6779         (s390_reorg): Likewise for locals "insn", "target".
6780         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
6781         (s390_sched_variable_issue): For now, rename param "insn" to
6782         "uncast_insn", introducing a checked cast.
6783         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
6784         insn.
6785         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
6786         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
6787
6788 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6789
6790         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
6791         param from rtx to rtx_insn *.
6792         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
6793
6794 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6795
6796         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
6797         4 from rtx to rtx_insn *.
6798         (rs6000_final_prescan_insn): Likewise for first param.
6799         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
6800         local "insn".
6801         (rs6000_get_some_local_dynamic_name): Likewise.
6802         (output_cbranch): Likewise for param "insn".
6803         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
6804         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
6805         (rs6000_emit_allocate_stack): Likewise for local "insn".
6806         (load_cr_save): Likewise.
6807         (restore_saved_cr): Likewise.
6808         (restore_saved_lr): Likewise.
6809         (emit_cfa_restores): Likewise.
6810         (rs6000_output_function_epilogue): Likewise for locals "insn" and
6811         "deleted_debug_label".
6812         (rs6000_output_mi_thunk): Likewise for local "insn".
6813         (rs6000_final_prescan_insn): Likewise for param "insn".
6814
6815 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6816
6817         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
6818         Strengthen param "insn" from rtx to rtx_insn *.
6819         * config/picochip/picochip.c (picochip_current_prescan_insn):
6820         Likewise for this variable.
6821         (picochip_final_prescan_insn): Likewise for param "insn".
6822
6823 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6824
6825         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
6826         from rtx to rtx_insn *.
6827         (pa_output_indirect_call): Likewise.
6828         (pa_adjust_insn_length): Likewise.
6829         (pa_attr_length_millicode_call): Likewise.
6830         (pa_attr_length_call): Likewise.
6831         (pa_attr_length_indirect_call): Likewise.
6832
6833         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
6834         "insn".
6835         (pa_attr_length_millicode_call): Likewise.
6836         (pa_attr_length_call): Likewise.
6837         (pa_output_call): Likewise.
6838         (pa_attr_length_indirect_call): Likewise.
6839         (pa_output_indirect_call): Likewise.
6840
6841 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6842
6843         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
6844         Strengthen first param from rtx to rtx_insn *.
6845         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
6846         param "insn".
6847
6848 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6849
6850         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
6851         type from rtx to rtx_insn *.
6852         (mips_expand_call): Likewise.
6853         (mips_adjust_insn_length): Likewise for first param.
6854         (mips_output_conditional_branch): Likewise.
6855         (mips_output_order_conditional_branch): Likewise.
6856         (mips_final_prescan_insn): Likewise.
6857
6858         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
6859         rtx_insn * for the SEQUENCE case.
6860         (SEQ_END): Likewise.
6861         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
6862         (mips_emit_call_insn): Likewise, also for local "insn".
6863         (mips16_gp_pseudo_reg): Likewise for local "scan".
6864         (mips16_build_call_stub): Likewise for return type and for local
6865         "insn".  Introduce a new local "pattern" so that "insn" can indeed
6866         be an insn.
6867         (mips_expand_call): Strengthen return type and local "insn" from
6868         rtx to rtx_insn *.
6869         (mips_block_move_loop): Strengthen local "label" from rtx to
6870         rtx_code_label *.
6871         (mips_expand_synci_loop): Likewise for locals "label",
6872         "end_label".
6873         (mips_set_frame_expr): Strengthen local "insn" from rtx to
6874         rtx_insn *.
6875         (mips16e_collect_argument_saves): Likewise for locals "insn",
6876         "next".
6877         (mips_find_gp_ref): Likewise for param of callback for "pred"
6878         param, and for local "insn".
6879         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
6880         (mips_insn_has_flexible_gp_ref_p): Likewise.
6881         (mips_epilogue_emit_cfa_restores): Likewise for return type and
6882         local "insn".
6883         (mips_epilogue_set_cfa): Likewise for local "insn".
6884         (mips_expand_epilogue): Likewise.
6885         (mips_adjust_insn_length): Likewise for param "insn".
6886         (mips_output_conditional_branch): Likewise.
6887         (mips_output_order_conditional_branch): Likewise.
6888         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
6889         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
6890         "falu2_turn_enabled_insn".
6891         (mips_builtin_branch_and_move): Strengthen locals "true_label",
6892         "done_label" from rtx to rtx_code_label *.
6893         (struct mips16_constant): Likewise for field "label".
6894         (mips16_add_constant): Likewise for return type.
6895         (mips16_emit_constants_1): Strengthen return type and param "insn"
6896         from rtx to rtx_insn *.
6897         (mips16_emit_constants): Likewise for param "insn".
6898         (mips16_insn_length): Likewise.
6899         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
6900         to rtx_code_label *.
6901         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
6902         from rtx to rtx_insn *.
6903         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
6904         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
6905         (r10k_simplify_address): Strengthen param "insn" and local
6906         "def_insn" from rtx to rtx_insn *.
6907         (r10k_safe_address_p): Strengthen param "insn" from rtx to
6908         rtx_insn *.
6909         (r10k_needs_protection_p_1): Update target type of cast of data
6910         from to rtx to rtx_insn *.
6911         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
6912         rtx * to rtx_insn **.
6913         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
6914         rtx_insn *.
6915         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
6916         (mips_call_expr_from_insn): Likewise for param "insn".
6917         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
6918         (mips_find_pic_call_symbol): Likewise for param "insn".
6919         (mips_annotate_pic_calls): Likewise for local "insn".
6920         (mips_sim_insn): Likewise for this variable.
6921         (struct mips_sim): Likewise for field "insn" within elements of
6922         last_set array.
6923         (mips_sim_wait_reg): Likewise for param "insn".
6924         (mips_sim_wait_regs): Likewise.
6925         (mips_sim_wait_units): Likewise.
6926         (mips_sim_wait_insn): Likewise.
6927         (mips_sim_issue_insn): Likewise.
6928         (mips_sim_finish_insn): Likewise.
6929         (mips_seq_time): Likewise for param "seq" and local "insn".
6930         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
6931         locals "first", "second".
6932         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
6933         "last", "last2", "next".
6934         (mips_avoid_hazard): Likewise for params "after", "insn".
6935         (mips_reorg_process_insns): Likewise for locals "insn",
6936         "last_insn", "subinsn", "next_insn".
6937         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
6938         (mips16_split_long_branches): Likewise for locals "insn" "jump",
6939         "jump_sequence".
6940         (mips_output_mi_thunk): Likewise for local "insn".
6941         (mips_final_prescan_insn): Likewise for param "insn".
6942
6943 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6944
6945         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
6946         Strengthen return type and local "insns" from rtx to rtx_insn *.
6947         (microblaze_legitimize_tls_address): Likewise for local "insns".
6948         (microblaze_block_move_loop): Strengthen local "label" from rtx
6949         to rtx_code_label *.
6950         (microblaze_expand_prologue): Strengthen two locals named "insn"
6951         from rtx to rtx_insn *.
6952         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
6953         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
6954         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
6955         to rtx_code_label *.
6956
6957 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6958
6959         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
6960         param from rtx to rtx_insn *.
6961         (mep_reuse_lo): Likewise for third param.
6962         (mep_use_post_modify_p): Likewise for first param.
6963         (mep_core_address_length): Likewise.
6964         (mep_cop_address_length): Likewise.
6965         (mep_final_prescan_insn): Likewise.
6966         (mep_store_data_bypass_p): Likewise for both params.
6967         (mep_mul_hilo_bypass_p): Likewise.
6968         (mep_ipipe_ldc_p): Likewise for param.
6969
6970         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
6971         (mep_rewrite_mult): Likewise.
6972         (mep_rewrite_mulsi3): Likewise.
6973         (mep_rewrite_maddsi3): Likewise.
6974         (mep_reuse_lo_p_1): Likewise.
6975         (mep_reuse_lo_p): Likewise.
6976         (mep_frame_expr): Likewise.
6977         (mep_make_parallel): Likewise for both params.
6978         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
6979         local "insn".
6980         (mep_use_post_modify_p): Likewise for param "insn".
6981         (mep_core_address_length): Likewise.
6982         (mep_cop_address_length): Likewise.
6983         (mep_reg_set_in_function): Likewise for local "insn".
6984         (mep_asm_without_operands_p): Likewise.
6985         (F): Likewise for return type and param "x".
6986         (add_constant): Likewise for local "insn".
6987         (maybe_dead_move): Likewise for return type and local "insn".
6988         (mep_expand_prologue): Likewise for local "insn".
6989         (mep_final_prescan_insn): Likewise for param "insn".
6990         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
6991         "next", "follow", "x".
6992         (mep_insert_repeat_label_last): Likewise for return type, param
6993         "last_insn", and locals "next", "prev".  Strengthen param "label"
6994         from rtx to rtx_code_label *.
6995         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
6996         rtx_insn *.
6997         (struct mep_doloop_end): Likewise for fields "insn" and
6998         "fallthrough".
6999         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
7000         Strengthen local "repeat_label" from rtx to rtx_code_label *.
7001         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
7002         rtx_insn *.
7003         (mep_invert_branch): Likewise for params "insn" and "after".
7004         (mep_reorg_erepeat): Likewise for param "insns" and locals
7005         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
7006         "l" from rtx to rtx_code_label *.
7007         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
7008         from rtx to rtx_insn *.
7009         (mep_reorg_addcombine): Likewise for param "insns" and locals
7010         "i", "n".
7011         (add_sp_insn_p): Likewise for param "insn".
7012         (mep_reorg_noframe): Likewise for param "insns" and locals
7013         "start_frame_insn", "end_frame_insn", "next".
7014         (mep_reorg): Likewise for local "insns".
7015         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
7016         cast.
7017         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
7018         (mep_mul_hilo_bypass_p): Likewise.
7019         (mep_ipipe_ldc_p): Likewise for param "insn".
7020         (mep_make_bundle): Likewise for return type, param "cop" and local
7021         "insn", splitting out the latter into a new local "seq" for when it
7022         is a SEQUENCE rather than an insn.
7023         (core_insn_p): Likewise for param "insn".
7024         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
7025         "last", "first", "note", "prev", "core_insn".
7026
7027 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7028
7029         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
7030         rtx to rtx_insn *.
7031         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
7032         (m68k_final_prescan_insn): Likewise for first param.
7033
7034         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
7035         (m68k_set_frame_related): Likewise for param "insn".
7036         (output_btst): Likewise for param "insn".
7037         (m68k_final_prescan_insn): Likewise.
7038         (m68k_move_to_reg): Likewise for local "insn".
7039         (m68k_call_tls_get_addr): Likewise for local "insns".
7040         (m68k_call_m68k_read_tp): Likewise.
7041         (strict_low_part_peephole_ok): Likewise for param "first_insn".
7042         (m68k_output_mi_thunk): Likewise for local "insn".
7043
7044 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7045
7046         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
7047         first param from rtx to rtx_insn *.
7048         (iq2000_adjust_insn_length): Likewise.
7049         (iq2000_output_conditional_branch): Likewise.
7050         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
7051         "insn" and local "nop_insn".
7052         (iq2000_annotate_frame_insn): Likewise for param "insn".
7053         (iq2000_expand_prologue): Likewise for both locals "insn".
7054         (iq2000_adjust_insn_length): Likewise for param "insn".
7055         (iq2000_output_conditional_branch): Likewise.
7056
7057 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7058
7059         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
7060         "insns" from rtx to rtx_insn *.
7061         (ia64_emit_cond_move): Likewise for locals "insn", "first".
7062         (struct spill_fill_data): Likewise for field "init_after" and for
7063         elements of array field "prev_insn".
7064         (spill_restore_mem): Likewise for locals "insn", "first".
7065         (do_spill): Likewise for local "insn".
7066         (do_restore): Likewise.
7067         (ia64_expand_prologue): Likewise.
7068         (ia64_expand_epilogue): Likewise.
7069         (emit_insn_group_barriers): Likewise for locals "insn",
7070         "last_label".
7071         (emit_all_insn_group_barriers): Likewise for locals "insn",
7072         "last".
7073         (dfa_stop_insn): Likewise for this global.
7074         (dfa_pre_cycle_insn): Likewise.
7075         (ia64_nop): Likewise.
7076         (final_emit_insn_group_barriers): Likewise for locals "insn",
7077         "last".
7078         (emit_predicate_relation_info): Likewise for locals "head", "n",
7079         "insn", "b", "a".
7080         (ia64_reorg): Likewise for local "insn".
7081         (ia64_output_mi_thunk): Likewise.
7082         (expand_vec_perm_interleave_2): Likewise for local "seq".
7083
7084 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7085
7086         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
7087         param 1 "insn" from rtx to rtx_insn *.
7088         (ix86_use_lea_for_mov): Likewise.
7089         (ix86_avoid_lea_for_addr): Likewise.
7090         (ix86_split_lea_for_addr): Likewise.
7091         (ix86_lea_for_add_ok): Likewise.
7092         (ix86_output_call_insn): Likewise.
7093
7094         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
7095         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
7096         (ix86_output_function_epilogue): Likewise for locals "insn",
7097         "deleted_debug_label".
7098         (legitimize_tls_address): Likewise for local "insn".
7099         (get_some_local_dynamic_name): Likewise.
7100         (increase_distance): Likewise for params "prev", "next".
7101         (distance_non_agu_define_in_bb): Likewise for params "insn",
7102         "start" and locals "prev", "next".
7103         (distance_non_agu_define): Likewise for param "insn".
7104         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
7105         locals "next", "prev".
7106         (distance_agu_use): Likewise for param "insn".
7107         (ix86_lea_outperforms): Likewise.
7108         (ix86_ok_to_clobber_flags): Likewise.
7109         (ix86_avoid_lea_for_add): Likewise.
7110         (ix86_use_lea_for_mov): Likewise.
7111         (ix86_avoid_lea_for_addr): Likewise.
7112         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
7113         (ix86_split_lea_for_addr): Likewise for param "insn".
7114         (ix86_lea_for_add_ok): Likewise for param "insn".
7115         (ix86_expand_carry_flag_compare): Likewise for local
7116         "compare_seq".
7117         (ix86_expand_int_movcc): Likewise.
7118         (ix86_output_call_insn): Likewise for param "insn".
7119         (ix86_output_call_insn): Likewise for local "i".
7120         (x86_output_mi_thunk): Introduce local "insn", using it in place
7121         of "tmp" when dealing with insns.
7122         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
7123         "start".
7124         (ix86_pad_returns): Likewise for locals "ret", "prev".
7125         (ix86_count_insn_bb): Likewise for local "insn".
7126         (ix86_pad_short_function): Likewise for locals "ret", "insn".
7127         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
7128         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
7129         (expand_vec_perm_interleave2): Likewise for local "seq".
7130         (expand_vec_perm_vperm2f128_vblend): Likewise.
7131         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
7132         call to for_each_rtx with for_each_rtx_in_insn.
7133
7134 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7135
7136         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
7137         "label" from rtx to rtx_code_label *.
7138         (ix86_expand_prologue): Likewise.
7139         (ix86_expand_split_stack_prologue): Likewise for locals "label",
7140         "varargs_label".
7141         (ix86_split_idivmod): Likewise for locals "end_label" and
7142         "qimode_label".
7143         (ix86_expand_branch): Likewise for local "label2".
7144         (ix86_expand_aligntest): Likewise for return type and local "label".
7145         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
7146         "top_label".
7147         (expand_movmem_epilogue): Likewise for the various locals named
7148         "label".
7149         (expand_setmem_epilogue): Likewise.
7150         (expand_small_movmem_or_setmem): Likewise for local "label".
7151         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
7152         Strengthen param "done_label" from rtx * to rtx_code_label **.
7153         Strengthen locals "loop_label" and "label" from rtx to
7154         rtx_code_label *.
7155         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
7156         Likewise for locals "loop_label", "label".
7157         (ix86_expand_set_or_movmem): Likewise for locals "label",
7158         "jump_around_label", "hot_label".
7159         (ix86_expand_strlensi_unroll_1): Likewise for locals
7160         "align_2_label", align_3_label", "align_4_label", "end_0_label",
7161         "end_2_label".
7162         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
7163         (void ix86_emit_i387_log1p): Likewise for locals "label1",
7164         "label2", "jump_label".
7165         (ix86_expand_sse_compare_and_jump): Likewise for return type and
7166         local "label".
7167         (ix86_expand_lfloorceil): Likewise for local "label".
7168         (ix86_expand_rint): Likewise.
7169         (ix86_expand_floorceildf_32): Likewise.
7170         (ix86_expand_floorceil): Likewise.
7171         (ix86_expand_rounddf_32): Likewise.
7172         (ix86_expand_trunc): Likewise.
7173         (ix86_expand_truncdf_32): Likewise.
7174         (ix86_expand_round): Likewise.
7175
7176 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7177
7178         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
7179         first param from rtx to rtx_insn *.
7180         (h8300_insn_length_from_table): Likewise.
7181         * config/h8300/h8300.c (F): Likewise for return type and param
7182         "x".
7183         (Fpa): Add a checked cast to rtx_insn *.
7184         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
7185         rtx_insn *.
7186         (final_prescan_insn): Likewise for param "insn".
7187         (h8300_binary_length): Likewise.
7188         (h8300_insn_length_from_table): Likewise.
7189
7190 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7191
7192         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
7193         Strengthen first param "insn" from rtx to rtx_insn *.
7194
7195         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
7196         Likewise.
7197         (frame_insn): Likewise for return type.  Introduce local "insn"
7198         for use in place of local "x" for use as an rtx_insn *.
7199         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
7200         (epiphany_expand_prologue): Likewise for local "insn".
7201         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
7202         * config/epiphany/resolve-sw-modes.c
7203         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
7204         "seq".
7205
7206 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7207
7208         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
7209         param from rtx to rtx_insn *.
7210         (c6x_final_prescan_insn): Likewise for first param.
7211
7212         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
7213         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
7214         (c6x_expand_compare): Strengthen local "insns" from rtx to
7215         rtx_insn *.
7216         (c6x_get_unit_specifier): Likewise for param "insn".
7217         (c6x_print_unit_specifier_field): Likewise.
7218         (c6x_final_prescan_insn): Likewise.
7219         (emit_add_sp_const): Likewise for local "insn".
7220         (c6x_expand_prologue): Likewise.
7221
7222 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7223
7224         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
7225         param 1 from rtx to rtx_insn *.
7226         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
7227         the various locals named "insn".
7228         (expand_epilogue_reg_restore): Likewise.
7229         (frame_related_constant_load): Likewise.
7230         (add_to_reg): Likewise.
7231         (emit_link_insn): Likewise.
7232         (do_link): Likewise.
7233         (expand_interrupt_handler_prologue): Likewise.
7234         (branch_dest): Likewise for param "branch".
7235         (asm_conditional_branch): Likewise for param "insn".
7236         (gen_one_bundle): Likewise for elements of param "slot" and local
7237         "t".
7238         (bfin_gen_bundles): Likewise for locals "insn", "next" and
7239         elements of local "slot".
7240         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
7241         "queue", "next_queue", "prev".
7242         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
7243         (add_sched_insns_for_speculation): Likewise for local "insn".
7244
7245 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7246
7247         * config/avr/avr-protos.h (output_movqi): Strengthen first param
7248         from rtx to rtx_insn *.
7249         (output_movhi): Likewise.
7250         (output_movsisf): Likewise.
7251         (avr_out_tstsi): Likewise.
7252         (avr_out_tsthi): Likewise.
7253         (avr_out_tstpsi): Likewise.
7254         (avr_out_compare): Likewise.
7255         (avr_out_compare64): Likewise.
7256         (avr_out_movpsi): Likewise.
7257         (ashlqi3_out): Likewise.
7258         (ashlhi3_out): Likewise.
7259         (ashlsi3_out): Likewise.
7260         (ashrqi3_out): Likewise.
7261         (ashrhi3_out): Likewise.
7262         (ashrsi3_out): Likewise.
7263         (lshrqi3_out): Likewise.
7264         (lshrhi3_out): Likewise.
7265         (lshrsi3_out): Likewise.
7266         (avr_out_ashlpsi3): Likewise.
7267         (avr_out_ashrpsi3): Likewise.
7268         (avr_out_lshrpsi3): Likewise.
7269         (avr_out_fract): Likewise.
7270         (avr_out_sbxx_branch): Likewise.
7271         (avr_out_round): Likewise.
7272         (avr_out_xload): Likewise.
7273         (avr_out_movmem): Likewise.
7274         (adjust_insn_length): Likewise.
7275         (avr_out_lpm): Likewise.
7276         (reg_unused_after): Likewise.
7277         (_reg_unused_after): Likewise.
7278         (avr_jump_mode): Likewise for second param.
7279         (jump_over_one_insn): Likewise for first param.
7280         (avr_final_prescan_insn): Likewise.
7281         (out_shift_with_cnt): Likewise for second param.
7282
7283         * config/avr/avr.c (get_sequence_length): Likewise for param
7284         "insns" and local "insn".
7285         (emit_push_byte): Likewise for local "insn".
7286         (emit_push_sfr): Likewise.
7287         (avr_prologue_setup_frame): Likewise for locals "insn",
7288         "fp_plus_insns", "sp_plus_insns".
7289         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
7290         "sp_plus_insns".
7291         (avr_jump_mode): Likewise for param "insn".
7292         (avr_final_prescan_insn): Likewise.
7293         (avr_find_unused_d_reg): Likewise.
7294         (avr_out_lpm_no_lpmx): Likewise.
7295         (avr_out_lpm): Likewise.
7296         (avr_out_xload): Likewise.
7297         (output_movqi): Likewise.
7298         (output_movhi): Likewise.
7299         (out_movqi_r_mr): Likewise.
7300         (out_movhi_r_mr): Likewise.
7301         (out_movsi_r_mr): Likewise.
7302         (out_movsi_mr_r): Likewise.
7303         (output_movsisf): Likewise.
7304         (avr_out_load_psi): Likewise.
7305         (avr_out_store_psi): Likewise.
7306         (avr_out_movpsi): Likewise.
7307         (out_movqi_mr_r): Likewise.
7308         (avr_out_movhi_mr_r_xmega): Likewise.
7309         (out_movhi_mr_r): Likewise.
7310         (compare_condition): Likewise for param "insn" and local "next".
7311         (compare_sign_p): Likewise for param "insn".
7312         (compare_diff_p): Likewise.
7313         (compare_eq_p): Likewise.
7314         (avr_out_compare): Likewise.
7315         (avr_out_compare64): Likewise.
7316         (avr_out_tsthi): Likewise.
7317         (avr_out_tstpsi): Likewise.
7318         (avr_out_tstsi): Likewise.
7319         (out_shift_with_cnt): Likewise.
7320         (ashlqi3_out): Likewise.
7321         (ashlhi3_out): Likewise.
7322         (avr_out_ashlpsi3): Likewise.
7323         (ashlsi3_out): Likewise.
7324         (ashrqi3_out): Likewise.
7325         (ashrhi3_out): Likewise.
7326         (avr_out_ashrpsi3): Likewise.
7327         (ashrsi3_out): Likewise.
7328         (lshrqi3_out): Likewise.
7329         (lshrhi3_out): Likewise.
7330         (avr_out_lshrpsi3): Likewise.
7331         (lshrsi3_out): Likewise.
7332         (avr_out_fract): Likewise.
7333         (avr_out_round): Likewise.
7334         (avr_adjust_insn_length): Likewise.
7335         (reg_unused_after): Likewise.
7336         (_reg_unused_after): Likewise.
7337         (avr_compare_pattern): Likewise.
7338         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
7339         and locals "branch1", "branch2", "insn2", "jump".
7340         (avr_reorg): Likewise for local "insn".
7341         (avr_2word_insn_p): Likewise for param "insn".
7342         (jump_over_one_insn_p): Likewise.
7343         (avr_out_sbxx_branch): Likewise.
7344         (avr_out_movmem): Likewise.
7345
7346 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7347
7348         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
7349         param from rtx to rtx_insn *.
7350         (thumb1_final_prescan_insn): Likewise.
7351         (thumb2_final_prescan_insn): Likewise.
7352
7353         * config/arm/arm.c (emit_set_insn): Strengthen return type from
7354         rtx to rtx_insn *.
7355         (struct minipool_node): Likewise for field "insn".
7356         (dump_minipool): Likewise for param "scan".
7357         (create_fix_barrier): Likewise for local "from".  Strengthen local
7358         "label" from rtx to rtx_code_label *.
7359         (push_minipool_barrier): Strengthen param "insn" from rtx to
7360         rtx_insn *.
7361         (push_minipool_fix): Likewise.
7362         (note_invalid_constants): Likewise.
7363         (thumb2_reorg): Likewise for local "insn".
7364         (arm_reorg): Likewise.
7365         (thumb2_final_prescan_insn): Likewise for param
7366         "insn" and local "first_insn".
7367         (arm_final_prescan_insn): Likewise for param "insn" and locals
7368         "start_insn", "this_insn".
7369         (arm_debugger_arg_offset): Likewise for param "insn".
7370         (thumb1_emit_multi_reg_push): Likewise for return type and local
7371         "insn".
7372         (thumb1_final_prescan_insn): Likewise for param "insn".
7373         (thumb_far_jump_used_p): Likewise for local "insn".
7374         (thumb1_expand_prologue): Likewise.
7375         (arm_expand_epilogue_apcs_frame): Likewise.
7376         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
7377         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
7378         from rtx to rtx_code_label *.
7379         (arm_split_atomic_op): Likewise for local "label".
7380         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
7381
7382 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7383
7384         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
7385         first param from rtx to rtx_insn *.
7386         (arc_verify_short): Likewise.
7387         (arc_short_long): Likewise.
7388         (arc_need_delay): Likewise.
7389
7390         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
7391         "target_insn".
7392         (arc_ccfsm_advance): Likewise for param "insn" and locals
7393         "start_insn", "this_insn".
7394         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
7395         (arc_ccfsm_post_advance): Likewise for param "insn".
7396         (arc_next_active_insn): Likewise for return type and param "insn".
7397         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
7398         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
7399         (output_short_suffix): Likewise for local "insn".
7400         (arc_final_prescan_insn): Likewise for param "insn".  Remove
7401         now-redundant checked cast.
7402         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
7403         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
7404         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
7405         for use where lc_set became an insn.
7406         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
7407         rtx to rtx_insn *.
7408         (arc_get_insn_variants): Likewise for local "prev".
7409         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
7410         "next".
7411         (arc_predicate_delay_insns): Likewise for local "insn".
7412         (arc_pad_return): Likewise for local "prev".  For now, add a
7413         checked cast when extracting the insn from "final_sequence".
7414         (arc_short_long): Likewise for param "insn".
7415         (arc_need_delay): Likewise for param "insn" and local "next".
7416         (arc_label_align): Likewise for locals "prev", "next".
7417
7418 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7419
7420         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
7421         "insn" from rtx to rtx_insn *.
7422         (alpha_gp_save_rtx): Likewise for local "seq".
7423         (alpha_instantiate_decls): Likewise for local "top".
7424         (get_some_local_dynamic_name): Likewise for local "insn".
7425         (alpha_does_function_need_gp): Likewise.
7426         (set_frame_related_p): Likewise for return type and for locals
7427         "seq" and "insn".
7428         (emit_frame_store_1): Likewise for local "insn".
7429         (alpha_expand_prologue): Likewise for locals "insn", "seq".
7430         (alpha_end_function): Likewise for local "insn".
7431         (alpha_output_mi_thunk_osf): Likewise.
7432         (alphaev4_insn_pipe): Likewise for param "insn".
7433         (alphaev5_insn_pipe): Likewise.
7434         (alphaev4_next_group): Likewise for return type and param 1
7435         "insn".
7436         (alphaev5_next_group): Likewise.
7437         (alpha_align_insns_1): Likewise for return type and param 1 of
7438         callback param "next_group", and for locals "i", "next", "prev",
7439         "where", "where2", "insn".
7440
7441 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
7442
7443         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
7444         rather than modifying the stmt.
7445
7446 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7447
7448         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
7449         cgraph_state conversion.
7450
7451 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7452
7453         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7454         Strengthen local "insns" from rtx to rtx_insn *.
7455         (aarch64_set_frame_expr): Likewise for local "insn".
7456         (aarch64_save_or_restore_fprs): Likewise.
7457         (aarch64_save_or_restore_callee_save_registers): Likewise.
7458         (aarch64_expand_prologue): Likewise.
7459         (aarch64_expand_epilogue): Likewise.
7460         (aarch64_output_mi_thunk): Likewise.
7461         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
7462         "label2" from rtx to rtx_code_label *.
7463         (aarch64_split_atomic_op): Likewise for local "label".
7464
7465 2014-08-25  Martin Liska  <mliska@suse.cz>
7466
7467         * cgraph.h (symtab_node):
7468         (bool needed_p (void)): created from decide_is_symbol_needed
7469         (bool referred_to_p (void)): created from referred_to_p
7470         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
7471         * cgraph.h (cgraph_node):
7472         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
7473         (void expand (void)): created from expand_function
7474         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
7475         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
7476         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
7477         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
7478         * cgraph.h (varpool_node):
7479         (static void add (tree decl): created from varpool_add_new_variable
7480         * cgraph.h (cgraph_edge):
7481         void remove (void);
7482         (void remove_caller (void)): created from cgraph_edge_remove_caller
7483         (void remove_callee (void)): created from cgraph_edge_remove_callee
7484         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
7485           created from cgraph_set_call_stmt
7486         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
7487         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
7488         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
7489           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
7490         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
7491           created from cgraph_speculative_call_info
7492         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
7493           int freq_scale, bool update_original)): created from cgraph_clone_edge
7494         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
7495         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
7496         (bool recursive_p (void)): created from cgraph_edge_recursive_p
7497         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
7498         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
7499         (static void rebuild_references (void)): created from cgraph_rebuild_references
7500         * cgraph.h (symbol_table):
7501         (create_reference): renamed from add_reference
7502         (maybe_create_reference): renamed from maybe_add_reference
7503         (void register_symbol (symtab_node *node)): new function
7504         (void clear_asm_symbols (void)): new function
7505         (void unregister (symtab_node *node)): new function
7506         (void release_symbol (cgraph_node *node, int uid)): new function
7507         (cgraph_node * allocate_cgraph_symbol (void)): new function
7508         (void initialize (void)): created from cgraph_init
7509         (symtab_node *first_symbol (void)):new function
7510         (asm_node *first_asm_symbol (void)):new function
7511         (symtab_node *first_defined_symbol (void)):new function
7512         (varpool_node *first_variable (void)):new function
7513         (varpool_node *next_variable (varpool_node *node)):new function
7514         (varpool_node *first_static_initializer (void)):new function
7515         (varpool_node *next_static_initializer (varpool_node *node)):new function
7516         (varpool_node *first_defined_variable (void)):new function
7517         (varpool_node *next_defined_variable (varpool_node *node)):new function
7518         (cgraph_node *first_defined_function (void)):new function
7519         (cgraph_node *next_defined_function (cgraph_node *node)):new function
7520         (cgraph_node *first_function (void)):new function
7521         (cgraph_node *next_function (cgraph_node *node)):new function
7522         (cgraph_node *first_function_with_gimple_body (void)):new function
7523         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
7524         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
7525           created from symtab_remove_unreachable_nodes
7526         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
7527         (void process_new_functions (void)): created from cgraph_process_new_functions
7528         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
7529         (bool output_variables (void)): created from varpool_node::output_variables
7530         (void output_asm_statements (void)): created from output_asm_statements
7531         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
7532         (void compile (void)): created from compile
7533         (void output_weakrefs (void)): created from output_weakrefs
7534         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
7535         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
7536           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
7537         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
7538         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
7539           created from cgraph_next_function_with_gimple_body
7540         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
7541           created from cgraph_remove_edge_removal_hook
7542         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
7543           created from cgraph_add_node_removal_hook
7544         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
7545           created from cgraph_remove_node_removal_hook
7546         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
7547           created from varpool_add_node_removal_hook
7548         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
7549           created from varpool_remove_node_removal_hook
7550         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
7551           created from cgraph_add_function_insertion_hook
7552         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
7553           created from cgraph_remove_function_insertion_hook
7554         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
7555           created from varpool_add_variable_insertion_hook
7556         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
7557           created from varpool_remove_variable_insertion_hook
7558         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
7559           created from cgraph_add_edge_duplication_hook
7560         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
7561           created from cgraph_remove_edge_duplication_hook
7562         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
7563           created from cgraph_add_node_duplication_hook
7564         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
7565           created from cgraph_remove_node_duplication_hook
7566         (void call_edge_removal_hooks (cgraph_edge *e)):
7567           created from cgraph_call_edge_removal_hooks
7568         (void call_cgraph_insertion_hooks (cgraph_node *node)):
7569           created from call_function_insertion_hooks 
7570         (void call_cgraph_removal_hooks (cgraph_node *node)):
7571           created from cgraph_call_node_removal_hooks 
7572         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
7573           created from cgraph_node::call_duplication_hooks 
7574         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
7575           created from cgraph_call_edge_duplication_hooks
7576         (void call_varpool_removal_hooks (varpool_node *node)):
7577           created from varpool_call_node_removal_hooks
7578         (void call_varpool_insertion_hooks (varpool_node *node)):
7579           created from varpool_call_variable_insertion_hooks
7580         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
7581           created from insert_to_assembler_name_hash
7582         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
7583           created from unlink_from_assembler_name_hash
7584         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
7585           created from symtab_prevail_in_asm_name_hash
7586         (void symtab_initialize_asm_name_hash (void)):
7587           created from symtab_initialize_asm_name_hash
7588         (void change_decl_assembler_name (tree decl, tree name)):
7589           created from change_decl_assembler_name
7590         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
7591         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
7592           created from decl_assembler_name_hash
7593         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
7594           created from decl_assembler_name_equal
7595         (static hashval_t hash_node_by_assembler_name (const void *p)):
7596           created from hash_node_by_assembler_name
7597         (static int eq_assembler_name (const void *p1, const void *p2)):
7598           created from eq_assembler_name
7599
7600 2014-08-25  Marek Polacek  <polacek@redhat.com>
7601
7602         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
7603
7604 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
7605
7606         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
7607         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
7608         SWI1248_AVX512BW mode iterator.
7609
7610 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
7611
7612         PR target/62111
7613         * config/sh/predicates.md (general_extend_operand): Disable
7614         TRUNCATE before reload completes.
7615
7616 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
7617
7618         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
7619
7620 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
7621
7622         PR target/61996
7623         * config/sh/sh.opt (musermode): Allow negative form.
7624         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
7625         targets that don't support it.
7626         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
7627         Document -mno-usermode option.
7628
7629 2014-08-24  Kito Cheng  <kito@0xlab.org>
7630
7631         * system.h (CALLER_SAVE_PROFITABLE): Poison.
7632         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
7633         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
7634         * doc/tm.texi: Regenerate.
7635
7636 2014-08-24  Kito Cheng  <kito@0xlab.org>
7637
7638         * ira.c: Fix typo in comment.
7639
7640 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
7641
7642         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
7643         Deprecate c++1y. Change language to reflect greater confidence in C++14.
7644
7645 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
7646
7647         PR target/62038
7648         * config/pa/pa.c (pa_output_function_epilogue): Don't set
7649         last_address when the current function is a thunk.
7650         (pa_asm_output_mi_thunk): When we don't have named sections or they
7651         are not being used, check that thunk can reach the stub table with a
7652         short branch.
7653
7654 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7655
7656         * web.c (union_match_dups): Strengthen param "insn" from rtx to
7657         rtx_insn *.
7658         (pass_web::execute): Likewise for local "insn".
7659
7660 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7661
7662         * var-tracking.c (struct micro_operation_def): Strengthen field
7663         "insn" from rtx to rtx_insn *.
7664         (struct emit_note_data_def): Likewise.
7665         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
7666         (vt_stack_adjustments): Likewise for local "insn".
7667         (adjust_insn): Likewise for param "insn".
7668         (val_store): Likewise.
7669         (val_resolve): Likewise.
7670         (struct count_use_info): Likewise for field "insn".
7671         (log_op_type): Likewise for param "insn".
7672         (reverse_op): Likewise.
7673         (prepare_call_arguments): Likewise.
7674         (add_with_sets):  The initial param takes an insn, but we can't
7675         yet strengthen it from rtx to rtx_insn * since it's used as a
7676         cselib_record_sets_hook callback.  For now rename initial param
7677         from "insn" to "uncast_insn", and introduce a local "insn" of
7678         the stronger rtx_insn * type, with a checked cast.
7679         (compute_bb_dataflow): Strengthen local "insn" from rtx to
7680         rtx_insn *.
7681         (emit_note_insn_var_location): Likewise.
7682         (emit_notes_for_changes): Likewise.
7683         (emit_notes_for_differences): Likewise.
7684         (next_non_note_insn_var_location): Likewise for return type and
7685         for param "insn".
7686         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
7687         (vt_initialize): Likewise for local "insn".
7688         (delete_debug_insns): Likewise for locals "insn" and "next".
7689
7690 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7691
7692         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
7693         rtx_insn *.
7694         (mark_constant_pool): Likewise for local "insn".
7695
7696 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7697
7698         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
7699         rtx to rtx_insn *.
7700         (dead_debug_promote_uses): Likewise.
7701         (dead_debug_insert_temp): Likewise.
7702
7703 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7704
7705         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
7706         from const_rtx to const rtx_insn *.
7707         (store_killed_after): Likewise.  Strengthen locals "last", "act"
7708         from rtx to rtx_insn *.
7709         (store_killed_before): Strengthen param "insn" from const_rtx to
7710         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
7711         (find_moveable_store): Strengthen param "insn" from rtx to
7712         rtx_insn *.
7713         (compute_store_table): Likewise for local "insn".
7714         (insert_insn_start_basic_block): Likewise for param "insn" and
7715         locals "prev", "before", "insn".
7716         (insert_store): For now, add a checked cast to rtx_insn * on the
7717         result of gen_move_insn.
7718         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
7719         to rtx_insn *.
7720         (replace_store_insn): Likewise.  For now, add a checked cast to
7721         rtx_insn * on the result of gen_move_insn.
7722
7723 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7724
7725         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
7726         rtx_insn *.
7727         (expand_sjlj_dispatch_table): Likewise.
7728
7729 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7730
7731         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
7732         "insn" from rtx to rtx_insn *.
7733
7734 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7735
7736         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
7737         "insn" from rtx to rtx_insn *.
7738         (dup_block_and_redirect): Likewise for param 3 "before".
7739
7740         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
7741         from rtx to rtx_insn *.
7742         (move_insn_for_shrink_wrap): Likewise.
7743         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
7744         (dup_block_and_redirect): Likewise for param "before" and local
7745         "insn".
7746         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
7747         "end".
7748         (convert_to_simple_return): Likewise for local "start".
7749
7750         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
7751         Strengthen local "insn" from rtx to rtx_insn *, for use when
7752         invoking requires_stack_frame_p.
7753
7754 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7755
7756         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
7757         rtx_insn *.
7758         (speculate_expr): Likewise for locals "orig_insn_rtx",
7759         "spec_insn_rtx".
7760         (eq_transformed_insns): Likewise for locals "i1", "i2".
7761         (check_for_new_jump): Likewise for return type and local "end".
7762         (find_new_jump): Likewise for return type and local "jump".
7763         (sel_split_edge): Likewise for local "jump".
7764         (sel_create_recovery_block): Likewise.
7765         (sel_redirect_edge_and_branch_force): Likewise.
7766         (sel_redirect_edge_and_branch): Likewise.
7767
7768 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7769
7770         * sel-sched.c (substitute_reg_in_expr): Strengthen local
7771         "new_insn" from rtx to rtx_insn *.
7772         (create_insn_rtx_with_rhs): Likewise for return type and for local
7773         "insn_rtx".
7774         (create_insn_rtx_with_lhs): Likewise.
7775         (create_speculation_check): Likewise for local "insn_rtx".
7776         (implicit_clobber_conflict_p): Likewise for local "insn".
7777         (get_expr_cost): Likewise.
7778         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
7779         (move_cond_jump): Likewise for locals "next", "prev", "link",
7780         "head", "from", "to".
7781
7782 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7783
7784         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
7785         "next" from rtx to rtx_insn *.
7786         (find_conditional_protection): Likewise for local "next".
7787         (is_conditionally_protected): Likewise for local "insn1".
7788         (is_pfree): Likewise for locals "insn1", "insn2".
7789
7790 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7791
7792         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
7793         from rtx to rtx_insn *.
7794
7795         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
7796         locals "insn1", "insn2" from rtx to rtx_insn *.
7797         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
7798         locals "insn", "prev", "last_jump", "next_tail".
7799         (schedule_ebb): Likewise for params "head", "tail".
7800         (schedule_ebbs): Likewise for locals "tail", "head".
7801
7802         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
7803         to rtx_insn on "last_insn" in one of the invocations of
7804         schedule_ebb.
7805
7806 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7807
7808         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
7809         "elem", "insn" from rtx to rtx_insn *.
7810         (change_spec_dep_to_hard): Likewise.
7811         (get_back_and_forw_lists): Likewise for local "con".
7812         (sd_add_dep): Likewise for locals "elem", "insn".
7813         (sd_resolve_dep): Likewise for locals "pro", "con".
7814         (sd_unresolve_dep): Likewise.
7815         (sd_delete_dep): Likewise.
7816         (chain_to_prev_insn): Likewise for local "pro".
7817         (find_inc): Likewise for locals "pro", "con".
7818
7819 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7820
7821         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
7822         to rtx_insn *.
7823         (reg_set_between_p): Strengthen local "insn" from const_rtx to
7824         const rtx_insn *.
7825         (modified_between_p): Strengthen local "insn" from rtx to
7826         rtx_insn *.
7827         (remove_reg_equal_equiv_notes_for_regno): Likewise.
7828         (keep_with_call_p): Strengthen local "i2" from const_rtx to
7829         const rtx_insn *.
7830
7831 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7832
7833         * resource.c (next_insn_no_annul): Strengthen local "next" from
7834         rtx to rtx_insn *.
7835         (mark_referenced_resources): Likewise for local "insn".
7836
7837 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7838
7839         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
7840         to rtx_insn *.
7841         (find_reloads): Likewise for param 1.
7842         (subst_reloads): Likewise for sole param.
7843         (find_equiv_reg): Likwise for param 2.
7844         (regno_clobbered_p): Likwise for param 2.
7845         (reload): Likewise for param 1.
7846
7847         * caller-save.c (save_call_clobbered_regs): Strengthen local
7848         "insn" from rtx to rtx_insn *.
7849         (insert_one_insn): Likewise for local "insn".
7850
7851         * reload.c (this_insn): Likewise for this global.
7852         (find_reloads): Likewise for param "insn".
7853         (find_reloads_toplev): Likewise.
7854         (find_reloads_address): Likewise.
7855         (subst_reg_equivs): Likewise.
7856         (update_auto_inc_notes): Likewise.
7857         (find_reloads_address_1): Likewise.
7858         (find_reloads_subreg_address): Likewise.
7859         (subst_reloads): Likewise.
7860         (find_equiv_reg): Likewise, also for local "p".
7861         (regno_clobbered_p): Likewise for param "insn".
7862
7863         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
7864         array.
7865         (spill_reg_store): Likewise for the elements of this array.
7866         (remove_init_insns): Likewise for local "equiv_insn".
7867         (will_delete_init_insn_p): Likewise for param "insn".
7868         (reload): Likewise for param ""first" and local "insn".
7869         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
7870         rtx_insn *.
7871         (calculate_elim_costs_all_insns): Likewise.
7872         (delete_caller_save_insns): Likewise.
7873         (spill_failure): Likewise for param "insn".
7874         (delete_dead_insn): Likewise.
7875         (set_label_offsets): Likewise.
7876         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
7877         "prev_insn".
7878         (elimination_costs_in_insn): Likewise for param "insn".
7879         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
7880         when referring to an insn.
7881         (set_initial_label_offsets): Likewise.
7882         (set_offsets_for_label): Strengthen param "insn" from rtx to
7883         rtx_insn *.
7884         (init_eliminable_invariants): Likewise for param "first" and local
7885         "insn".
7886         (fixup_eh_region_note): Likewise for param "insn".
7887         (reload_as_needed): Likewise for locals "prev", "insn",
7888         "old_next", "old_prev", "next".
7889         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
7890         "last".
7891         (reload_inheritance_insn): Strengthen elements of this array from
7892         rtx to rtx_insn *.
7893         (failed_reload): Likewise for param "insn".
7894         (choose_reload_regs): Likewise for local "insn".  Replace use of
7895         NULL_RTX with NULL when referring to an insn.
7896         (input_reload_insns): Strengthen elements of this array from rtx
7897         to rtx_insn *.
7898         (other_input_address_reload_insns): Likewise for this global.
7899         (other_input_reload_insns): Likewise for this global.
7900         (input_address_reload_insns): Likwise for the elements of this
7901         array.
7902         (inpaddr_address_reload_insns): Likwise for the elements of this
7903         array.
7904         (output_reload_insns): Likewise for the elements of this array.
7905         (output_address_reload_insns): Likewise for the elements of this
7906         array.
7907         (outaddr_address_reload_insns): Likewise for the elements of this
7908         array.
7909         (operand_reload_insns): Likewise for this global.
7910         (other_operand_reload_insns): Likewise for this global.
7911         (other_output_reload_insns): Likewise for the elements of this
7912         array.
7913         (new_spill_reg_store): Likewise for the elements of this
7914         array.
7915         (emit_input_reload_insns): Likewise for locals "insn", "temp".
7916         Strengthen local "where" from rtx * to rtx_insn **.
7917         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
7918         from rtx to rtx_insn *.
7919         (do_input_reload): Likewise for local "insn".
7920         (do_output_reload): Likewise for local "insn".
7921         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
7922         (emit_insn_if_valid_for_reload): Likewise for return type and local
7923         "last".  Add checked cast to rtx_insn when returning "insn" since
7924         this has been through emit_insn.
7925         (gen_reload): Strengthen return type and locals "last", "insn", "set"
7926         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
7927         returning "insn" since it's been through
7928         emit_insn_if_valid_for_reload at this point.
7929         (delete_output_reload): Strengthen param "insn" and locals
7930         "output_reload_insn", "i2" from rtx to rtx_insn *.
7931         (delete_address_reloads): Likewise for params "dead_insn",
7932         "current_insn" and locals "prev", "next".
7933         (delete_address_reloads_1): Likewise for params "dead_insn",
7934         "current_insn" and locals "prev", "i2".
7935         (inc_for_reload): Likewise for locals "last", "add_insn".
7936         (add_auto_inc_notes): Strengthen param "insn" from rtx to
7937         rtx_insn *.
7938
7939         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
7940         param of this duplicate of the prototype from reload.h
7941
7942 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7943
7944         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
7945         rtx to rtx_insn *.
7946         (regstat_bb_compute_calls_crossed): Likewise.
7947
7948 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7949
7950         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
7951         to rtx_insn *.
7952         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
7953         with an insn.
7954         (regrename_analyze): Strengthen local "insn" from rtx to
7955         rtx_insn *.
7956         (scan_rtx_reg): Likewise for param "insn".
7957         (scan_rtx_address): Likewise.
7958         (scan_rtx): Likewise.
7959         (restore_operands): Likewise.
7960         (record_out_operands): Likewise.
7961         (build_def_use): Likewise for local "insn".  Replace use of
7962         NULL_RTX with NULL when dealing with an insn.
7963
7964 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7965
7966         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
7967         * reginfo.c (reg_scan): Likewise, also for local "insn".
7968         (reg_scan_mark_refs): Likewise for param "insn".
7969         (init_subregs_of_mode): Likewise for local "insn".
7970
7971 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7972
7973         * regcprop.c (struct queued_debug_insn_change): Strengthen field
7974         "insn" from rtx to rtx_insn *.
7975         (replace_oldest_value_reg): Likewise for param "insn".
7976         (replace_oldest_value_addr): Likewise.
7977         (replace_oldest_value_mem): Likewise.
7978         (apply_debug_insn_changes): Likewise for local "last_insn".
7979         (copyprop_hardreg_forward_1): Likewise for local "insn".
7980
7981 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7982
7983         * reg-stack.c (next_flags_user): Strengthen return type and param
7984         "insn" from rtx to rtx_insn *.
7985         (straighten_stack): Likewise for param "insn".
7986         (check_asm_stack_operands): Likewise.
7987         (remove_regno_note): Likewise.
7988         (emit_pop_insn): Likewise for return type, param "insn", local
7989         "pop_insn".
7990         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
7991         "limit" from rtx to rtx_insn *.
7992         (swap_to_top): Likewise for param "insn".
7993         (move_for_stack_reg): Likewise.
7994         (move_nan_for_stack_reg): Likewise.
7995         (swap_rtx_condition): Likewise.
7996         (compare_for_stack_reg): Likewise.
7997         (subst_all_stack_regs_in_debug_insn): Likewise.
7998         (subst_stack_regs_pat): Likewise, and local "insn2".
7999         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
8000         rtx_insn *.
8001         (subst_stack_regs): Likewise.
8002         (change_stack): Likewise.
8003         (convert_regs_1): Likewise for locals "insn", "next".
8004
8005 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8006
8007         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
8008         rtx_insn *.
8009         (combine_set_extension): Likewise for param "curr_insn".
8010         (transform_ifelse): Likewise for param "def_insn".
8011         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
8012         from vec<rtx> * to vec<rtx_insn *> *.
8013         (is_cond_copy_insn): Likewise for param "insn".
8014         (struct ext_state): Strengthen the four vec fields from vec<rtx>
8015         to vec<rtx_insn *>.
8016         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
8017         local "def_insn" from rtx to rtx_insn *.
8018         (get_sub_rtx): Likewise for param "def_insn".
8019         (merge_def_and_ext): Likewise.
8020         (combine_reaching_defs): Likewise.
8021         (add_removable_extension): Likewise for param "insn".
8022         (find_removable_extensions): Likewise for local "insn".
8023         (find_and_remove_re): Likewise for locals "curr_insn" and
8024         "def_insn".  Strengthen locals "reinsn_del_list" and
8025         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
8026
8027 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8028
8029         * recog.c (split_insn): Strengthen param "insn" and locals
8030         "first", "last" from rtx to rtx_insn *.
8031         (split_all_insns): Likewise for locals "insn", "next".
8032         (split_all_insns_noflow): Likewise.
8033
8034 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8035
8036         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
8037         const rtx_insn *.
8038         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
8039         (debug_rtx_find): Likewise for param 1 "x".
8040
8041         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
8042         const_rtx to const rtx_insn *.  Likewise for local "insn".
8043         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
8044         (debug_rtx_find): Likewise for param 1 "x".
8045         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
8046         from const_rtx to const rtx_insn * within the appropriate cases of
8047         the switch statement.
8048
8049         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
8050         Strengthen local "insns" from rtx to rtx_insn * since this is
8051         passed to a call to debug_rtx_list.
8052
8053 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8054
8055         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
8056         to rtx_insn *.
8057
8058         * function.c (stack_protect_epilogue): Add checked cast to
8059         rtx_insn for now when invoking predict_insn_def.
8060
8061         * predict.c (predict_insn): Strengthen param "insn" from rtx to
8062         rtx_insn *.
8063         (predict_insn_def): Likewise.
8064         (rtl_predict_edge): Likewise for local "last_insn".
8065         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
8066         const rtx_insn *.
8067         (combine_predictions_for_insn): Strengthen param "insn" from rtx
8068         to rtx_insn *.
8069         (bb_estimate_probability_locally): Likewise for local "last_insn".
8070         (expensive_function_p): Likewise for local "insn".
8071
8072         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
8073         local "jmp", since this is used when invoking predict_insn_def.
8074
8075 2014-08-22  Marek Polacek  <polacek@redhat.com>
8076
8077         PR c++/62199
8078         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
8079
8080 2014-08-22  Marek Polacek  <polacek@redhat.com>
8081
8082         PR c/61271
8083         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
8084         a comparison in parens.
8085         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
8086         in parens.
8087
8088 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8089
8090         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
8091         rtx_insn *.
8092
8093         * cprop.c (fis_get_condition): Likewise.
8094
8095         * postreload.c (reload_cse_regs): Likewise for param "first".
8096         (reload_cse_simplify): Likewise for param "insn".
8097         (reload_cse_regs_1): Likewise for local "insn".
8098         (reload_cse_simplify_set): Likewise for param "insn".
8099         (reload_cse_simplify_operands): Likewise.
8100         (struct reg_use): Likewise for field "insn".
8101         (reload_combine_purge_insn_uses): Likewise for param "insn".
8102         (fixup_debug_insns): Likewise for params "from", "to" and local
8103         "insn".
8104         (try_replace_in_use): Likewise for local "use_insn".
8105         (reload_combine_recognize_const_pattern): Likewise for param
8106         "insn" and locals "add_moved_after_insn", "use_insn".
8107         (reload_combine_recognize_pattern): Likewise for param "insn" and
8108         local "prev".
8109         (reload_combine): Likewise for locals "insn", "prev".
8110         (reload_combine_note_use): Likewise for param "insn".
8111         (move2add_use_add2_insn): Likewise.
8112         (move2add_use_add3_insn): Likewise.
8113         (reload_cse_move2add): Likewise, also for local "next".
8114         (move2add_note_store): Likewise for local "insn".
8115
8116 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8117
8118         * postreload-gcse.c (struct occr): Strengthen field "insn" from
8119         rtx to rtx_insn *.
8120         (struct unoccr): Likewise.
8121         (struct modifies_mem): Likewise.
8122         (alloc_mem): Likewise for local "insn".
8123         (insert_expr_in_table): Likewise for param "insn".
8124         (dump_expr_hash_table_entry): Likewise for local "insn".
8125         (oprs_unchanged_p): Likewise for param "insn".
8126         (load_killed_in_block_p): Likewise for local "setter".
8127         (record_last_reg_set_info): Likewise for param "insn".
8128         (record_last_reg_set_info_regno): Likewise.
8129         (record_last_mem_set_info): Likewise.
8130         (record_last_set_info): Likewise for local "last_set_insn".
8131         (record_opr_changes): Likewise for param "insn".
8132         (hash_scan_set): Likewise.
8133         (compute_hash_table): Likewise for local "insn".
8134         (get_avail_load_store_reg): Likewise for param "insn".
8135         (eliminate_partially_redundant_load): Likewise, also for locals
8136         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
8137         RTX for insns.
8138         (eliminate_partially_redundant_loads): Likewise for local "insn".
8139
8140 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8141
8142         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
8143         rtx to rtx_insn *.
8144         (expand_binop): Likewise for locals "entry_last", "last", "insns"
8145         (expand_twoval_unop): Likewise for locals entry_last", "last".
8146         (expand_twoval_binop): Likewise.
8147         (expand_twoval_binop_libfunc): Likewise for local "insns".
8148         (widen_leading): Likewise for local "last".
8149         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
8150         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
8151         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
8152         (expand_parity): Likewise for locals "last" and "seq".
8153         (expand_ffs): Likewise for local "seq".  Strengthen local
8154         "nonzero_label" from rtx to rtx_code_label *.
8155         (expand_absneg_bit): Strengthen local "insns" from rtx to
8156         rtx_insn *.
8157         (expand_unop_direct): Likewise for local "last".
8158         (expand_unop): Likewise for locals "last", "insns".
8159         (expand_abs_nojump): Likewise for local "last".
8160         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
8161         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
8162         rtx_insn *.
8163         (expand_copysign_absneg): Strengthen local "label" from rtx to
8164         rtx_code_label *.
8165         (expand_copysign_bit): Strengthen local "insns" from rtx to
8166         rtx_insn *.
8167         (struct no_conflict_data): Likewise for fields "first", "insn".
8168         (emit_libcall_block_1): Likewise for param "insns" and locals
8169         "next", "last", "insn".
8170         (emit_libcall_block): For now, add a checked cast to rtx_insn *
8171         on "insns" when invoking emit_libcall_block_1.  Ultimately we
8172         want to strengthen insns itself.
8173         (prepare_cmp_insn): Strengthen local "last" from rtx to
8174         rtx_insn *.
8175         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
8176         (prepare_float_lib_cmp): Likewise for local "insns".
8177         (emit_conditional_move): Likewise for local "last".
8178         (emit_conditional_add): Likewise.
8179         (have_sub2_insn): Likewise for local "seq".
8180         (expand_float): Likewise for local "insns".  Strengthen locals
8181         "label", "neglabel" from rtx to rtx_code_label *.
8182         (expand_fix): Likewise for locals "last", "insn", "insns" (to
8183         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
8184         (expand_fixed_convert): Likewise for local "insns" (to
8185         rtx_insn *).
8186         (expand_sfix_optab): Likewise for local "last".
8187         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
8188         to rtx_code_label *.
8189         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
8190         from rtx to rtx_insn *.
8191         (expand_atomic_fetch_op): Likewise for local "insn".
8192         (maybe_legitimize_operand_same_code): Likewise for local "last".
8193         (maybe_legitimize_operands): Likewise.
8194
8195 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8196
8197         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
8198         "insn" from rtx to rtx_insn *.
8199         (ps_rtl_insn): Likewise for return type.
8200         (doloop_register_get): Likewise for params "head", "tail" and
8201         locals "insn", "first_insn_not_to_check".
8202         (schedule_reg_move): Likewise for local "this_insn".
8203         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
8204         of gen_move_insn for now.
8205         (reset_sched_times): Strengthen local "insn" from rtx to
8206         rtx_insn *.
8207         (permute_partial_schedule): Likewise.
8208         (duplicate_insns_of_cycles): Likewise for local "u_insn".
8209         (dump_insn_location): Likewise for param "insn".
8210         (loop_canon_p): Likewise for local "insn".
8211         (sms_schedule): Likewise.
8212         (print_partial_schedule): Likewise.
8213         (ps_has_conflicts): Likewise.
8214
8215 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8216
8217         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
8218         "tailp" from rtx * to rtx_insn **.
8219
8220         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
8221         from rtx to rtx_insn *.
8222         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
8223         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
8224         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
8225         rtx to rtx_insn *.
8226         * modulo-sched.c (const_iteration_count): Strengthen return type
8227         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
8228         use of NULL_RTX with NULL when working with insns.
8229         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
8230         to rtx_insn *.
8231         (sms_schedule): Likewise.
8232         * sched-rgn.c (init_ready_list): Likewise, also for locals
8233         "src_head" and "src_next_tail".
8234         (compute_block_dependences): Likewise.
8235         (free_block_dependencies): Likewise.
8236         (debug_rgn_dependencies): Likewise.
8237         (free_rgn_deps): Likewise.
8238         (compute_priorities): Likewise.
8239         (schedule_region): Likewise.
8240         * sel-sched.c (find_ebb_boundaries): Likewise.
8241
8242         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
8243         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
8244
8245 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8246
8247         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
8248         from rtx to rtx_insn *.
8249         (new_seginfo): Likewise for param "insn".
8250         (create_pre_exit): Likewise for locals "last_insn",
8251         "before_return_copy", "return_copy".
8252         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
8253         "mode_set".
8254
8255 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8256
8257         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
8258         from rtx to rtx_insn *.
8259         (lra_push_insn): Likewise for 1st param.
8260         (lra_push_insn_and_update_insn_regno_info): Likewise.
8261         (lra_pop_insn): Likewise for return type.
8262         (lra_invalidate_insn_data): Likewise for 1st param.
8263         (lra_set_insn_deleted): Likewise.
8264         (lra_delete_dead_insn): Likewise.
8265         (lra_process_new_insns): Likewise for first 3 params.
8266         (lra_set_insn_recog_data): Likewise for 1st param.
8267         (lra_update_insn_recog_data): Likewise.
8268         (lra_set_used_insn_alternative): Likewise.
8269         (lra_invalidate_insn_regno_info): Likewise.
8270         (lra_update_insn_regno_info): Likewise.
8271         (lra_former_scratch_operand_p): Likewise.
8272         (lra_eliminate_regs_1): Likewise.
8273         (lra_get_insn_recog_data): Likewise.
8274
8275         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
8276         rtx to rtx_insn *.
8277
8278         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
8279         "mv1" and "mv2".
8280         (substitute_within_insn): New.
8281         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
8282         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
8283         Replace call to "substitute" with call to substitute_within_insn.
8284
8285         * lra-constraints.c (curr_insn): Strengthen from rtx to
8286         rtx_insn *.
8287         (get_equiv_with_elimination): Likewise for param "insn".
8288         (match_reload): Strengthen params "before" and "after" from rtx *
8289         to rtx_insn **.
8290         (emit_spill_move): Likewise for return type.  Add a checked cast
8291         to rtx_insn * on result of gen_move_insn for now.
8292         (check_and_process_move): Likewise for local "before".  Replace
8293         NULL_RTX with NULL when referring to insns.
8294         (process_addr_reg): Strengthen params "before" and "after" from
8295         rtx * to rtx_insn **.
8296         (insert_move_for_subreg): Likewise.
8297         (simplify_operand_subreg): Strengthen locals "before" and "after"
8298         from rtx to rtx_insn *.
8299         (process_address_1): Strengthen params "before" and "after" from
8300         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
8301         rtx to rtx_insn *.
8302         (process_address): Strengthen params "before" and "after" from
8303         rtx * to rtx_insn **.
8304         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
8305         (curr_insn_transform): Strengthen locals "before" and "after"
8306         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
8307         to insns.
8308         (loc_equivalence_callback): Update cast of "data", changing
8309         resulting type from rtx to rtx_insn *.
8310         (substitute_pseudo_within_insn): New.
8311         (inherit_reload_reg): Strengthen param "insn" from rtx to
8312         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
8313         NULL when referring to insns.  Add a checked cast to rtx_insn *
8314         when using usage_insn to invoke lra_update_insn_regno_info.
8315         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
8316         likewise for locals "restore", "save".  Add checked casts to
8317         rtx_insn * when using usage_insn to invoke
8318         lra_update_insn_regno_info and lra_process_new_insns.  Replace
8319         NULL_RTX with NULL when referring to insns.
8320         (split_if_necessary): Strengthen param "insn" from rtx to
8321         rtx_insn *.
8322         (update_ebb_live_info): Likewise for params "head", "tail" and local
8323         "prev_insn".
8324         (get_last_insertion_point): Likewise for return type and local "insn".
8325         (get_live_on_other_edges): Likewise for local "last".
8326         (inherit_in_ebb): Likewise for params "head", "tail" and locals
8327         "prev_insn", "next_insn", "restore".
8328         (remove_inheritance_pseudos): Likewise for local "prev_insn".
8329         (undo_optional_reloads): Likewise for local "insn".
8330
8331         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
8332         "insn".
8333         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
8334         insns.
8335         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
8336         rtx_insn *.
8337         (spill_pseudos): Likewise for local "insn".
8338         (init_elimination): Likewise.
8339         (process_insn_for_elimination): Likewise for param "insn".
8340
8341         * lra-lives.c (curr_insn): Likewise.;
8342
8343         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
8344         (remove_pseudos): Likewise for param "insn".
8345         (spill_pseudos): Likewise for local "insn".
8346         (lra_final_code_change): Likewise for locals "insn", "curr".
8347
8348         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
8349         (lra_set_insn_deleted): Likewise.
8350         (lra_delete_dead_insn): Likewise, and for local "prev".
8351         (new_insn_reg): Likewise for param "insn".
8352         (lra_set_insn_recog_data): Likewise.
8353         (lra_update_insn_recog_data): Likewise.
8354         (lra_set_used_insn_alternative): Likewise.
8355         (get_insn_freq): Likewise.
8356         (invalidate_insn_data_regno_info): Likewise.
8357         (lra_invalidate_insn_regno_info): Likewise.
8358         (lra_update_insn_regno_info): Likewise.
8359         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
8360         vec<rtx_insn *>.
8361         (lra_push_insn_1): Strengthen param "insn" from rtx to
8362         rtx_insn *.
8363         (lra_push_insn): Likewise.
8364         (lra_push_insn_and_update_insn_regno_info): Likewise.
8365         (lra_pop_insn): Likewise for return type and local "insn".
8366         (push_insns): Likewise for params "from", "to", and local "insn".
8367         (setup_sp_offset): Likewise for params "from", "last" and locals
8368         "before", "insn".
8369         (lra_process_new_insns): Likewise for params "insn", "before",
8370         "after" and local "last".
8371         (struct sloc): Likewise for field "insn".
8372         (lra_former_scratch_operand_p): Likewise for param "insn".
8373         (remove_scratches): Likewise for locals "insn", "last".
8374         (check_rtl): Likewise for local "insn".
8375         (add_auto_inc_notes): Likewise for param "insn".
8376         (update_inc_notes): Likewise for local "insn".
8377         (lra): Replace NULL_RTX with NULL when referring to insn.
8378
8379 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8380
8381         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
8382         to rtx_insn *.
8383         (resolve_reg_notes): Likewise.
8384         (resolve_simple_move): Likewise for return type, param "insn", and
8385         locals "insns", "minsn".
8386         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
8387         (resolve_use): Likewise.
8388         (resolve_debug): Likewise.
8389         (find_decomposable_shift_zext): Likewise.
8390         (resolve_shift_zext): Likewise for return type, param "insn", and
8391         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
8392         (decompose_multiword_subregs): Likewise for local "insn",
8393         "orig_insn", "decomposed_shift", "end".
8394
8395 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8396
8397         * basic-block.h (basic_block split_edge_and_insert): Strengthen
8398         param "insns" from rtx to rtx_insn *.
8399
8400         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
8401         rtx to rtx_insn *.
8402         (struct iv_to_split): Likewise.
8403         (loop_exit_at_end_p): Likewise for local "insn".
8404         (split_edge_and_insert): Likewise for param "insns".
8405         (compare_and_jump_seq): Likewise for return type, param "cinsn",
8406         and locals "seq", "jump".
8407         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
8408         "branch_code"; update invocations of compare_and_jump_seq to
8409         eliminate NULL_RTX in favor of NULL.
8410         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
8411         rtx to rtx_insn *.
8412         (reset_debug_uses_in_loop): Likewise.
8413         (analyze_insn_to_expand_var): Likewise for param "insn".
8414         (analyze_iv_to_split_insn): Likewise.
8415         (analyze_insns_in_loop): Likewise for local "insn".
8416         (insert_base_initialization): Likewise for param
8417         "insn" and local "seq".
8418         (split_iv): Likewise for param "insn" and local "seq".
8419         (expand_var_during_unrolling): Likewise for param "insn".
8420         (insert_var_expansion_initialization): Likewise for local "seq".
8421         (combine_var_copies_in_loop_exit): Likewise.
8422         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
8423         "insn".
8424         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
8425         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
8426         "next".
8427
8428 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8429
8430         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
8431         rtx_insn *.
8432         (iv_analyze_result): Likewise.
8433         (iv_analyze_expr): Likewise.
8434         (biv_p): Likewise.
8435
8436         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
8437         local "def_insn" from rtx to rtx_insn *.
8438         (get_biv_step_1): Likewise for local "insn".
8439         (iv_analyze_expr): Likewise for param "insn".
8440         (iv_analyze_def): Likewise for local "insn".
8441         (iv_analyze_op): Likewise for param "insn".
8442         (iv_analyze): Likewise.
8443         (iv_analyze_result): Likewise.
8444         (biv_p): Likewise.
8445         (suitable_set_for_replacement): Likewise.
8446         (simplify_using_initial_values): Likewise for local "insn".
8447         (iv_number_of_iterations): Likewise for param "insn".
8448         (check_simple_exit): Add checked cast to rtx_insn when invoking
8449         iv_number_of_iterations for now (until get_condition is
8450         strengthened).
8451
8452         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
8453         "insn" from rtx to rtx_insn *.
8454         (analyze_insns_in_loop): Likewise for local "insn".
8455
8456 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8457
8458         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
8459         to rtx_insn *.
8460         (struct invariant): Likewise.
8461         (hash_invariant_expr_1): Likewise for param "insn".
8462         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
8463         (find_exits): Likewise for local "insn".
8464         (create_new_invariant): Likewise for param "insn".
8465         (check_dependencies): Likewise.
8466         (find_invariant_insn): Likewise.
8467         (record_uses): Likewise.
8468         (find_invariants_insn): Likewise.
8469         (find_invariants_bb): Likewise for local "insn".
8470         (get_pressure_class_and_nregs): Likewise for param "insn".
8471         (calculate_loop_reg_pressure): Likewise for local "insn".
8472
8473 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8474
8475         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
8476         to rtx_insn *.
8477         (add_test): Likewise for locals "seq", "jump".
8478         (doloop_modify): Likewise for locals "sequence", "jump_insn".
8479
8480 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8481
8482         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
8483         rtx_insn *.
8484         (rebuild_jump_labels_chain): Likewise for param "chain".
8485
8486         * cfgexpand.c (pass_expand::execute): Add checked cast to
8487         rtx_insn * when calling rebuild_jump_labels_chain in region where
8488         we know e->insns.r is non-NULL.
8489
8490         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
8491         rtx_insn *.
8492         (rebuild_jump_labels): Likewise.
8493         (rebuild_jump_labels_chain): Likewise for param "chain".
8494         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
8495         (init_label_info): Likewise for param "f".
8496         (maybe_propagate_label_ref): Likewise for params "jump_insn",
8497         "prev_nonjump_insn".
8498         (mark_all_labels): Likewise for param "f" and locals "insn",
8499         "prev_nonjump_insn".
8500
8501 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8502
8503         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
8504         from rtx to rtx_insn *insn.
8505         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
8506         (ira_add_allocno_copy): Likewise.
8507         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
8508         rtx to rtx_insn *.
8509         (ira_create_copy): Likewise.
8510         (ira_add_allocno_copy): Likewise.
8511         (create_bb_allocnos): Likewise for local "insn".
8512         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
8513         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
8514         process_regs_for_copy for rtx_insn * param.
8515         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
8516         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
8517         process_regs_for_copy for rtx_insn * param.
8518         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
8519         * ira-costs.c (record_reg_classes): Likewise for param "insn".
8520         (record_operand_costs): Likewise.
8521         (scan_one_insn): Likewise for return type, and for param "insn".
8522         (process_bb_for_costs): Likewise for local "insn".
8523         (process_bb_node_for_hard_reg_moves): Likewise.
8524         * ira-emit.c (struct move): Likewise for field "insn".
8525         (create_move): Eliminate use of NULL_RTX when dealing with an
8526         rtx_insn *.
8527         (emit_move_list): Strengthen return type and locals "result",
8528         "insn" from rtx to rtx_insn *insn.
8529         (emit_moves): Likewise for locals "insns", "tmp".
8530         (ira_emit): Likewise for local "insn".
8531         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
8532         "insn".
8533         (find_call_crossed_cheap_reg): Likewise.
8534         (process_bb_node_lives): Likewise for local "insn".
8535         * ira.c (decrease_live_ranges_number): Likewise.
8536         (compute_regs_asm_clobbered): Likewise.
8537         (build_insn_chain): Likewise.
8538         (find_moveable_pseudos): Likewise, also locals "def_insn",
8539         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
8540         to rtx_insn **.  Add a checked cast when assigning from
8541         "closest_use" into closest_uses array in a region where we know
8542         it's a non-NULL insn.
8543         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
8544         to rtx_insn *.
8545         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
8546         "last_interesting_insn", "uin".
8547         (move_unallocated_pseudos): Likewise for locals "def_insn",
8548         "move_insn", "newinsn".
8549
8550 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8551
8552         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
8553         Strengthen locals "done_label", "do_error" from rtx to
8554         rtx_code_label *.
8555         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
8556         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
8557         rtx_code_label *.
8558         (ubsan_expand_si_overflow_neg_check): Likewise for locals
8559         "done_label", "do_error" to rtx_code_label * and local  "last" to
8560         rtx_insn *.
8561         (ubsan_expand_si_overflow_mul_check): Likewise for locals
8562         "done_label", "do_error", "large_op0", "small_op0_large_op1",
8563         "one_small_one_large", "both_ops_large", "after_hipart_neg",
8564         "after_lopart_neg", "do_overflow", "hipart_different"  to
8565         rtx_code_label * and local  "last" to rtx_insn *.
8566
8567 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8568
8569         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
8570         "insn" and "move_insn" from rtx to rtx_insn *.
8571
8572 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8573
8574         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
8575         rtx_insn *.
8576         (cheap_bb_rtx_cost_p): Likewise.
8577         (first_active_insn): Likewise for return type and local "insn".
8578         (last_active_insn):  Likewise for return type and locals "insn",
8579         "head".
8580         (struct noce_if_info): Likewise for fields "jump", "insn_a",
8581         "insn_b".
8582         (end_ifcvt_sequence): Likewise for return type and locals "insn",
8583         "seq".
8584         (noce_try_move): Likewise for local "seq".
8585         (noce_try_store_flag): Likewise.
8586         (noce_try_store_flag_constants): Likewise.
8587         (noce_try_addcc): Likewise.
8588         (noce_try_store_flag_mask): Likewise.
8589         (noce_try_cmove): Likewise.
8590         (noce_try_minmax): Likewise.
8591         (noce_try_abs): Likewise.
8592         (noce_try_sign_mask): Likewise.
8593         (noce_try_bitop): Likewise.
8594         (noce_can_store_speculate_p): Likewise for local "insn".
8595         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
8596         seq".
8597         (check_cond_move_block): Likewise for local "insn".
8598         (cond_move_convert_if_block): Likewise.
8599         (cond_move_process_if_block): Likewise for locals "seq",
8600         "loc_insn".
8601         (noce_find_if_block): Likewise for local "jump".
8602         (merge_if_block): Likewise for local "last".
8603         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
8604         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
8605         (block_has_only_trap): Likewise for return type and local "trap".
8606         (find_if_case_1): Likewise for local "jump".
8607         (dead_or_predicable): Likewise for locals "head", "end", "jump",
8608         "insn".
8609
8610 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8611
8612         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
8613         "last_insn", "loop_end" from rtx to rtx_insn *.
8614
8615         * hw-doloop.c (scan_loop): Likewise for local "insn".
8616         (discover_loop): Likewise for param "tail_insn".
8617         (discover_loops): Likewise for local "tail".
8618
8619         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
8620         cast to rtx_insn * when assigning from an rtx local to a
8621         hwloop_info's "last_insn" field.
8622
8623 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8624
8625         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
8626         (add_delay_dependencies): Strengthen local "pro" from rtx to
8627         rtx_insn *.
8628         (recompute_todo_spec): Likewise.
8629         (dep_cost_1): Likewise for locals "insn", "used".
8630         (schedule_insn): Likewise for local "dbg".
8631         (schedule_insn): Likewise for locals "pro", "next".
8632         (unschedule_insns_until): Likewise for local "con".
8633         (restore_pattern): Likewise for local "next".
8634         (estimate_insn_tick): Likewise for local "pro".
8635         (resolve_dependencies): Likewise for local "next".
8636         (fix_inter_tick): Likewise.
8637         (fix_tick_ready): Likewise for local "pro".
8638         (add_to_speculative_block): Likewise for locals "check", "twin",
8639         "pro".
8640         (sched_extend_bb): Likewise for locals "end", "insn".
8641         (init_before_recovery): Likewise for local "x".
8642         (sched_create_recovery_block): Likewise for local "barrier".
8643         (create_check_block_twin): Likewise for local "pro".
8644         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
8645         "consumer".
8646         (unlink_bb_notes): Update for change to type of bb_header.
8647         Strengthen locals "prev", "label", "note", "next" from rtx to
8648         rtx_insn *.
8649         (clear_priorities): Likewise for local "pro".
8650
8651 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8652
8653         * gcse.c (struct occr): Strengthen field "insn" from rtx to
8654         rtx_insn *.
8655         (test_insn): Likewise for this global.
8656         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
8657         const rtx_insn *.
8658         (oprs_anticipatable_p): Likewise.
8659         (oprs_available_p): Likewise.
8660         (insert_expr_in_table): Strengthen param "insn" from  rtx to
8661         rtx_insn *.
8662         (hash_scan_set): Likewise.
8663         (hash_scan_clobber): Likewise.
8664         (hash_scan_call): Likewise.
8665         (hash_scan_insn): Likewise.
8666         (compute_hash_table_work): Likewise for local "insn".
8667         (process_insert_insn): Likewise for return type and local "pat".
8668         (insert_insn_end_basic_block): Likewise for locals "new_insn",
8669         "pat", "pat_end", "maybe_cc0_setter".
8670         (pre_edge_insert): Likewise for local "insn".
8671         (pre_insert_copy_insn): Likewise for param "insn".
8672         (pre_insert_copies): Likewise for local "insn".
8673         (struct set_data): Likewise for field "insn".
8674         (single_set_gcse): Likewise for param "insn".
8675         (gcse_emit_move_after): Likewise.
8676         (pre_delete): Likewise for local "insn".
8677         (update_bb_reg_pressure): Likewise for param "from" and local
8678         "insn".
8679         (should_hoist_expr_to_dom): Likewise for param "from".
8680         (hoist_code): Likewise for local "insn".
8681         (get_pressure_class_and_nregs): Likewise for param "insn".
8682         (calculate_bb_reg_pressure): Likewise for local "insn".
8683         (compute_ld_motion_mems): Likewise.
8684
8685 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8686
8687         * genpeep.c (main): Rename param back from "uncast_ins1" to
8688         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
8689         checked cast.
8690
8691         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
8692
8693 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
8694
8695         PR target/62195
8696         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
8697         documentation to state it is only for VSX operations.
8698
8699         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
8700         constraint only active if VSX.
8701
8702         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
8703         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
8704         (lfiwzx): Likewise.
8705
8706 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8707
8708         * fwprop.c (single_def_use_dom_walker::before_dom_children):
8709         Strengthen local "insn" from rtx to rtx_insn *.
8710         (use_killed_between): Likewise for param "target_insn".
8711         (all_uses_available_at): Likewise for param "target_insn" and
8712         local "next".
8713         (update_df_init): Likewise for params "def_insn", "insn".
8714         (update_df): Likewise for param "insn".
8715         (try_fwprop_subst): Likewise for param "def_insn" and local
8716         "insn".
8717         (free_load_extend): Likewise for param "insn".
8718         (forward_propagate_subreg): Likewise for param "def_insn" and
8719         local "use_insn".
8720         (forward_propagate_asm): Likewise for param "def_insn" and local
8721         "use_insn".
8722         (forward_propagate_and_simplify): Likewise for param "def_insn"
8723         and local "use_insn".
8724         (forward_propagate_into): Likewise for locals "def_insn" and
8725         "use_insn".
8726
8727 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8728
8729         * function.c (emit_initial_value_sets): Strengthen local "seq"
8730         from rtx to rtx_insn *.
8731         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
8732         local "seq".
8733         (instantiate_virtual_regs): Likewise for local "insn".
8734         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
8735         (reorder_blocks_1): Likewise for param "insns" and local "insn".
8736         (expand_function_end): Likewise for locals "insn" and "seq".
8737         (epilogue_done): Likewise for local "insn".
8738         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
8739         "last", "trial".
8740         (reposition_prologue_and_epilogue_notes): Likewise for locals
8741         "insn", "last", "note", "first".
8742         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
8743         (pass_match_asm_constraints::execute): Likewise for local "insn".
8744
8745 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8746
8747         * output.h (final_scan_insn): Strengthen return type from rtx to
8748         rtx_insn *.
8749         (final_forward_branch_p): Likewise for param.
8750         (current_output_insn): Likewise for this global.
8751
8752         * final.c (rtx debug_insn): Likewise for this variable.
8753         (current_output_insn): Likewise.
8754         (get_attr_length_1): Rename param "insn" to "uncast_insn",
8755         adding "insn" back in as an rtx_insn * with a checked cast, so
8756         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
8757         first param.
8758         (compute_alignments): Strengthen local "label" from rtx to
8759         rtx_insn *.
8760         (shorten_branches): Rename param from "first" to "uncast_first",
8761         introducing a new local rtx_insn * "first" using a checked cast to
8762         effectively strengthen "first" from rtx to rtx_insn * without
8763         affecting the type signature.  Strengthen locals "insn", "seq",
8764         "next", "label" from rtx to rtx_insn *.
8765         (change_scope): Strengthen param "orig_insn" and local "insn" from
8766         rtx to rtx_insn *.
8767         (final_start_function): Rename param from "first" to "uncast_first",
8768         introducing a new local rtx_insn * "first" using a checked cast to
8769         effectively strengthen "first" from rtx to rtx_insn * without
8770         affecting the type signature.  Strengthen local "insn" from rtx to
8771         rtx_insn *.
8772         (dump_basic_block_info): Strengthen param "insn" from rtx to
8773         rtx_insn *.
8774         (final): Rename param from "first" to "uncast_first",
8775         introducing a new local rtx_insn * "first" using a checked cast to
8776         effectively strengthen "first" from rtx to rtx_insn * without
8777         affecting the type signature.  Strengthen locals "insn", "next"
8778         from rtx to rtx_insn *.
8779         (output_alternate_entry_point): Strengthen param "insn" from rtx to
8780         rtx_insn *.
8781         (call_from_call_insn): Strengthen param "insn" from rtx to
8782         rtx_call_insn *.
8783         (final_scan_insn): Rename param from "insn" to "uncast_insn",
8784         introducing a new local rtx_insn * "insn" using a checked cast to
8785         effectively strengthen "insn" from rtx to rtx_insn * without
8786         affecting the type signature.  Strengthen return type and locals
8787         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
8788         now-redundant checked cast to rtx_insn * from both invocations of
8789         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
8790         introducing a local "call_insn" for use when invoking
8791         call_from_call_insn.
8792         (notice_source_line): Strengthen param "insn" from rtx to
8793         rtx_insn *.
8794         (leaf_function_p): Likewise for local "insn".
8795         (final_forward_branch_p): Likewise.
8796         (leaf_renumber_regs): Likewise for param "first".
8797         (rest_of_clean_state): Likewise for locals "insn" and "next".
8798         (self_recursive_call_p): Likewise for param "insn".
8799         (collect_fn_hard_reg_usage): Likewise for local "insn".
8800         (get_call_fndecl): Likewise for param "insn".
8801         (get_call_cgraph_rtl_info): Likewise.
8802         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
8803         introducing a new local rtx_insn * "insn" using a checked cast to
8804         effectively strengthen "insn" from rtx to rtx_insn * without
8805         affecting the type signature.
8806
8807         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
8808         cast when assigning from param "insn" to current_output_insn.
8809         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
8810         so that we can assign it back to current_output_insn.
8811
8812 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
8813
8814         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
8815         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
8816         atmxt540s and atmxt540sreva devices.
8817         * config/avr/avr-tables.opt: Regenerate.
8818         * config/avr/t-multilib: Regenerate.
8819         * doc/avr-mmcu.texi: Regenerate.
8820
8821 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8822
8823         * expr.c (convert_move): Strengthen local "insns" from rtx to
8824         rtx_insn *.
8825         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
8826         "top_label" from rtx to rtx_code_label *.
8827         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
8828         rtx_insn *.
8829         (emit_single_push_insn): Likewise for locals "prev", "last".
8830         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
8831         to rtx_code_label *.
8832         (store_constructor): Likewise for locals "loop_start", "loop_end".
8833         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
8834         rtx_insn *.
8835         (expand_expr_real_2): Likewise.
8836         (expand_expr_real_1): Strengthen local "label" from rtx to
8837         rtx_code_label *.
8838
8839 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8840
8841         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
8842         from rtx to rtx_insn *.
8843         (store_bit_field_1): Likewise.
8844         (extract_bit_field_1): Likewise.
8845         (expand_mult_const): Likewise for local "insns".
8846         (expmed_mult_highpart): Strengthen local "label" from rtx to
8847         rtx_code_label *.
8848         (expand_smod_pow2): Likewise.
8849         (expand_sdiv_pow2): Likewise.
8850         (expand_divmod): Strengthen locals "last", "insn" from rtx to
8851         rtx_insn *.  Strengthen locals "label", "label1", "label2",
8852         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
8853         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
8854         (emit_store_flag): Likewise.
8855         (emit_store_flag_force): Strengthen local "label" from rtx to
8856         rtx_code_label *.
8857         (do_cmp_and_jump): Likewise for param "label".
8858
8859 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8860
8861         * explow.c (force_reg): Strengthen local "insn" from rtx to
8862         rtx_insn *.
8863         (adjust_stack_1): Likewise.
8864         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
8865         "final_label", "available_label", "space_available" from rtx to
8866         rtx_code_label *.
8867         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
8868         (anti_adjust_stack_and_probe): Likewise.
8869
8870 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8871
8872         * except.h (sjlj_emit_function_exit_after): Strengthen param
8873         "after" from rtx to rtx_insn *.  This is only called with
8874         result of get_last_insn (in function.c) so type-change should be
8875         self-contained.
8876
8877         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
8878         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
8879         to rtx_insn *.  These fields are only used from except.c so this
8880         type-change should be self-contained to this patch.
8881
8882         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
8883         local "last" from rtx to rtx_insn *.
8884         (dw2_build_landing_pads): Likewise for local "seq".
8885         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
8886         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
8887         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
8888         rtx to rtx_insn *.
8889         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
8890         to rtx_insn *.
8891         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
8892         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
8893         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
8894         referring to an insn.  Strengthen local "dispatch_label" from
8895         rtx to rtx_code_label *.
8896         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
8897         rtx_insn *.
8898         (expand_eh_return): Strengthen local "around_label" from
8899         rtx to rtx_code_label *.
8900         (convert_to_eh_region_ranges): Strengthen locals "iter",
8901         "last_action_insn", "first_no_action_insn",
8902         "first_no_action_insn_before_switch",
8903         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
8904
8905 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8906
8907         * dwarf2out.c (last_var_location_insn): Strengthen this variable
8908         from rtx to rtx_insn *.
8909         (cached_next_real_insn): Likewise.
8910         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
8911         working with insns.
8912         (dwarf2out_var_location): Strengthen locals "next_real",
8913         "next_note", "expected_next_loc_note", "last_start", "insn" from
8914         rtx to rtx_insn *.
8915
8916 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8917
8918         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
8919         from rtx to rtx_insn *.
8920         (create_pseudo_cfg): Likewise for local "insn".
8921
8922 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8923
8924         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
8925         from rtx to rtx_insn *.
8926         (df_bb_regno_last_def_find): Likewise.
8927
8928         * df-problems.c (df_rd_bb_local_compute): Likewise.
8929         (df_lr_bb_local_compute): Likewise.
8930         (df_live_bb_local_compute): Likewise.
8931         (df_chain_remove_problem): Likewise.
8932         (df_chain_create_bb): Likewise.
8933         (df_word_lr_bb_local_compute): Likewise.
8934         (df_remove_dead_eq_notes): Likewise for param "insn".
8935         (df_note_bb_compute): Likewise for local "insn".
8936         (simulate_backwards_to_point): Likewise.
8937         (df_md_bb_local_compute): Likewise.
8938
8939         * df-scan.c (df_scan_free_bb_info): Likewise.
8940         (df_scan_start_dump): Likewise.
8941         (df_scan_start_block): Likewise.
8942         (df_install_ref_incremental): Likewise for local "insn".
8943         (df_insn_rescan_all): Likewise.
8944         (df_reorganize_refs_by_reg_by_insn): Likewise.
8945         (df_reorganize_refs_by_insn_bb): Likewise.
8946         (df_recompute_luids): Likewise.
8947         (df_bb_refs_record): Likewise.
8948         (df_update_entry_exit_and_calls): Likewise.
8949         (df_bb_verify): Likewise.
8950
8951 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8952
8953         * ddg.h (struct ddg_node): Strengthen fields "insn" and
8954         "first_note" from rtx to rtx_insn *.
8955         (get_node_of_insn): Likewise for param 2 "insn".
8956         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
8957
8958         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
8959         rtx_insn *.
8960         (mem_write_insn_p): Likewise.
8961         (mem_access_insn_p): Likewise.
8962         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
8963         (def_has_ccmode_p): Likewise for param "insn".
8964         (add_cross_iteration_register_deps): Likewise for locals
8965         "def_insn" and "use_insn".
8966         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
8967         (build_intra_loop_deps): Likewise for local "src_insn".
8968         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
8969         to rtx_insn *.
8970         (get_node_of_insn): Likewise for param "insn".
8971
8972 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8973
8974         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
8975         (deletable_insn_p): Strengthen param "insn" from rtx to
8976         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
8977         find_call_stack_args, since this is guarded by CALL_P (insn).
8978         (marked_insn_p): Strengthen param "insn" from rtx to
8979         rtx_insn *.
8980         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
8981         invoking find_call_stack_args, since this is guarded by
8982         CALL_P (insn).
8983         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
8984         rtx_insn *; we know this is an insn since this was called by
8985         mark_nonreg_stores.
8986         (mark_nonreg_stores_2): Likewise.
8987         (mark_nonreg_stores): Strengthen param "insn" from rtx to
8988         rtx_insn *.
8989         (find_call_stack_args): Strengthen param "call_insn" from rtx to
8990         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
8991         to rtx_insn *.
8992         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
8993         from rtx to rtx_insn *.
8994         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
8995         "next", "ref_insn".
8996         (delete_unmarked_insns): Likewise for locals "insn", "next".
8997         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
8998         (mark_reg_dependencies): Likewise for param "insn".
8999         (rest_of_handle_ud_dce): Likewise for local "insn".
9000         (word_dce_process_block): Likewise.
9001         (dce_process_block): Likewise.
9002
9003 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9004
9005         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
9006         from rtx to rtx_insn *.
9007         (struct change_cc_mode_args): Likewise for field "insn".
9008         (this_insn): Strengthen from rtx to rtx_insn *.
9009         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
9010         with insn.
9011         (validate_canon_reg): Strengthen param "insn" from rtx to
9012         rtx_insn *.
9013         (canon_reg): Likewise.
9014         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
9015         dealing with insn.
9016         (record_jump_equiv): Strengthen param "insn" from rtx to
9017         rtx_insn *.
9018         (try_back_substitute_reg): Likewise, also for locals "prev",
9019         "bb_head".
9020         (find_sets_in_insn): Likewise for param "insn".
9021         (canonicalize_insn): Likewise.
9022         (cse_insn): Likewise.  Add a checked cast.
9023         (invalidate_from_clobbers): Likewise for param "insn".
9024         (invalidate_from_sets_and_clobbers): Likewise.
9025         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
9026         dealing with insn.
9027         (cse_prescan_path): Strengthen local "insn" from rtx to
9028         rtx_insn *.
9029         (cse_extended_basic_block): Likewise for locals "insn" and
9030         "prev_insn".
9031         (cse_main): Likewise for param "f".
9032         (check_for_label_ref): Likewise for local "insn".
9033         (set_live_p): Likewise for second param ("insn").
9034         (insn_live_p): Likewise for first param ("insn") and for local
9035         "next".
9036         (cse_change_cc_mode_insn): Likewise for first param "insn".
9037         (cse_change_cc_mode_insns): Likewise for first and second params
9038         "start" and "end".
9039         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
9040         and "end".
9041         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
9042         "cc_src_insn".
9043
9044 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9045             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9046             Anna Tikhonova  <anna.tikhonova@intel.com>
9047             Ilya Tocar  <ilya.tocar@intel.com>
9048             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9049             Ilya Verbin  <ilya.verbin@intel.com>
9050             Kirill Yukhin  <kirill.yukhin@intel.com>
9051             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9052
9053         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
9054         New.
9055         * config/i386/sse.md
9056         (define_mode_iterator VI248_AVX2): Delete.
9057         (define_mode_iterator VI2_AVX2_AVX512BW): New.
9058         (define_mode_iterator VI48_AVX2): Ditto.
9059         (define_insn <shift_insn><mode>3): Delete.
9060         (define_insn "<shift_insn><mode>3<mask_name>" with
9061         VI2_AVX2_AVX512BW): New.
9062         (define_insn "<shift_insn><mode>3<mask_name>" with
9063         VI48_AVX2): Ditto.
9064
9065 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9066             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9067             Anna Tikhonova  <anna.tikhonova@intel.com>
9068             Ilya Tocar  <ilya.tocar@intel.com>
9069             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9070             Ilya Verbin  <ilya.verbin@intel.com>
9071             Kirill Yukhin  <kirill.yukhin@intel.com>
9072             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9073
9074         * config/i386/sse.md
9075         (define_mode_iterator VI4F_BRCST32x2): New.
9076         (define_mode_attr 64x2_mode): Ditto.
9077         (define_mode_attr 32x2mode): Ditto.
9078         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
9079         with VI4F_BRCST32x2): Ditto.
9080         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
9081         with V16FI mode iterator): Ditto.
9082         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
9083         with V16FI): Ditto.
9084         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
9085         with VI8F_BRCST64x2): Ditto.
9086
9087 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9088             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9089             Anna Tikhonova  <anna.tikhonova@intel.com>
9090             Ilya Tocar  <ilya.tocar@intel.com>
9091             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9092             Ilya Verbin  <ilya.verbin@intel.com>
9093             Kirill Yukhin  <kirill.yukhin@intel.com>
9094             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9095
9096         * config/i386/sse.md
9097         (define_mode_iterator VI8_AVX512VL): New.
9098         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
9099
9100 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
9101
9102         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
9103         (define_mode_iterator V48_AVX512VL): New.
9104         (define_mode_iterator V12_AVX512VL): Ditto.
9105         (define_insn <avx512>_load<mode>_mask): Split into two similar
9106         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
9107         Refactor output template.
9108         (define_insn "<avx512>_store<mode>_mask"): Ditto.
9109
9110 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9111
9112         * cprop.c (struct occr): Strengthen field "insn" from rtx to
9113         rtx_insn *.
9114         (reg_available_p): Likewise for param "insn".
9115         (insert_set_in_table): Likewise.
9116         (hash_scan_set): Likewise.
9117         (hash_scan_insn): Likewise.
9118         (make_set_regs_unavailable): Likewise.
9119         (compute_hash_table_work): Likewise for local "insn".
9120         (reg_not_set_p): Strengthen param "insn" from const_rtx to
9121         const rtx_insn *.
9122         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
9123         (try_replace_reg): Likewise.
9124         (find_avail_set): Likewise.
9125         (cprop_jump): Likewise for params "setcc", "jump".
9126         (constprop_register): Likewise for param "insn".
9127         (cprop_insn): Likewise.
9128         (do_local_cprop): Likewise.
9129         (local_cprop_pass): Likewise for local "insn".
9130         (bypass_block): Likewise for params "setcc" and "jump".
9131         (bypass_conditional_jumps): Likewise for locals "setcc" and
9132         "insn".
9133         (one_cprop_pass): Likewise for local "insn".
9134
9135 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9136
9137         * compare-elim.c (struct comparison_use): Strengthen field "insn"
9138         from rtx to rtx_insn *.
9139         (struct comparison): Likewise, also for field "prev_clobber".
9140         (conforming_compare): Likewise for param "insn".
9141         (arithmetic_flags_clobber_p): Likewise.
9142         (find_flags_uses_in_insn): Likewise.
9143         (find_comparison_dom_walker::before_dom_children): Likewise for
9144         locals "insn", "next", "last_clobber".
9145         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
9146
9147 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9148
9149         * combine-stack-adj.c (struct csa_reflist): Strengthen field
9150         "insn" from rtx to rtx_insn *.
9151         (single_set_for_csa): Likewise for param "insn".
9152         (record_one_stack_ref): Likewise.
9153         (try_apply_stack_adjustment): Likewise.
9154         (struct record_stack_refs_data): Likewise for field "insn".
9155         (maybe_move_args_size_note): Likewise for params "last" and "insn".
9156         (prev_active_insn_bb): Likewise for return type and param "insn".
9157         (next_active_insn_bb): Likewise.
9158         (force_move_args_size_note): Likewise for params "prev" and "last"
9159         and locals "test", "next_candidate", "prev_candidate".
9160         (combine_stack_adjustments_for_block): Strengthen locals
9161         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
9162         rtx_insn *.
9163
9164 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9165
9166         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
9167         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
9168         (subst_insn): Likewise for this variable.
9169         (added_links_insn): Likewise.
9170         (struct insn_link): Likewise for field "insn".
9171         (alloc_insn_link): Likewise for param "insn".
9172         (struct undobuf): Likewise for field "other_insn".
9173         (find_single_use): Likewise for param "insn" and local "next".
9174         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
9175         (delete_noop_moves): Likewise for locals "insn", "next".
9176         (create_log_links): Likewise for locals "insn", "use_insn".
9177         Strengthen local "next_use" from rtx * to rtx_insn **.
9178         (insn_a_feeds_b): Likewise for params "a", "b".
9179         (combine_instructions): Likewise for param "f" and locals "insn",
9180         "next", "prev", "first", "last_combined_insn", "link", "link1",
9181         "temp".  Replace use of NULL_RTX with NULL when referring to
9182         insns.
9183         (setup_incoming_promotions): Likewise for param "first"
9184         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
9185         (can_combine_p): Likewise for params "insn", "i3", "pred",
9186         "pred2", "succ", "succ2" and for local "p".
9187         (combinable_i3pat): Likewise for param "i3".
9188         (cant_combine_insn_p): Likewise for param "insn".
9189         (likely_spilled_retval_p): Likewise.
9190         (adjust_for_new_dest): Likewise.
9191         (update_cfg_for_uncondjump): Likewise, also for local "insn".
9192         (try_combine): Likewise for return type and for params "i3", "i2",
9193         "i1", "i0", "last_combined_insn", and for locals "insn",
9194         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
9195         "i0_insn".  Eliminate local "tem" in favor of new locals
9196         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
9197         checked cast for now to rtx_insn * on the return type of
9198         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
9199         insns.
9200         (find_split_point): Strengthen param "insn" from rtx to
9201         rtx_insn *.
9202         (simplify_set): Likewise for local "other_insn".
9203         (recog_for_combine): Likewise for param "insn".
9204         (record_value_for_reg): Likewise.
9205         (record_dead_and_set_regs_1): Likewise for local
9206         "record_dead_insn".
9207         (record_dead_and_set_regs): Likewise for param "insn".
9208         (record_promoted_value): Likewise.
9209         (check_promoted_subreg): Likewise.
9210         (get_last_value_validate): Likewise.
9211         (reg_dead_at_p): Likewise.
9212         (move_deaths): Likewise for param "to_insn".
9213         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
9214         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
9215         in favor of new locals "tem_note" and "tem_insn", the latter being
9216         an rtx_insn *.
9217         (distribute_links): Strengthen locals "place", "insn" from rtx to
9218         rtx_insn *.
9219
9220 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9221
9222         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
9223         than a const_rtx.
9224         (can_delete_label_p): Require a const rtx_code_label * rather than
9225         a const_rtx.
9226         (delete_insn): Add checked cast to rtx_code_label * when we know
9227         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
9228         rtx to rtx_insn *.
9229         (delete_insn_chain): Strengthen locals "prev" and "current" from
9230         rtx to rtx_insn *.  Add a checked cast when assigning from
9231         "finish" (strengthening the params will come later).  Add a
9232         checked cast to rtx_note * in region where we know
9233         NOTE_P (current).
9234         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
9235         rtx_insn *.
9236         (compute_bb_for_insn): Likewise.
9237         (free_bb_for_insn): Likewise for local "insn".
9238         (compute_bb_for_insn): Likewise.
9239         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
9240         local "insn" from rtx to rtx_insn *
9241         (flow_active_insn_p): Require a const rtx_insn * rather than a
9242         const_rtx.
9243         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
9244         rtx_insn *.
9245         (can_fallthru): Likewise for locals "insn" and "insn2".
9246         (bb_note): Likewise for local "note".
9247         (first_insn_after_basic_block_note): Likewise for local "note" and
9248         for return type.
9249         (rtl_split_block): Likewise for locals "insn" and "next".
9250         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
9251         "end".
9252         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
9253         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
9254         "prev", "tmp".
9255         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
9256         them), "kill_from", "barrier", "new_insn".
9257         (patch_jump_insn): Likewise for params "insn", "old_label".
9258         (redirect_branch_edge): Likewise for locals "old_label", "insn".
9259         (force_nonfallthru_and_redirect): Likewise for locals "insn",
9260         "old_label", "new_label".
9261         (rtl_tidy_fallthru_edge): Likewise for local "q".
9262         (rtl_split_edge): Likewise for locals "before", "last".
9263         (commit_one_edge_insertion): Likewise for locals "before",
9264         "after", "insns", "tmp", "last", adding a checked cast where
9265         currently necessary.
9266         (commit_edge_insertions): Likewise.
9267         (rtl_dump_bb): Likewise for locals "insn", "last".
9268         (print_rtl_with_bb): Likewise for local "x".
9269         (rtl_verify_bb_insns): Likewise for local "x".
9270         (rtl_verify_bb_pointers): Likewise for local "insn".
9271         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
9272         "head", "end".
9273         (rtl_verify_fallthru): Likewise for local "insn".
9274         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
9275         (purge_dead_edges): Likewise for local "insn".
9276         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
9277         (skip_insns_after_block): Likewise for return type and for locals
9278         "insn", "last_insn", "next_head", "prev".
9279         (record_effective_endpoints): Likewise for locals "next_insn",
9280         "insn", "end".
9281         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
9282         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
9283         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
9284         (duplicate_insn_chain): For now, add checked cast from rtx to
9285         rtx_insn * when returning insn.
9286         (cfg_layout_duplicate_bb): Likewise for local "insn".
9287         (cfg_layout_delete_block): Likewise for locals "insn", "next",
9288         "prev", "remaints".
9289         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
9290         (rtl_block_empty_p): Likewise.
9291         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
9292         "split_point", "last".
9293         (rtl_block_ends_with_call_p): Likewise for local "insn".
9294         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
9295         const rtx_insn *.
9296         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
9297         "split_at_insn" from rtx to rtx_insn *.
9298         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
9299         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
9300         to const rtx_insn *.
9301         (rtl_account_profile_record): Likewise.
9302
9303 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9304
9305         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
9306         rtx to rtx_insn *.
9307         (average_num_loop_insns): Likewise.
9308         (init_set_costs): Likewise for local "seq".
9309         (seq_cost): Likewise for param "seq", from const_rtx to const
9310         rtx_insn *.
9311
9312 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9313
9314         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
9315         rtx to rtx_insn *.
9316
9317 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9318
9319         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
9320         "f1" and "f2" from rtx * to rtx_insn **.
9321         (flow_find_head_matching_sequence): Likewise.
9322
9323         * cfgcleanup.c (try_simplify_condjump): Strengthen local
9324         "cbranch_insn" from rtx to rtx_insn *.
9325         (thread_jump): Likewise for local "insn".
9326         (try_forward_edges): Likewise for local "last".
9327         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
9328         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
9329         "real_b_end".
9330         (can_replace_by): Likewise for params "i1", "i2".
9331         (old_insns_match_p): Likewise.
9332         (merge_notes): Likewise.
9333         (walk_to_nondebug_insn): Likewise for param "i1".
9334         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
9335         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
9336         "afterlast1", "afterlast2" from rtx to rtx_insn *.
9337         (flow_find_head_matching_sequence): Strengthen params "f1" and
9338         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
9339         "last1", "last2", "beforelast1", "beforelast2" from rtx to
9340         rtx_insn *.
9341         (outgoing_edges_match): Likewise for locals "last1", "last2".
9342         (try_crossjump_to_edge): Likewise for local "insn".
9343         Replace call to for_each_rtx with for_each_rtx_in_insn.
9344
9345         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
9346         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
9347         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
9348         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
9349         (try_optimize_cfg): Strengthen local "last" from rtx to
9350         rtx_insn *.
9351         (delete_dead_jumptables): Likewise for locals "insn", "next",
9352         "label".
9353
9354         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
9355         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
9356         "rtx else_first_tail", to reflect the basic-block.h changes above.
9357
9358 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9359
9360         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
9361         rtx_insn *.
9362         (purge_dead_tablejump_edges): Likewise.
9363         (find_bb_boundaries): Likewise for locals "insn", "end",
9364         "flow_transfer_insn".
9365
9366 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9367
9368         * caller-save.c (save_call_clobbered_regs): Strengthen locals
9369         "ins" and "prev" from rtx to rtx_insn *.
9370
9371 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9372
9373         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
9374         rtx_insn *.
9375         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
9376         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
9377         "scan_start".
9378         (load_register_parameters): Likewise for local "before_arg".
9379         (check_sibcall_argument_overlap): Likewise for param "insn".
9380         (expand_call): Likewise for locals "normal_call_insns",
9381         "tail_call_insns", "insns", "before_call", "after_args",
9382         "before_arg", "last", "prev".  Strengthen one of the "last" from
9383         rtx to rtx_call_insn *.
9384         (fixup_tail_calls): Strengthen local "insn" from rtx to
9385         rtx_insn *.
9386         (emit_library_call_value_1): Likewise for locals "before_call" and
9387         "last".
9388
9389 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9390
9391         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
9392         and "last" from rtx to rtx_insn *.
9393         (expand_builtin_nonlocal_goto): Likewise for local "insn".
9394         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
9395         rtx_call_insn *.
9396         (expand_errno_check): Strengthen local "lab" from rtx to
9397         rtx_code_label *.
9398         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
9399         rtx_insn *.
9400         (expand_builtin_mathfn_2): Likewise.
9401         (expand_builtin_mathfn_ternary): Likewise.
9402         (expand_builtin_mathfn_3): Likewise.
9403         (expand_builtin_interclass_mathfn): Likewise for local "last".
9404         (expand_builtin_int_roundingfn): Likewise for local "insns".
9405         (expand_builtin_int_roundingfn_2): Likewise.
9406         (expand_builtin_strlen): Likewise for local "before_strlen".
9407         (expand_builtin_strncmp): Likewise for local "seq".
9408         (expand_builtin_signbit): Likewise for local "last".
9409         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
9410         from rtx to rtx_code_label *.
9411         (expand_stack_restore):  Strengthen local "prev" from rtx to
9412         rtx_insn *.
9413
9414 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9415
9416         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
9417         to rtx_insn *.
9418         (struct btr_def_s): Likewise.
9419         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
9420         const rtx_insn *.
9421         (add_btr_def): Likewise.
9422         (new_btr_user): Likewise.
9423         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
9424         rtx to rtx_insn *.
9425         (link_btr_uses): Likewise.
9426         (move_btr_def): Likewise for locals "insp", "old_insn",
9427         "new_insn".  Add checked cast to rtx_insn * for now on result of
9428         gen_move_insn.
9429         (can_move_up): Strengthen param "insn" from const_rtx to
9430         const rtx_insn *.
9431
9432 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9433
9434         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
9435         rtx_insn *.
9436         (get_uncond_jump_length): Likewise for locals "label", "jump".
9437         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
9438         "jump", "insn".
9439         (add_labels_and_missing_jumps): Likewise for local "new_jump".
9440         (fix_up_fall_thru_edges): Likewise for local "old_jump".
9441         (find_jump_block): Likewise for local "insn".
9442         (fix_crossing_conditional_branches): Likewise for locals
9443         "old_jump", "new_jump".
9444         (fix_crossing_unconditional_branches): Likewise for locals
9445         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
9446         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
9447
9448 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9449
9450         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
9451         rtx to rtx_insn *.
9452         (struct mem_insn): Likewise for field "insn".
9453         (reg_next_use): Strengthen from rtx * to rtx_insn **.
9454         (reg_next_inc_use): Likewise.
9455         (reg_next_def): Likewise.
9456         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
9457         from rtx to rtx_insn *.
9458         (move_insn_before): Likewise for param "next_insn" and local "insns".
9459         (attempt_change): Likewise for local "mov_insn".
9460         (try_merge): Likewise for param "last_insn".
9461         (get_next_ref): Likewise for return type and local "insn".
9462         Strengthen param "next_array" from rtx * to rtx_insn **.
9463         (parse_add_or_inc): Strengthen param "insn" from rtx to
9464         rtx_insn *.
9465         (find_inc): Likewise for locals "insn" and "other_insn" (three of
9466         the latter).
9467         (merge_in_block): Likewise for locals "insn", "curr",
9468         "other_insn".
9469         (pass_inc_dec::execute): Update allocations of the arrays to
9470         reflect the stronger types.
9471
9472 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9473
9474         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
9475         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
9476         from rtx to rtx_code_label *.
9477
9478 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9479
9480         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
9481         to rtx_insn *.
9482
9483 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9484
9485         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
9486         generated a warning and prevented bootstrapping the compiler.
9487
9488 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9489
9490         * rtl.h (delete_related_insns): Strengthen return type from rtx to
9491         rtx_insn *.
9492
9493         * jump.c (delete_related_insns): Likewise, also for locals "next"
9494         and "prev".
9495
9496 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9497
9498         * genautomata.c (output_internal_insn_latency_func): When writing
9499         the function "internal_insn_latency" to insn-automata.c,
9500         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
9501         allowing the optional guard function of (define_bypass) clauses to
9502         expect a pair of rtx_insn *, rather than a pair of rtx.
9503         (output_insn_latency_func): When writing the function
9504         "insn_latency", add an "uncast_" prefix to params "insn" and
9505         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
9506         using checked casts from the params, thus enabling the above
9507         change to the generated "internal_insn_latency" function.
9508
9509 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
9510
9511         PR tree-optimization/62091
9512         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
9513         handle correctly arrays.
9514         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
9515         inheritance binfos.
9516         (record_known_type): Walk into inner type.
9517         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
9518         condition on no type changes.
9519
9520 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9521
9522         * genattrtab.c (write_attr_get): Within the generated get_attr_
9523         functions, rename param "insn" to "uncast_insn" and reintroduce
9524         "insn" as an local rtx_insn * using a checked cast, so that "insn"
9525         is an rtx_insn * within insn-attrtab.c
9526
9527 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9528
9529         * output.h (peephole): Strengthen return type from rtx to
9530         rtx_insn *.
9531         * rtl.h (delete_for_peephole): Likewise for both params.
9532         * genpeep.c (main): In generated "peephole" function, strengthen
9533         return type and local "insn" from rtx to rtx_insn *.  For now,
9534         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
9535         rtx_insn *, with a checked cast.
9536         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
9537         locals "insn", "next", "prev" from rtx to rtx_insn *.
9538
9539 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
9540
9541         PR tree-optimization/62112
9542         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
9543         * gimple-iterator.h (gsi_replace): Return bool.
9544         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
9545         moved from ref_may_alias_global_p.
9546         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
9547         New overloads.
9548         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
9549         (stmt_kills_ref_p_1): Rename...
9550         (stmt_kills_ref_p): ... to this.
9551         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
9552         stmt_kills_ref_p): Declare.
9553         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
9554         Move the self-assignment case...
9555         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
9556
9557 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9558
9559         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
9560
9561         * emit-rtl.c (try_split): Likewise, also for locals "before" and
9562         "after".  For now, don't strengthen param "trial", which requires
9563         adding checked casts when returning it.
9564
9565 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9566
9567         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
9568         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
9569         "var_location" hook from rtx to rtx_insn *.
9570         (debug_nothing_rtx): Delete in favor of...
9571         (debug_nothing_rtx_code_label): New prototype.
9572         (debug_nothing_rtx_rtx): Delete unused prototype.
9573         (debug_nothing_rtx_insn): New prototype.
9574
9575         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
9576         invoking debug_hooks->var_location (in two places, one in a NOTE
9577         case of a switch statement, the other guarded by a CALL_P
9578         conditional.  Add checked cast to rtx_code_label * when invoking
9579         debug_hooks->label (within CODE_LABEL case of switch statement).
9580
9581         * dbxout.c (dbx_debug_hooks): Update "label" hook from
9582         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
9583         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
9584         (xcoff_debug_hooks): Likewise.
9585         * debug.c (do_nothing_debug_hooks): Likewise.
9586         (debug_nothing_rtx): Delete in favor of...
9587         (debug_nothing_rtx_insn): New function.
9588         (debug_nothing_rtx_rtx): Delete unused function.
9589         (debug_nothing_rtx_code_label): New function.
9590         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
9591         debug_nothing_rtx to debug_nothing_rtx_code_label.
9592         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
9593         to rtx_insn *.
9594         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
9595         debug_nothing_rtx to debug_nothing_rtx_insn.
9596         (sdbout_label): Strengthen param "insn" from rtx to
9597         rtx_code_label *.
9598         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
9599         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
9600         "var_location" hook from debug_nothing_rtx to
9601         debug_nothing_rtx_insn.
9602
9603 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9604
9605         * recog.h (insn_output_fn): Update this function typedef to match
9606         the changes below to the generated output functions, strengthening
9607         the 2nd param from rtx to rtx_insn *.
9608
9609         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
9610         insn when invoking an output function, to match the new signature
9611         of insn_output_fn with a stronger second param.
9612
9613         * genconditions.c (write_header): In the generated code for
9614         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
9615         to match the other changes in this patch.
9616
9617         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
9618         the generated "gen_" functions from rtx to rtx_insn * within their
9619         implementations.
9620
9621         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
9622         the subfunctions within the generated "recog_", "split", "peephole2"
9623         function trees from rtx to rtx_insn *.  For now, the top-level
9624         generated functions ("recog", "split", "peephole2") continue to
9625         take a plain rtx for "insn", to avoid introducing dependencies on
9626         other patches.  Rename this 2nd param from "insn" to
9627         "uncast_insn", and reintroduce "insn" as a local variable of type
9628         rtx_insn *, initialized at the top of the generated function with
9629         a checked cast on "uncast_insn".
9630         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
9631         the generated "gen_" functions from rtx to rtx_insn * within their
9632         prototypes.
9633
9634         * genoutput.c (process_template): Strengthen the 2nd param within
9635         the generated "output_" functions "insn" from rtx to rtx_insn *.
9636
9637 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
9638
9639         * tree-profile.c (tree_profiling): Skip external functions
9640         when doing coverage instrumentation.
9641         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
9642
9643 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9644
9645         * config/rs6000/altivec.h (vec_cpsgn): New #define.
9646         (vec_mergee): Likewise.
9647         (vec_mergeo): Likewise.
9648         (vec_cntlz): Likewise.
9649         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
9650         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
9651         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
9652         VMRGEW, and VMRGOW.
9653         * doc/extend.texi: Document various forms of vec_cpsgn,
9654         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
9655         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
9656         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
9657         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
9658         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
9659
9660 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9661
9662         * config/rs6000/rs6000.c (context.h): New include.
9663         (tree-pass.h): Likewise.
9664         (make_pass_analyze_swaps): New decl.
9665         (rs6000_option_override): Register pass_analyze_swaps.
9666         (swap_web_entry): New subsclass of web_entry_base (df.h).
9667         (special_handling_values): New enum.
9668         (union_defs): New function.
9669         (union_uses): Likewise.
9670         (insn_is_load_p): Likewise.
9671         (insn_is_store_p): Likewise.
9672         (insn_is_swap_p): Likewise.
9673         (rtx_is_swappable_p): Likewise.
9674         (insn_is_swappable_p): Likewise.
9675         (chain_purpose): New enum.
9676         (chain_contains_only_swaps): New function.
9677         (mark_swaps_for_removal): Likewise.
9678         (swap_const_vector_halves): Likewise.
9679         (adjust_subreg_index): Likewise.
9680         (permute_load): Likewise.
9681         (permute_store): Likewise.
9682         (handle_special_swappables): Likewise.
9683         (replace_swap_with_copy): Likewise.
9684         (dump_swap_insn_table): Likewise.
9685         (rs6000_analyze_swaps): Likewise.
9686         (pass_data_analyze_swaps): New pass_data.
9687         (pass_analyze_swaps): New rtl_opt_pass.
9688         (make_pass_analyze_swaps): New function.
9689         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
9690
9691 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9692
9693         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
9694         type from rtx to rtx_insn *.
9695         (create_copy_of_insn_rtx): Likewise.
9696         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
9697         (create_copy_of_insn_rtx): Likewise, also for local "res".
9698
9699 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9700
9701         * rtl.h (find_first_parameter_load): Strengthen return type from
9702         rtx to rtx_insn *.
9703         * rtlanal.c (find_first_parameter_load): Strengthen return type
9704         from rtx to rtx_insn *.  Add checked cast for now, to postpone
9705         strengthening the params.
9706
9707 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9708
9709         PR fortran/44054
9710         * diagnostic.c: Set default caret.
9711         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
9712         line is needed.
9713         * diagnostic.h (struct diagnostic_context):
9714
9715 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9716
9717         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
9718         (sel_bb_head): Strengthen return type insn_t (currently just an
9719         rtx) to rtx_insn *.
9720         (sel_bb_end): Likewise.
9721
9722         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
9723         (sel_bb_head): Strengthen return type and local "head" from
9724         insn_t (currently just an rtx) to rtx_insn *.
9725         (sel_bb_end): Likewise for return type.
9726         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
9727         working with insn.
9728
9729 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9730
9731         * basic-block.h (get_last_bb_insn): Strengthen return type from
9732         rtx to rtx_insn *.
9733         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
9734         end".
9735
9736 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9737
9738         PR fortran/44054
9739         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
9740          to here ...
9741         (diagnostic_report_diagnostic): ... from here.
9742         * toplev.c (general_init): Move code to c-family.
9743
9744 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9745
9746         * df.h (web_entry_base): Replace existing struct web_entry with a
9747         new class web_entry_base with only the predecessor member.
9748         (unionfind_root): Remove declaration and move to class member.
9749         (unionfind_union): Remove declaration and move to friend
9750         function.
9751         (union_defs): Remove declaration.
9752         * web.c (web_entry_base::unionfind_root): Modify to be member
9753         function and adjust accessors.
9754         (unionfind_union): Modify to be friend function and adjust
9755         accessors.
9756         (web_entry): New subclass of web_entry_base containing the reg
9757         member.
9758         (union_match_dups): Modify for struct -> class changes.
9759         (union_defs): Likewise.
9760         (entry_register): Likewise.
9761         (pass_web::execute): Likewise.
9762
9763 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
9764
9765         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
9766         builtin define __VEC_ELEMENT_REG_ORDER__.
9767
9768 2014-08-20  Martin Jambor  <mjambor@suse.cz>
9769             Wei Mi  <wmi@google.com>
9770
9771         PR ipa/60449
9772         PR middle-end/61776
9773         * tree-ssa-operands.c (update_stmt_operands): Remove
9774         MODIFIED_NORETURN_CALLS.
9775         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
9776         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
9777         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
9778         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
9779         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
9780         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
9781         (gimple_call_set_ctrl_altering): New func.
9782         (gimple_call_ctrl_altering_p): Ditto.
9783         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
9784         (make_blocks): Use gimple_call_initialize_ctrl_altering.
9785         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
9786         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
9787         remove MODIFIED_NORETURN_CALLS.
9788
9789 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
9790
9791         * coverage.c (coverage_compute_profile_id): Return non-0;
9792         also handle symbols with unique name.
9793         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
9794
9795 2014-08-20  Steve Ellcey  <sellcey@mips.com>
9796
9797         PR middle-end/49191
9798         * doc/sourcebuild.texi (non_strict_align): New.
9799
9800 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
9801
9802         * cgraphunit.c (ipa_passes, compile): Reshedule
9803         symtab_remove_unreachable_nodes passes; update comments.
9804         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
9805         TODO_remove_functions before the pass; the functions ought to be
9806         already removed.
9807         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
9808         TODO_remove_functions.
9809         * passes.c (pass_data_early_local_passes): Do not schedule function
9810         removal.
9811         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
9812
9813 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9814
9815         PR c/59304
9816         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
9817         before setting the option.
9818         * diagnostic.c (diagnostic_classify_diagnostic): Record
9819         command-line status.
9820
9821 2014-08-20  Richard Biener  <rguenther@suse.de>
9822
9823         PR lto/62190
9824         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
9825         to build uint{16,32,64}_type_node.
9826
9827 2014-08-20  Terry Guo  <terry.guo@arm.com>
9828
9829         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
9830         with immediate_operand.
9831
9832 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
9833
9834         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
9835         "insn" from an as_a to a safe_as_a, for the case when "insn" is
9836         NULL.
9837
9838 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9839
9840         PR preprocessor/51303
9841         * incpath.c (remove_duplicates): Use cpp_warning.
9842
9843 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9844
9845         PR c/60975
9846         PR c/53063
9847         * doc/options.texi (CPP): Document it.
9848         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
9849         * optc-gen.awk: Handle CPP.
9850         * opth-gen.awk: Likewise.
9851
9852 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9853
9854         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
9855         rtx_insn *.
9856         (duplicate_insn_chain): Likewise.
9857         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
9858         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
9859         checked cast for now (until we can strengthen the params in the
9860         same way).
9861         (duplicate_insn_chain): Likewise.
9862
9863 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9864
9865         * rtl.h (next_cc0_user): Strengthen return type from rtx to
9866         rtx_insn *.
9867         (prev_cc0_setter): Likewise.
9868
9869         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
9870         rtx_insn *, adding checked casts for now as necessary.
9871         (prev_cc0_setter): Likewise.
9872
9873 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9874
9875         * expr.h (emit_move_insn): Strengthen return type from rtx to
9876         rtx_insn *.
9877         (emit_move_insn_1): Likewise.
9878         (emit_move_complex_push): Likewise.
9879         (emit_move_complex_parts): Likewise.
9880
9881         * expr.c (emit_move_via_integer): Strengthen return type from rtx
9882         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
9883         with insns.
9884         (emit_move_complex_push): Strengthen return type from rtx to
9885         rtx_insn *.
9886         (emit_move_complex): Likewise, also for local "ret".
9887         (emit_move_ccmode): Likewise.
9888         (emit_move_multi_word): Likewise for return type and locals
9889         "last_insn", "seq".
9890         (emit_move_insn_1): Likewise for return type and locals "result",
9891         "ret".
9892         (emit_move_insn): Likewise for return type and local "last_insn".
9893         (compress_float_constant): Likewise.
9894
9895 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9896
9897         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
9898         from rtx to rtx_insn *.
9899
9900         * rtl.h (emit_insn_before): Likewise.
9901         (emit_insn_before_noloc): Likewise.
9902         (emit_insn_before_setloc): Likewise.
9903         (emit_jump_insn_before): Likewise.
9904         (emit_jump_insn_before_noloc): Likewise.
9905         (emit_jump_insn_before_setloc): Likewise.
9906         (emit_call_insn_before): Likewise.
9907         (emit_call_insn_before_noloc): Likewise.
9908         (emit_call_insn_before_setloc): Likewise.
9909         (emit_debug_insn_before): Likewise.
9910         (emit_debug_insn_before_noloc): Likewise.
9911         (emit_debug_insn_before_setloc): Likewise.
9912         (emit_label_before): Likewise.
9913         (emit_insn_after): Likewise.
9914         (emit_insn_after_noloc): Likewise.
9915         (emit_insn_after_setloc): Likewise.
9916         (emit_jump_insn_after): Likewise.
9917         (emit_jump_insn_after_noloc): Likewise.
9918         (emit_jump_insn_after_setloc): Likewise.
9919         (emit_call_insn_after): Likewise.
9920         (emit_call_insn_after_noloc): Likewise.
9921         (emit_call_insn_after_setloc): Likewise.
9922         (emit_debug_insn_after): Likewise.
9923         (emit_debug_insn_after_noloc): Likewise.
9924         (emit_debug_insn_after_setloc): Likewise.
9925         (emit_label_after): Likewise.
9926         (emit_insn): Likewise.
9927         (emit_debug_insn): Likewise.
9928         (emit_jump_insn): Likewise.
9929         (emit_call_insn): Likewise.
9930         (emit_label): Likewise.
9931         (gen_clobber): Likewise.
9932         (emit_clobber): Likewise.
9933         (gen_use): Likewise.
9934         (emit_use): Likewise.
9935         (emit): Likewise.
9936
9937         (emit_barrier_before): Strengthen return type from rtx to
9938         rtx_barrier *.
9939         (emit_barrier_after): Likewise.
9940         (emit_barrier): Likewise.
9941
9942         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
9943         from rtx to rtx_insn *.  Add checked casts for now when converting
9944         "last" from rtx to rtx_insn *.
9945         (emit_insn_before_noloc): Likewise for return type.
9946         (emit_jump_insn_before_noloc): Likewise.
9947         (emit_call_insn_before_noloc): Likewise.
9948         (emit_debug_insn_before_noloc): Likewise.
9949         (emit_barrier_before): Strengthen return type and local "insn"
9950         from rtx to rtx_barrier *.
9951         (emit_label_before): Strengthen return type from rtx to
9952         rtx_insn *.  Add checked cast for now when returning param
9953         (emit_pattern_after_noloc): Strengthen return type from rtx to
9954         rtx_insn *.  Add checked casts for now when converting "last" from
9955         rtx to rtx_insn *.
9956         (emit_insn_after_noloc): Strengthen return type from rtx to
9957         rtx_insn *.
9958         (emit_jump_insn_after_noloc): Likewise.
9959         (emit_call_insn_after_noloc): Likewise.
9960         (emit_debug_insn_after_noloc): Likewise.
9961         (emit_barrier_after): Strengthen return type from rtx to
9962         rtx_barrier *.
9963         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
9964         Add checked cast for now when converting "label" from rtx to
9965         rtx_insn *.
9966         (emit_pattern_after_setloc): Strengthen return type from rtx to
9967         rtx_insn *.  Add checked casts for now when converting "last" from
9968         rtx to rtx_insn *.
9969         (emit_pattern_after): Strengthen return type from rtx to
9970         rtx_insn *.
9971         (emit_insn_after_setloc): Likewise.
9972         (emit_insn_after): Likewise.
9973         (emit_jump_insn_after_setloc): Likewise.
9974         (emit_jump_insn_after): Likewise.
9975         (emit_call_insn_after_setloc): Likewise.
9976         (emit_call_insn_after): Likewise.
9977         (emit_debug_insn_after_setloc): Likewise.
9978         (emit_debug_insn_after): Likewise.
9979         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
9980         when converting "last" from rtx to rtx_insn *.
9981         (emit_pattern_before): Strengthen return type from rtx to
9982         rtx_insn *.
9983         (emit_insn_before_setloc): Likewise.
9984         (emit_insn_before): Likewise.
9985         (emit_jump_insn_before_setloc): Likewise.
9986         (emit_jump_insn_before): Likewise.
9987         (emit_call_insn_before_setloc): Likewise.
9988         (emit_call_insn_before): Likewise.
9989         (emit_debug_insn_before_setloc): Likewise.
9990         (emit_debug_insn_before): Likewise.
9991         (emit_insn): Strengthen return type and locals "last", "insn",
9992         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
9993         within cases where we know we have an insn.
9994         (emit_debug_insn): Likewise.
9995         (emit_jump_insn): Likewise.
9996         (emit_call_insn): Strengthen return type and local "insn" from rtx
9997         to rtx_insn *.
9998         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
9999         a checked cast to rtx_insn * for now on "label".
10000         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
10001         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
10002         (emit_use): Likewise.
10003         (gen_use): Likewise, also for local "seq".
10004         (emit): Likewise for return type and local "insn".
10005         (rtx_insn): Likewise for return type and local "new_rtx".
10006
10007         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
10008         from rtx to rtx_barrier *.
10009
10010         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
10011         changed return type from rtx to rtx_insn *, we must update
10012         "emit_fn" type, and this in turn means updating...
10013         (frame_insn): ...this.  Strengthen return type from rtx to
10014         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
10015
10016 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10017
10018         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
10019         rtx to rtx_jump_table_data *.  Also for local.
10020         * rtl.h (emit_jump_table_data): Likewise.
10021
10022 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10023
10024         * basic-block.h (create_basic_block_structure): Strengthen third
10025         param "bb_note" from rtx to rtx_note *.
10026         * rtl.h (emit_note_before): Strengthen return type from rtx to
10027         rtx_note *.
10028         (emit_note_after): Likewise.
10029         (emit_note): Likewise.
10030         (emit_note_copy): Likewise.  Also, strengthen param similarly.
10031         * function.h (struct rtl_data): Strengthen field
10032         "x_stack_check_probe_note" from rtx to rtx_note *.
10033
10034         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
10035         from rtx to rtx_note *.
10036         * cfgrtl.c (create_basic_block_structure): Strengthen third param
10037         "bb_note" from rtx to rtx_note *.
10038         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
10039         when calling emit_note_copy.
10040         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
10041         rtx_note *.
10042         (emit_note_after): Likewise.
10043         (emit_note_before): Likewise.
10044         (emit_note_copy): Likewise.  Also, strengthen param similarly.
10045         (emit_note): Likewise.
10046         * except.c (emit_note_eh_region_end): Likewise for return type.
10047         Strengthen local "next" from rtx to rtx_insn *.
10048         (convert_to_eh_region_ranges): Strengthen local "note"
10049         from rtx to rtx_note *.
10050         * final.c (change_scope): Likewise.
10051         (reemit_insn_block_notes): Likewise, for both locals named "note".
10052         Also, strengthen local "insn" from rtx to rtx_insn *.
10053         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
10054         rtx to rtx_note *.
10055         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
10056         strengthen local "seq" from rtx to rtx_insn *.
10057         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
10058         to rtx_note *.
10059         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
10060         vec<rtx_note *>.
10061         (get_bb_note_from_pool): Strengthen return type from rtx to
10062         rtx_note *.
10063         (sel_create_basic_block): Strengthen local "new_bb_note" from
10064         insn_t to rtx_note *.
10065         * var-tracking.c (emit_note_insn_var_location): Strengthen local
10066         "note" from rtx to rtx_note *.
10067         (emit_notes_in_bb): Likewise.
10068
10069 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10070
10071         * function.h (struct rtl_data): Strengthen field
10072         "x_parm_birth_insn" from rtx to rtx_insn *.
10073         * function.c (struct assign_parm_data_all): Strengthen fields
10074         "first_conversion_insn" and "last_conversion_insn" from rtx to
10075         rtx_insn *.
10076
10077 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10078
10079         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
10080         to rtx_insn *; also for local "var_end_seq".
10081         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
10082         (maybe_cleanup_end_of_block): Likewise for param "last" and local
10083         "insn".
10084         (expand_gimple_cond): Likewise for locals "last2" and "last".
10085         (mark_transaction_restart_calls): Likewise for local "insn".
10086         (expand_gimple_stmt): Likewise for return type and locals "last"
10087         and "insn".
10088         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
10089         (avoid_complex_debug_insns): Likewise for param "insn".
10090         (expand_debug_locations): Likewise for locals "insn", "last",
10091         "prev_insn" and "insn2".
10092         (expand_gimple_basic_block): Likewise for local "last".
10093         (construct_exit_block): Likewise for locals "head", "end",
10094         "orig_end".
10095         (pass_expand::execute): Likewise for locals "var_seq",
10096         "var_ret_seq", "next".
10097
10098 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10099
10100         * asan.h (asan_emit_stack_protection): Strengthen return type from
10101         rtx to rtx_insn *.
10102         * asan.c (asan_emit_stack_protection): Likewise.  Add local
10103         "insns" to hold the return value.
10104
10105 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10106
10107         * basic-block.h (bb_note): Strengthen return type from rtx to
10108         rtx_note *.
10109         * sched-int.h (bb_note): Likewise.
10110         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
10111
10112 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10113
10114         * rtl.h (make_insn_raw): Strengthen return type from rtx to
10115         rtx_insn *.
10116
10117         * emit-rtl.c (make_insn_raw): Strengthen return type and local
10118         "insn" from rtx to rtx_insn *.
10119         (make_debug_insn_raw): Strengthen return type from rtx to
10120         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
10121         (make_jump_insn_raw):  Strengthen return type from rtx to
10122         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
10123         (make_call_insn_raw):  Strengthen return type from rtx to
10124         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
10125         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
10126         callback from rtx to rtx_insn *; likewise for local "insn" and
10127         "next", adding a checked cast to rtx_insn in the relevant cases of
10128         the switch statement.
10129         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
10130         callback from rtx to rtx_insn *.
10131         (emit_pattern_after_setloc): Likewise.
10132         (emit_pattern_after): Likewise.
10133         (emit_pattern_before_setloc): Likewise.
10134         (emit_pattern_before): Likewise.
10135
10136 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10137
10138         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
10139         rtx_call_insn *.
10140         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
10141         accepting an rtx_insn *.
10142         (last_call_insn): Strengthen return type from rtx to
10143         rtx_call_insn *.
10144
10145 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10146
10147         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
10148         "insns" from rtx to rtx_insn *.
10149         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
10150         locals "insn" and "prev".
10151
10152 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10153
10154         * rtl.h (tablejump_p): Strengthen third param from rtx * to
10155         rtx_jump_table_data **.
10156
10157         * cfgbuild.c (make_edges): Introduce local "table", using it in
10158         place of "tmp" for jump table data.
10159         (find_bb_boundaries): Strengthen local "table" from rtx to
10160         rtx_jump_table_data *.
10161         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10162         (outgoing_edges_match): Likewise for locals "table1" and "table2".
10163         (try_crossjump_to_edge): Likewise.
10164         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
10165         "table".
10166         (patch_jump_insn): Introduce local "table", using it in place of
10167         "tmp" for jump table data.
10168         (force_nonfallthru_and_redirect): Introduce local "table", so that
10169         call to tablejump_p can receive an rtx_jump_table_data **.  Update
10170         logic around the call to overwrite "note" appropriately if
10171         tablejump_p returns non-zero.
10172         (get_last_bb_insn): Introduce local "table", using it in place of
10173         "tmp" for jump table data.
10174         * dwarf2cfi.c (create_trace_edges): Likewise.
10175
10176         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
10177         from rtx to rtx_jump_table_data *.
10178         (create_fix_barrier): Strengthen local "tmp" from rtx to
10179         rtx_jump_table_data *.
10180         (arm_reorg): Likewise for local "table".
10181
10182         * config/s390/s390.c (s390_chunkify_start): Likewise.
10183
10184         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
10185
10186         * jump.c (delete_related_insns): Strengthen local "lab_next" from
10187         rtx to rtx_jump_table_data *.
10188
10189         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
10190         rtx_jump_table_data **.  Add a checked cast when writing through
10191         the pointer: we know there that local "table" is non-NULL and that
10192         JUMP_TABLE_DATA_P (table) holds.
10193         (label_is_jump_target_p): Introduce local "table", using it in
10194         place of "tmp" for jump table data.
10195
10196 2014-08-19  Marek Polacek  <polacek@redhat.com>
10197
10198         PR c++/62153
10199         * doc/invoke.texi: Document -Wbool-compare.
10200
10201 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10202
10203         * rtl.h (entry_of_function): Strengthen return type from rtx to
10204         rtx_insn *.
10205         * cfgrtl.c (entry_of_function): Likewise.
10206
10207 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10208
10209         * emit-rtl.h (get_insns): Strengthen return type from rtx to
10210         rtx_insn *, adding a checked cast for now.
10211         (get_last_insn): Likewise.
10212
10213 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10214
10215         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
10216         rtx_code_label *.
10217
10218         * emit-rtl.c (gen_label_rtx): Likewise.
10219
10220 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10221
10222         * rtl.h (previous_insn): Strengthen return type from rtx to
10223         rtx_insn *.
10224         (next_insn): Likewise.
10225         (prev_nonnote_insn): Likewise.
10226         (prev_nonnote_insn_bb): Likewise.
10227         (next_nonnote_insn): Likewise.
10228         (next_nonnote_insn_bb): Likewise.
10229         (prev_nondebug_insn): Likewise.
10230         (next_nondebug_insn): Likewise.
10231         (prev_nonnote_nondebug_insn): Likewise.
10232         (next_nonnote_nondebug_insn): Likewise.
10233         (prev_real_insn): Likewise.
10234         (next_real_insn): Likewise.
10235         (prev_active_insn): Likewise.
10236         (next_active_insn): Likewise.
10237
10238         * emit-rtl.c (next_insn): Strengthen return type from rtx to
10239         rtx_insn *, adding a checked cast.
10240         (previous_insn): Likewise.
10241         (next_nonnote_insn): Likewise.
10242         (next_nonnote_insn_bb): Likewise.
10243         (prev_nonnote_insn): Likewise.
10244         (prev_nonnote_insn_bb): Likewise.
10245         (next_nondebug_insn): Likewise.
10246         (prev_nondebug_insn): Likewise.
10247         (next_nonnote_nondebug_insn): Likewise.
10248         (prev_nonnote_nondebug_insn): Likewise.
10249         (next_real_insn): Likewise.
10250         (prev_real_insn): Likewise.
10251         (next_active_insn): Likewise.
10252         (prev_active_insn): Likewise.
10253
10254         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
10255         param "stepfunc" so that it returns an rtx_insn * rather than an
10256         rtx, to track the change to prev_nonnote_insn_bb, which is the
10257         only function this is called with.
10258         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
10259
10260 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
10261
10262         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
10263         assert.
10264
10265 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10266
10267         * coretypes.h (class rtx_debug_insn): Add forward declaration.
10268         (class rtx_nonjump_insn): Likewise.
10269         (class rtx_jump_insn): Likewise.
10270         (class rtx_call_insn): Likewise.
10271         (class rtx_jump_table_data): Likewise.
10272         (class rtx_barrier): Likewise.
10273         (class rtx_code_label): Likewise.
10274         (class rtx_note): Likewise.
10275
10276         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
10277         adding the invariant DEBUG_INSN_P (X).
10278         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
10279         the invariant NONJUMP_INSN_P (X).
10280         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
10281         the invariant JUMP_P (X).
10282         (class rtx_call_insn): New, a subclass of rtx_insn, adding
10283         the invariant CALL_P (X).
10284         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
10285         invariant JUMP_TABLE_DATA_P (X).
10286         (class rtx_barrier): New, a subclass of rtx_insn, adding the
10287         invariant BARRIER_P (X).
10288         (class rtx_code_label): New, a subclass of rtx_insn, adding
10289         the invariant LABEL_P (X).
10290         (class rtx_note): New, a subclass of rtx_insn, adding
10291         the invariant NOTE_P(X).
10292         (is_a_helper <rtx_debug_insn *>::test): New.
10293         (is_a_helper <rtx_nonjump_insn *>::test): New.
10294         (is_a_helper <rtx_jump_insn *>::test): New.
10295         (is_a_helper <rtx_call_insn *>::test): New.
10296         (is_a_helper <rtx_jump_table_data *>::test): New functions,
10297         overloaded for both rtx and rtx_insn *.
10298         (is_a_helper <rtx_barrier *>::test): New.
10299         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
10300         for both rtx and rtx_insn *.
10301         (is_a_helper <rtx_note *>::test): New.
10302
10303 2014-08-19  Marek Polacek  <polacek@redhat.com>
10304
10305         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
10306         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
10307         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
10308         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
10309
10310 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10311
10312         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
10313         rtx_insn *.  To help with transition, for now, convert from an
10314         access macro into a pair of functions: BND_TO, returning an
10315         rtx_insn *, and...
10316         (SET_BND_TO): New function, for use where BND_TO is used as an
10317         lvalue.
10318
10319         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
10320         SET_BND_TO.
10321         (BND_TO): New function, adding a checked cast.
10322         (SET_BND_TO): New function.
10323
10324         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
10325         SET_BND_TO.
10326         (compute_av_set_on_boundaries): Likewise.
10327
10328 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
10329
10330         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
10331         destination if it is used in source.
10332         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
10333         (*popcount<mode>2_falsedep_1): Likewise.
10334
10335 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
10336
10337         PR other/62168
10338         * configure.ac: Set install_gold_as_default to no first.
10339         * configure: Regenerated.
10340
10341 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10342
10343         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
10344         "note_list" field will eventually be an rtx_insn *.  To help with
10345         transition, for now, convert from an access macro into a pair of
10346         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
10347         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
10348         used as an lvalue.
10349
10350         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
10351         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
10352
10353         * sel-sched-ir.c (init_bb): Likewise.
10354         (sel_restore_notes): Likewise.
10355         (move_bb_info): Likewise.
10356         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
10357         (SET_BB_NOTE_LIST): New function.
10358
10359 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10360
10361         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
10362         field will eventually be an rtx_insn *.  To help with transition,
10363         for now, convert from an access macro into a pair of functions:
10364         VINSN_INSN_RTX, returning an rtx_insn *, and...
10365         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
10366         is used as an lvalue.
10367
10368         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
10369         SET_VINSN_INSN_RTX where it's used as an lvalue.
10370         (VINSN_INSN_RTX): New function.
10371         (SET_VINSN_INSN_RTX): New function.
10372
10373 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10374
10375         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
10376         eventually be rtx_insn *, but to help with transition, for now,
10377         convert from an access macro into a pair of functions: DEP_PRO
10378         returning an rtx_insn * and...
10379         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
10380         lvalue, returning an rtx&.
10381         (DEP_CON): Analogous changes to DEP_PRO above.
10382         (SET_DEP_CON): Likewise.
10383
10384         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
10385         an lvalue to SET_DEP_CON.
10386         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
10387         (sd_copy_back_deps): Likewise for DEP_CON.
10388         (DEP_PRO): New function, adding a checked cast for now.
10389         (DEP_CON): Likewise.
10390         (SET_DEP_PRO): New function.
10391         (SET_DEP_CON): Likewise.
10392
10393 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
10394
10395         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
10396         (extra_options): Add i386/cygwin.opt.
10397         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
10398         (CPP_SPEC): Accept -pthread.
10399         (LINK_SPEC): Ditto.
10400         (GOMP_SELF_SPECS): Update comment.
10401         * config/i386/cygwin.opt: New file for -pthread flag.
10402
10403 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10404
10405         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
10406         * df.h (DF_REF_INSN): Convert from a macro to a function, so
10407         that we can return an rtx_insn *.
10408
10409 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
10410
10411         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
10412         when building executables, not DLLs.  Add --large-address-aware
10413         under the same conditions.
10414         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
10415         when building executables, not DLLs.  Add --large-address-aware
10416         under the same conditions when using -m32.
10417
10418         * config/i386/cygwin-stdint.h: Throughout, make type
10419         definitions dependent on target architecture, not host.
10420
10421 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10422
10423         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
10424         the return type from rtx to rtx_insn *,  which will enable various
10425         conversions in followup patches.  For now this is is done by a
10426         checked cast.
10427         (NEXT_INSN): Likewise.
10428         (SET_PREV_INSN): Convert to an inline function.  This is intended
10429         for use as an lvalue, and so returns an rtx& to allow in-place
10430         modification.
10431         (SET_NEXT_INSN): Likewise.
10432
10433 2014-07-08  Mark Wielaard  <mjw@redhat.com>
10434
10435         PR debug/59051
10436         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
10437
10438 2014-08-19  Marek Polacek  <polacek@redhat.com>
10439
10440         PR c/61271
10441         * cgraphunit.c (handle_alias_pairs): Fix condition.
10442
10443 2014-08-19  Richard Biener  <rguenther@suse.de>
10444
10445         * gimple-fold.c (fold_gimple_assign): Properly build a
10446         null-pointer constant when devirtualizing addresses.
10447
10448 2014-07-07  Mark Wielaard  <mjw@redhat.com>
10449
10450         * dwarf2out.c (decl_quals): New function.
10451         (modified_type_die): Take one cv_quals argument instead of two,
10452         one for const and one for volatile.
10453         (add_type_attribute): Likewise.
10454         (generic_parameter_die): Call add_type_attribute with one modifier
10455         argument.
10456         (base_type_for_mode): Likewise.
10457         (add_bounds_info): Likewise.
10458         (add_subscript_info): Likewise.
10459         (gen_array_type_die): Likewise.
10460         (gen_descr_array_type_die): Likewise.
10461         (gen_entry_point_die): Likewise.
10462         (gen_enumeration_type_die): Likewise.
10463         (gen_formal_parameter_die): Likewise.
10464         (gen_subprogram_die): Likewise.
10465         (gen_variable_die): Likewise.
10466         (gen_const_die): Likewise.
10467         (gen_field_die): Likewise.
10468         (gen_pointer_type_die): Likewise.
10469         (gen_reference_type_die): Likewise.
10470         (gen_ptr_to_mbr_type_die): Likewise.
10471         (gen_inheritance_die): Likewise.
10472         (gen_subroutine_type_die): Likewise.
10473         (gen_typedef_die): Likewise.
10474         (force_type_die): Likewise.
10475
10476 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10477
10478         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
10479         if unset.
10480         * configure: Regenerate.
10481
10482 2014-08-19  Richard Biener  <rguenther@suse.de>
10483
10484         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
10485         DECL_EXTERNALs in BLOCKs as non-references.
10486         * tree-streamer-out.c (streamer_write_chain): Likewise.
10487
10488 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10489             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10490             Anna Tikhonova  <anna.tikhonova@intel.com>
10491             Ilya Tocar  <ilya.tocar@intel.com>
10492             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10493             Ilya Verbin  <ilya.verbin@intel.com>
10494             Kirill Yukhin  <kirill.yukhin@intel.com>
10495             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10496
10497         * config/i386/sse.md
10498         (define_mode_iterator VI48_AVX512F): Delete.
10499         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
10500         (define_mode_iterator VI2_AVX512VL): Ditto.
10501         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
10502         Delete.
10503         (define_insn
10504         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
10505         New.
10506         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
10507         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
10508         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
10509         with VI48_AVX512F_AVX512VL): New.
10510         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
10511         with VI2_AVX512VL): Ditto.
10512
10513 2014-08-19  Marek Polacek  <polacek@redhat.com>
10514
10515         * doc/invoke.texi: Document -Wc99-c11-compat.
10516
10517 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10518
10519         * rtl.h (PREV_INSN): Split macro in two: the existing one,
10520         for rvalues, and...
10521         (SET_PREV_INSN): New macro, for use as an lvalue.
10522         (NEXT_INSN, SET_NEXT_INSN): Likewise.
10523
10524         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
10525         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
10526         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
10527         (fixup_abnormal_edges): Likewise.
10528         (unlink_insn_chain): Likewise.
10529         (fixup_reorder_chain): Likewise.
10530         (cfg_layout_delete_block): Likewise.
10531         (cfg_layout_merge_blocks): Likewise.
10532         * combine.c (update_cfg_for_uncondjump): Likewise.
10533         * emit-rtl.c (link_insn_into_chain): Likewise.
10534         (remove_insn): Likewise.
10535         (delete_insns_since): Likewise.
10536         (reorder_insns_nobb): Likewise.
10537         (emit_insn_after_1): Likewise.
10538         * final.c (rest_of_clean_state): Likewise.
10539         (final_scan_insn): Likewise.
10540         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
10541         * haifa-sched.c (concat_note_lists): Likewise.
10542         (remove_notes): Likewise.
10543         (restore_other_notes): Likewise.
10544         (move_insn): Likewise.
10545         (unlink_bb_notes): Likewise.
10546         (restore_bb_notes): Likewise.
10547         * jump.c (delete_for_peephole): Likewise.
10548         * optabs.c (emit_libcall_block_1): Likewise.
10549         * reorg.c (emit_delay_sequence): Likewise.
10550         (fill_simple_delay_slots): Likewise.
10551         * sel-sched-ir.c (sel_move_insn): Likewise.
10552         (sel_remove_insn): Likewise.
10553         (get_bb_note_from_pool): Likewise.
10554         * sel-sched.c (move_nop_to_previous_block): Likewise.
10555
10556         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
10557         * config/c6x/c6x.c (gen_one_bundle): Likewise.
10558         (c6x_gen_bundles): Likewise.
10559         (hwloop_optimize): Likewise.
10560         * config/frv/frv.c (frv_function_prologue): Likewise.
10561         (frv_register_nop): Likewise.
10562         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
10563         (ia64_reorg): Likewise.
10564         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
10565         (mep_make_bundle): Likewise.
10566         (mep_bundle_insns): Likewise.
10567         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
10568         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
10569         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
10570
10571 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10572
10573         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
10574         return type from rtx to rtx_insn *.
10575         (BB_END): Likewise.
10576         (BB_HEADER): Likewise.
10577         (BB_FOOTER): Likewise.
10578         (SET_BB_HEAD): Convert to a function.
10579         (SET_BB_END): Likewise.
10580         (SET_BB_HEADER): Likewise.
10581         (SET_BB_FOOTER): Likewise.
10582
10583         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
10584         Strengthen the return type from rtx to rtx_insn *.  For now, this
10585         is done by adding a checked cast, but this will eventually
10586         become a field lookup.
10587         (BB_END): Likewise.
10588         (BB_HEADER): Likewise.
10589         (BB_FOOTER): Likewise.
10590         (SET_BB_HEAD): New function, from macro of same name.  This is
10591         intended for use as an lvalue, and so returns an rtx& to allow
10592         in-place modification.
10593         (SET_BB_END): Likewise.
10594         (SET_BB_HEADER): Likewise.
10595         (SET_BB_FOOTER): Likewise.
10596
10597 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10598
10599         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
10600         for rvalues, and...
10601         (SET_BB_HEAD): New macro, for use as a lvalue.
10602         (BB_END, SET_BB_END): Likewise.
10603         (BB_HEADER, SET_BB_HEADER): Likewise.
10604         (BB_FOOTER, SET_BB_FOOTER): Likewise.
10605
10606         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
10607         of BB_* macros into SET_BB_* macros.
10608         (fix_crossing_unconditional_branches): Likewise.
10609         * caller-save.c (save_call_clobbered_regs): Likewise.
10610         (insert_one_insn): Likewise.
10611         * cfgbuild.c (find_bb_boundaries): Likewise.
10612         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10613         (outgoing_edges_match): Likewise.
10614         (try_optimize_cfg): Likewise.
10615         * cfgexpand.c (expand_gimple_cond): Likewise.
10616         (expand_gimple_tailcall): Likewise.
10617         (expand_gimple_basic_block): Likewise.
10618         (construct_exit_block): Likewise.
10619         * cfgrtl.c (delete_insn): Likewise.
10620         (create_basic_block_structure): Likewise.
10621         (rtl_delete_block): Likewise.
10622         (rtl_split_block): Likewise.
10623         (emit_nop_for_unique_locus_between): Likewise.
10624         (rtl_merge_blocks): Likewise.
10625         (block_label): Likewise.
10626         (try_redirect_by_replacing_jump): Likewise.
10627         (emit_barrier_after_bb): Likewise.
10628         (fixup_abnormal_edges): Likewise.
10629         (record_effective_endpoints): Likewise.
10630         (relink_block_chain): Likewise.
10631         (fixup_reorder_chain): Likewise.
10632         (fixup_fallthru_exit_predecessor): Likewise.
10633         (cfg_layout_duplicate_bb): Likewise.
10634         (cfg_layout_split_block): Likewise.
10635         (cfg_layout_delete_block): Likewise.
10636         (cfg_layout_merge_blocks): Likewise.
10637         * combine.c (update_cfg_for_uncondjump): Likewise.
10638         * emit-rtl.c (add_insn_after): Likewise.
10639         (remove_insn): Likewise.
10640         (reorder_insns): Likewise.
10641         (emit_insn_after_1): Likewise.
10642         * haifa-sched.c (get_ebb_head_tail): Likewise.
10643         (restore_other_notes): Likewise.
10644         (move_insn): Likewise.
10645         (sched_extend_bb): Likewise.
10646         (fix_jump_move): Likewise.
10647         * ifcvt.c (noce_process_if_block): Likewise.
10648         (dead_or_predicable): Likewise.
10649         * ira.c (update_equiv_regs): Likewise.
10650         * reg-stack.c (change_stack): Likewise.
10651         * sel-sched-ir.c (sel_move_insn): Likewise.
10652         * sel-sched.c (move_nop_to_previous_block): Likewise.
10653
10654         * config/c6x/c6x.c (hwloop_optimize): Likewise.
10655         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
10656
10657 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10658
10659         * rtl.h (for_each_rtx_in_insn): New function.
10660         * rtlanal.c (for_each_rtx_in_insn): Likewise.
10661
10662 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10663
10664         * coretypes.h (class rtx_insn): Add forward declaration.
10665
10666         * rtl.h: Include is-a.h.
10667         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
10668         workaround to ensure gengtype knows inheritance is occurring,
10669         whilst continuing to use the pre-existing special-casing for
10670         rtx_def.
10671         (class rtx_insn): New subclass of rtx_def, adding the
10672         invariant that we're dealing with something we can sanely use
10673         INSN_UID, NEXT_INSN, PREV_INSN on.
10674         (is_a_helper <rtx_insn *>::test): New.
10675         (is_a_helper <const rtx_insn *>::test): New.
10676
10677 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10678
10679         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
10680
10681 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
10682
10683         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
10684         comdats as extern.
10685
10686 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
10687
10688         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
10689         to BUILT_IN_UNREACHABLE.
10690
10691 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
10692
10693         PR target/62011
10694         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
10695         New tune flag.
10696         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
10697         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
10698         (ffs<mode>2): Do not expand with tzcnt for
10699         TARGET_AVOID_FALSE_DEP_FOR_BMI.
10700         (ffssi2_no_cmove): Ditto.
10701         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
10702         (ctz<mode>2): New expander.
10703         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
10704         (*ctz<mode>2_falsedep): New insn.
10705         (*ctz<mode>2): Rename from ctz<mode>2.
10706         (clz<mode>2_lzcnt): New expander.
10707         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
10708         (*clz<mode>2_lzcnt_falsedep): New insn.
10709         (*clz<mode>2): Rename from ctz<mode>2.
10710         (popcount<mode>2): New expander.
10711         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
10712         (*popcount<mode>2_falsedep): New insn.
10713         (*popcount<mode>2): Rename from ctz<mode>2.
10714         (*popcount<mode>2_cmp): Remove.
10715         (*popcountsi2_cmp_zext): Ditto.
10716
10717 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
10718
10719         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
10720         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
10721         * config/microblaze/microblaze.h
10722         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
10723
10724 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
10725
10726         PR other/62168
10727         * configure.ac: Set install_gold_as_default to no for
10728          --enable-gold=no.
10729          * configure: Regenerated.
10730
10731 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
10732
10733         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
10734         * config.in: Add undef of HAVE_isl.
10735         * configure: Regenerate.
10736         * configure.ac: Add definition of HAVE_isl.
10737         * graphite-blocking.c: Add checking of HAVE_isl.
10738         * graphite-dependences.c: Likewise.
10739         * graphite-interchange.c: Likewise.
10740         * graphite-isl-ast-to-gimple.c: Likewise.
10741         * graphite-optimize-isl.c: Likewise.
10742         * graphite-poly.c: Likewise.
10743         * graphite-scop-detection.c: Likewise.
10744         * graphite-sese-to-poly.c: Likewise.
10745         * graphite.c: Likewise.
10746         * toplev.c: Replace the checking of HAVE_cloog with the checking
10747         of HAVE_isl.
10748
10749 2014-08-18  Richard Biener  <rguenther@suse.de>
10750
10751         PR tree-optimization/62090
10752         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
10753         (fold_builtin_3): Do not fold snprintf.
10754         (fold_builtin_4): Likewise.
10755         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
10756         moved from builtins.c.
10757         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
10758         (gimple_fold_builtin): Do not fold sprintf here.
10759
10760 2014-08-18  Richard Biener  <rguenther@suse.de>
10761
10762         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
10763         code to ...
10764         (maybe_canonicalize_mem_ref_addr): ... this function.
10765         (fold_stmt_1): Apply it here before all simplification.
10766
10767 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
10768
10769         PR ipa/61800
10770         * cgraph.h (cgraph_node::create_indirect_edge): Add
10771         compute_indirect_info param.
10772         * cgraph.c (cgraph_node::create_indirect_edge): Compute
10773         indirect_info only when it is required.
10774         * cgraphclones.c (cgraph_clone_edge): Do not recompute
10775         indirect_info fore cloned indirect edge.
10776
10777 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10778             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10779             Anna Tikhonova  <anna.tikhonova@intel.com>
10780             Ilya Tocar  <ilya.tocar@intel.com>
10781             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10782             Ilya Verbin  <ilya.verbin@intel.com>
10783             Kirill Yukhin  <kirill.yukhin@intel.com>
10784             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10785
10786         * config/i386/sse.md
10787         (define_mode_iterator VI8_AVX2_AVX512BW): New.
10788         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
10789
10790 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10791             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10792             Anna Tikhonova  <anna.tikhonova@intel.com>
10793             Ilya Tocar  <ilya.tocar@intel.com>
10794             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10795             Ilya Verbin  <ilya.verbin@intel.com>
10796             Kirill Yukhin  <kirill.yukhin@intel.com>
10797             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10798
10799         * config/i386/sse.md
10800         (define_mode_iterator VF1_AVX512VL): New.
10801         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
10802         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
10803         New.
10804
10805 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10806             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10807             Anna Tikhonova  <anna.tikhonova@intel.com>
10808             Ilya Tocar  <ilya.tocar@intel.com>
10809             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10810             Ilya Verbin  <ilya.verbin@intel.com>
10811             Kirill Yukhin  <kirill.yukhin@intel.com>
10812             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10813
10814         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
10815         * config/i386/i386.md
10816         (define_code_iterator any_float): New.
10817         (define_code_attr floatsuffix): New.
10818         * config/i386/sse.md
10819         (define_mode_iterator VF1_128_256VL): New.
10820         (define_mode_iterator VF2_512_256VL): New.
10821         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
10822         TARGET check.
10823         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
10824         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
10825         New.
10826         (define_mode_attr qq2pssuff): New.
10827         (define_mode_attr sselongvecmode): New.
10828         (define_mode_attr sselongvecmodelower): New.
10829         (define_mode_attr sseintvecmode3): New.
10830         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
10831         New.
10832         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
10833         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
10834         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
10835         (define_insn "ufloatv2siv2df2<mask_name>"): New.
10836
10837 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10838             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10839             Anna Tikhonova  <anna.tikhonova@intel.com>
10840             Ilya Tocar  <ilya.tocar@intel.com>
10841             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10842             Ilya Verbin  <ilya.verbin@intel.com>
10843             Kirill Yukhin  <kirill.yukhin@intel.com>
10844             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10845
10846         * config/i386/sse.md
10847         (define_mode_iterator VF2_AVX512VL): New.
10848         (define_mode_attr sseintvecmode2): New.
10849         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
10850         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
10851         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
10852         (define_insn
10853         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
10854         Ditto.
10855         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
10856         Ditto.
10857         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
10858         Ditto.
10859
10860 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10861             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10862             Anna Tikhonova  <anna.tikhonova@intel.com>
10863             Ilya Tocar  <ilya.tocar@intel.com>
10864             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10865             Ilya Verbin  <ilya.verbin@intel.com>
10866             Kirill Yukhin  <kirill.yukhin@intel.com>
10867             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10868
10869         * config/i386/i386.md
10870         (define_insn "*movoi_internal_avx"): Add evex version.
10871         (define_insn "*movti_internal"): Ditto.
10872
10873 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10874             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10875             Anna Tikhonova  <anna.tikhonova@intel.com>
10876             Ilya Tocar  <ilya.tocar@intel.com>
10877             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10878             Ilya Verbin  <ilya.verbin@intel.com>
10879             Kirill Yukhin  <kirill.yukhin@intel.com>
10880             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10881
10882         * config/i386/i386.md
10883         (define_attr "isa"): Add avx512dq, noavx512dq.
10884         (define_attr "enabled"): Ditto.
10885         * config/i386/sse.md
10886         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
10887
10888 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10889             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10890             Anna Tikhonova  <anna.tikhonova@intel.com>
10891             Ilya Tocar  <ilya.tocar@intel.com>
10892             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10893             Ilya Verbin  <ilya.verbin@intel.com>
10894             Kirill Yukhin  <kirill.yukhin@intel.com>
10895             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10896
10897         * config/i386/i386.c
10898         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
10899         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
10900         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
10901         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
10902         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
10903         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
10904         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
10905         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
10906         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
10907         * config/i386/sse.md
10908         (define_mode_iterator VMOVE): Allow V4TI mode.
10909         (define_mode_iterator V_AVX512VL): New.
10910         (define_mode_iterator V): New handling for AVX512VL.
10911         (define_insn "avx512f_load<mode>_mask"): Delete.
10912         (define_insn "<avx512>_load<mode>_mask"): New.
10913         (define_insn "avx512f_store<mode>_mask"): Delete.
10914         (define_insn "<avx512>_store<mode>_mask"): New.
10915
10916
10917 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
10918
10919         PR sanitizer/62089
10920         * asan.c (instrument_derefs): Fix bitfield check.
10921
10922 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
10923
10924         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
10925         * config/rs6000/htm.md (ttest): Remove clobber.
10926         * config/rs6000/predicates.md (any_mask_operand): New predicate.
10927         (and_operand): Reformat.
10928         (and_2rld_operand): New predicate.
10929         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
10930         parameter.
10931         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
10932         parameter.  Handle AND directly.
10933         (rs6000_split_logical_di): Remove last parameter.
10934         (rs6000_split_logical): Remove last parameter.  Remove obsolete
10935         comment.
10936         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
10937         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
10938         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
10939         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
10940         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
10941         and 5 anonymous splitters):  Delete.
10942         (and<mode>3): New expander.
10943         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
10944         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
10945         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
10946         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
10947         (floatdisf2_internal1): Remove clobbers.
10948         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
10949         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
10950         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
10951         (and<mode>3 for BOOL_128): Remove clobber.
10952         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
10953         rs6000_split_logical.
10954         (*bool<mode>3_internal for BOOL_128): Adjust call of
10955         rs6000_split_logical.
10956         (*boolc<mode>3_internal1 for BOOL_128,
10957         *boolc<mode>3_internal2 for BOOL_128,
10958         *boolcc<mode>3_internal1 for BOOL_128,
10959         *boolcc<mode>3_internal2 for BOOL_128,
10960         *eqv<mode>3_internal1 for BOOL_128,
10961         *eqv<mode>3_internal2 for BOOL_128,
10962         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
10963         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
10964         clobber.
10965         (*vec_reload_and_reg_<mptrsize>): Delete.
10966
10967 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
10968
10969         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
10970         and split, *boolccsi3_internal3 and split): Delete.
10971         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
10972         *boolccdi3_internal3 and split): Delete.
10973         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
10974         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
10975
10976 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
10977
10978         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
10979         and split, *boolcsi3_internal3 and split): Delete.
10980         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
10981         *boolcdi3_internal3 and split): Delete.
10982         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
10983
10984 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
10985
10986         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
10987         <'u'>: Also support printing the low-order 16 bits.
10988         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
10989         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
10990         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
10991         *booldi3_internal3 and split): Delete.
10992         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
10993         *bool<mode>3_dot2): New.
10994         (two anonymous define_splits for non_logical_cint_operand): Merge.
10995
10996 2014-08-17  Marek Polacek  <polacek@redhat.com>
10997             Manuel López-Ibáñez  <manu@gcc.gnu.org>
10998
10999         PR c/62059
11000         * diagnostic.c (adjust_line): Add gcc_checking_assert.
11001         (diagnostic_show_locus): Don't print caret diagnostic
11002         if a column is larger than the line_width.
11003
11004 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
11005
11006         * common.opt: Make the ISL AST generator to be the main code generator
11007         of Graphite.
11008
11009 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
11010
11011         * wide-int.h (generic_wide_int): Declare as class instead of struct.
11012
11013 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
11014
11015         PR target/61641
11016         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
11017         Declare.
11018         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
11019         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
11020         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
11021         Define.
11022         * config/pa/pa.md (begin_brtab): Delete insn.
11023         (end_brtab): Likewise.
11024
11025 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11026
11027         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
11028
11029 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
11030
11031         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
11032         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
11033         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
11034         (get_dynamic_type): Remove.
11035         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
11036         (clear_speculation): Bring to ipa-deivrt.h
11037         (get_class_context): Rename to ...
11038         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
11039         (contains_type_p): Update.
11040         (get_dynamic_type): Rename to ...
11041         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
11042         (possible_polymorphic_call_targets): UPdate.
11043         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
11044         * ipa-prop.c (ipa_analyze_call_uses): Update.
11045
11046 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
11047
11048         * doc/invoke.texi (SH options): Document missing processor variant
11049         options.  Remove references to Hitachi.  Undocument deprecated mspace
11050         option.
11051
11052 2014-08-15  Jason Merrill  <jason@redhat.com>
11053
11054         * tree.c (type_hash_canon): Uncomment assert.
11055
11056 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11057
11058         * input.h (in_system_header_at): Add comment.
11059
11060 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11061
11062         PR fortran/44054
11063         * diagnostic.c (build_message_string): Make it extern.
11064         * diagnostic.h (build_message_string): Make it extern.
11065
11066 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
11067
11068         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
11069         load/store from/to non-floating class pseudo.
11070
11071 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11072
11073         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
11074
11075 2014-08-15  Richard Biener  <rguenther@suse.de>
11076
11077         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
11078         (get_constraint_for_ssa_var): Remove dead code.
11079         (get_constraint_for_1): Adjust.
11080         (find_what_var_points_to): Likewise.
11081         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
11082
11083 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
11084
11085         PR target/61878
11086         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
11087         (_mm512_mask_cmpge_epu32_mask): Ditto.
11088         (_mm512_cmpge_epu32_mask): Ditto.
11089         (_mm512_mask_cmpge_epi64_mask): Ditto.
11090         (_mm512_cmpge_epi64_mask): Ditto.
11091         (_mm512_mask_cmpge_epu64_mask): Ditto.
11092         (_mm512_cmpge_epu64_mask): Ditto.
11093         (_mm512_mask_cmple_epi32_mask): Ditto.
11094         (_mm512_cmple_epi32_mask): Ditto.
11095         (_mm512_mask_cmple_epu32_mask): Ditto.
11096         (_mm512_cmple_epu32_mask): Ditto.
11097         (_mm512_mask_cmple_epi64_mask): Ditto.
11098         (_mm512_cmple_epi64_mask): Ditto.
11099         (_mm512_mask_cmple_epu64_mask): Ditto.
11100         (_mm512_cmple_epu64_mask): Ditto.
11101         (_mm512_mask_cmplt_epi32_mask): Ditto.
11102         (_mm512_cmplt_epi32_mask): Ditto.
11103         (_mm512_mask_cmplt_epu32_mask): Ditto.
11104         (_mm512_cmplt_epu32_mask): Ditto.
11105         (_mm512_mask_cmplt_epi64_mask): Ditto.
11106         (_mm512_cmplt_epi64_mask): Ditto.
11107         (_mm512_mask_cmplt_epu64_mask): Ditto.
11108         (_mm512_cmplt_epu64_mask): Ditto.
11109         (_mm512_mask_cmpneq_epi32_mask): Ditto.
11110         (_mm512_mask_cmpneq_epu32_mask): Ditto.
11111         (_mm512_cmpneq_epu32_mask): Ditto.
11112         (_mm512_mask_cmpneq_epi64_mask): Ditto.
11113         (_mm512_cmpneq_epi64_mask): Ditto.
11114         (_mm512_mask_cmpneq_epu64_mask): Ditto.
11115         (_mm512_cmpneq_epu64_mask): Ditto.
11116         (_mm512_castpd_ps): Ditto.
11117         (_mm512_castpd_si512): Ditto.
11118         (_mm512_castps_pd): Ditto.
11119         (_mm512_castps_si512): Ditto.
11120         (_mm512_castsi512_ps): Ditto.
11121         (_mm512_castsi512_pd): Ditto.
11122         (_mm512_castpd512_pd128): Ditto.
11123         (_mm512_castps512_ps128): Ditto.
11124         (_mm512_castsi512_si128): Ditto.
11125         (_mm512_castpd512_pd256): Ditto.
11126         (_mm512_castps512_ps256): Ditto.
11127         (_mm512_castsi512_si256): Ditto.
11128         (_mm512_castpd128_pd512): Ditto.
11129         (_mm512_castps128_ps512): Ditto.
11130         (_mm512_castsi128_si512): Ditto.
11131         (_mm512_castpd256_pd512): Ditto.
11132         (_mm512_castps256_ps512): Ditto.
11133         (_mm512_castsi256_si512): Ditto.
11134         (_mm512_cmpeq_epu32_mask): Ditto.
11135         (_mm512_mask_cmpeq_epu32_mask): Ditto.
11136         (_mm512_mask_cmpeq_epu64_mask): Ditto.
11137         (_mm512_cmpeq_epu64_mask): Ditto.
11138         (_mm512_cmpgt_epu32_mask): Ditto.
11139         (_mm512_mask_cmpgt_epu32_mask): Ditto.
11140         (_mm512_mask_cmpgt_epu64_mask): Ditto.
11141         (_mm512_cmpgt_epu64_mask): Ditto.
11142         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
11143         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
11144         * config/i386/i386.c (enum ix86_builtins): Add
11145         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
11146         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
11147         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
11148         (bdesc_args): Add __builtin_ia32_si512_256si,
11149         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
11150         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
11151         __builtin_ia32_pd512_pd.
11152         (ix86_expand_args_builtin): Handle new FTYPEs.
11153         * config/i386/sse.md (castmode): Add 512-bit modes.
11154         (AVX512MODE2P): New.
11155         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
11156         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
11157
11158 2014-08-15  Richard Biener  <rguenther@suse.de>
11159
11160         * fold-const.c (tree_swap_operands_p): Put all constants
11161         last, also strip sign-changing NOPs when considering further
11162         canonicalization.  Canonicalize also when optimizing for size.
11163
11164 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11165
11166         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
11167         one_match > zero_match case to just before simple_sequence.
11168
11169 2014-08-15  Richard Biener  <rguenther@suse.de>
11170
11171         * data-streamer.h (streamer_string_index, string_for_index):
11172         Remove.
11173         * data-streamer-out.c (streamer_string_index): Make static.
11174         * data-streamer-in.c (string_for_index): Likewise.
11175         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
11176         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
11177
11178 2014-08-15  Richard Biener  <rguenther@suse.de>
11179
11180         PR tree-optimization/62031
11181         * tree-data-ref.c (dr_analyze_indices): Do not set
11182         DR_UNCONSTRAINED_BASE.
11183         (dr_may_alias_p): All indirect accesses have to go the
11184         formerly DR_UNCONSTRAINED_BASE path.
11185         * tree-data-ref.h (struct indices): Remove
11186         unconstrained_base member.
11187         (DR_UNCONSTRAINED_BASE): Remove.
11188
11189 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
11190
11191         PR middle-end/62092
11192         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
11193         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
11194         in OMP_CLAUSE_MAP in some outer target region.
11195
11196 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
11197
11198         * tree-ssa-loop-ivopts.c (ivopts_data): New field
11199         name_expansion_cache.
11200         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
11201         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
11202         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
11203         (difference_cannot_overflow_p): New parameter.  Use affine
11204         expansion for equality check.
11205         (iv_elimination_compare_lt): Pass new argument.
11206
11207 2014-08-14  DJ Delorie  <dj@redhat.com>
11208
11209         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
11210         variables to the accumulator.
11211
11212         * config/rl78/predicates.md (rl78_near_mem_operand): New.
11213         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
11214         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
11215         with far-far moves.
11216
11217         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
11218         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
11219         (umulqihi3_virt): Likewise.
11220         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
11221         (umulqihi3_real): Likewise.
11222
11223         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
11224
11225 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
11226
11227         PR tree-optimization/62091
11228         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
11229         function_entry_reached.
11230         (walk_aliased_vdefs): Clear it here.
11231         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
11232
11233 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
11234
11235         * ipa-utils.h (compare_virtual_tables): Declare.
11236         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
11237
11238 2014-08-14  Marek Polacek  <polacek@redhat.com>
11239
11240         DR 458
11241         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
11242         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
11243
11244 2014-08-14  Tom de Vries  <tom@codesourcery.com>
11245
11246         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
11247
11248 2014-08-14  Tom de Vries  <tom@codesourcery.com>
11249
11250         PR rtl-optimization/62004
11251         PR rtl-optimization/62030
11252         * ifcvt.c (rtx_interchangeable_p): New function.
11253         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
11254         * emit-rtl.h (mem_attrs_eq_p): Declare.
11255
11256 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
11257
11258         * graphite-scop-detection.c:
11259         Add inclusion of cp-tree.h.
11260         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
11261         in case they are pointers to object types
11262
11263 2014-08-14  Richard Biener  <rguenther@suse.de>
11264
11265         * BASE-VER: Change to 5.0.0
11266
11267 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11268             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11269             Anna Tikhonova  <anna.tikhonova@intel.com>
11270             Ilya Tocar  <ilya.tocar@intel.com>
11271             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11272             Ilya Verbin  <ilya.verbin@intel.com>
11273             Kirill Yukhin  <kirill.yukhin@intel.com>
11274             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11275
11276         * config/i386/sse.md (define_mode_attr avx512): New.
11277         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
11278         V4DI modes.
11279         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
11280         (define_mode_attr ssse3_avx2): Ditto.
11281         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
11282         (define_mode_attr avx2_avx512bw): New.
11283         (define_mode_attr ssedoublemodelower): New.
11284         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
11285         V32HI, V64QI modes.
11286         (define_mode_attr ssebytemode): Allow V8DI modes.
11287         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
11288         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
11289         (define_mode_attr ssePSmode2): New.
11290         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
11291         V16HI, V32HI modes.
11292         (define_mode_attr dbpsadbwmode): New.
11293         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
11294         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
11295         (vi8_sse4_1_avx2_avx512): New.
11296         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
11297         mode attribute.
11298         (define_mode_attr blendbits): Move before its immediate use.
11299
11300 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11301             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11302             Anna Tikhonova  <anna.tikhonova@intel.com>
11303             Ilya Tocar  <ilya.tocar@intel.com>
11304             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11305             Ilya Verbin  <ilya.verbin@intel.com>
11306             Kirill Yukhin  <kirill.yukhin@intel.com>
11307             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11308
11309         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
11310         * config/i386/subst.md
11311         (define_mode_iterator SUBST_V): Update.
11312         (define_mode_iterator SUBST_A): Ditto.
11313         (define_subst_attr "mask_operand7"): New.
11314         (define_subst_attr "mask_operand10"): New.
11315         (define_subst_attr "mask_operand_arg34") : New.
11316         (define_subst_attr "mask_expand_op3"): New.
11317         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
11318         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
11319         (define_subst_attr "mask_avx512vl_condition"): New.
11320         (define_subst_attr "round_mask_operand4"): Ditto.
11321         (define_subst_attr "round_mask_scalar_op3"): Delete.
11322         (define_subst_attr "round_mask_op4"): New.
11323         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
11324         V16SImode.
11325         (define_subst_attr "round_modev8sf_condition"): New.
11326         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
11327         <MODE>mode.
11328         (define_subst_attr "round_saeonly_mask_operand4"): New.
11329         (define_subst_attr "round_saeonly_mask_op4"): New.
11330         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
11331         V8DImode, V16SImode.
11332         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
11333         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
11334         (define_subst_attr "mask_expand4_args"): New.
11335         (define_subst "mask_expand4"): New.
11336
11337 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11338             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11339             Anna Tikhonova  <anna.tikhonova@intel.com>
11340             Ilya Tocar  <ilya.tocar@intel.com>
11341             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11342             Ilya Verbin  <ilya.verbin@intel.com>
11343             Kirill Yukhin  <kirill.yukhin@intel.com>
11344             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11345
11346         * config/i386/i386.md
11347         (define_attr "isa"): Add avx512bw,noavx512bw.
11348         (define_attr "enabled"): Ditto.
11349         (define_split): Add 32/64-bit mask logic.
11350         (define_insn "*k<logic>qi"): New.
11351         (define_insn "*k<logic>hi"): New.
11352         (define_insn "*anddi_1"): Add mask version.
11353         (define_insn "*andsi_1"): Ditto.
11354         (define_insn "*<code><mode>_1"): Ditto.
11355         (define_insn "*<code>hi_1"): Ditto.
11356         (define_insn "kxnor<mode>"): New.
11357         (define_insn "kunpcksi"): New.
11358         (define_insn "kunpckdi"): New.
11359         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
11360         (define_insn "*one_cmplhi2_1"): Ditto.
11361
11362 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11363             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11364             Anna Tikhonova  <anna.tikhonova@intel.com>
11365             Ilya Tocar  <ilya.tocar@intel.com>
11366             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11367             Ilya Verbin  <ilya.verbin@intel.com>
11368             Kirill Yukhin  <kirill.yukhin@intel.com>
11369             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11370
11371         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
11372         V32HImode.
11373
11374 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11375             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11376             Anna Tikhonova  <anna.tikhonova@intel.com>
11377             Ilya Tocar  <ilya.tocar@intel.com>
11378             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11379             Ilya Verbin  <ilya.verbin@intel.com>
11380             Kirill Yukhin  <kirill.yukhin@intel.com>
11381             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11382
11383         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
11384         registers.
11385         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
11386         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
11387         xmm/ymm16+ when availble.
11388         * config/i386/i386.h
11389         (HARD_REGNO_NREGS): Add mask regs.
11390         (VALID_AVX512F_REG_MODE): Ditto.
11391         (VALID_AVX512F_REG_MODE) : Define.
11392         (VALID_MASK_AVX512BW_MODE): Ditto.
11393         (reg_class) (MASK_REG_P(X)): Define.
11394         * config/i386/i386.md: Do not split long moves with mask register,
11395         use kmovb if avx512bw is availible.
11396         (movdi_internal): Handle mask registers.
11397
11398 2014-08-14  Richard Biener  <rguenther@suse.de>
11399
11400         PR tree-optimization/62081
11401         * tree-ssa-loop.c (pass_fix_loops): New pass.
11402         (pass_tree_loop::gate):  Do not fixup loops here.
11403         * tree-pass.h (make_pass_fix_loops): Declare.
11404         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
11405
11406 2014-08-14  Richard Biener  <rguenther@suse.de>
11407
11408         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
11409         (type_hash_canon): ... this and avoid 2nd lookup for the add.
11410
11411 2014-08-14  Richard Biener  <rguenther@suse.de>
11412
11413         PR tree-optimization/62090
11414         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
11415         (fold_builtin_2): Do not fold sprintf.
11416         (fold_builtin_3): Likewise.
11417         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
11418         moved from builtins.c.
11419         (gimple_fold_builtin): Fold sprintf.
11420
11421 2014-08-14  Richard Biener  <rguenther@suse.de>
11422
11423         PR rtl-optimization/62079
11424         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
11425         run cleanup_cfg.
11426
11427 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
11428
11429         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
11430         current_function_decl.
11431
11432 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
11433
11434         * cgraph.c (cgraph_node::function_symbol): Fix wrong
11435         cgraph_function_node to cgraph_node::function_symbol
11436         refactoring.
11437
11438 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
11439
11440         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
11441         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
11442
11443 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
11444
11445         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
11446         warning.
11447
11448 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
11449
11450         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
11451         generator.
11452
11453 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
11454
11455         PR target/62025
11456         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
11457         any registers that are used in mem_insn.
11458
11459 2014-08-12  Steve Ellcey  <sellcey@mips.com>
11460
11461         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler. 
11462
11463 2014-08-12  Steve Ellcey  <sellcey@mips.com>
11464
11465         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
11466         (MULTILIB_DIRNAMES): Ditto.
11467         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
11468         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
11469         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
11470         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
11471         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
11472         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
11473
11474 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11475
11476         PR target/61413
11477         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
11478         of __ARM_SIZEOF_WCHAR_T.
11479
11480 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11481
11482         PR target/62098
11483         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
11484         Remove unnecessary attributes.
11485
11486 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
11487
11488         * internal-fn.c (init_internal_fns): Fix off-by-one.
11489
11490 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11491             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11492             Anna Tikhonova  <anna.tikhonova@intel.com>
11493             Ilya Tocar  <ilya.tocar@intel.com>
11494             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11495             Ilya Verbin  <ilya.verbin@intel.com>
11496             Kirill Yukhin  <kirill.yukhin@intel.com>
11497             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11498
11499         * config/i386/i386.c (standard_sse_constant_opcode): Use
11500         vpxord/vpternlog if avx512 is availible.
11501
11502 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11503
11504         PR middle-end/62103
11505         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
11506         bitfields, that is when size doesn't match the size of type or the
11507         size of the constructor.
11508
11509 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
11510
11511         * config/rs6000/constraints.md (wh constraint): New constraint,
11512         for FP registers if direct move is available.
11513         (wi constraint): New constraint, for VSX/FP registers that can
11514         handle 64-bit integers.
11515         (wj constraint): New constraint for VSX/FP registers that can
11516         handle 64-bit integers for direct moves.
11517         (wk constraint): New constraint for VSX/FP registers that can
11518         handle 64-bit doubles for direct moves.
11519         (wy constraint): Make documentation match implementation.
11520
11521         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
11522         scalar_in_vmx_p field to simplify tests of whether SFmode or
11523         DFmode can go in the Altivec registers.
11524         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
11525         (rs6000_setup_reg_addr_masks): Likewise.
11526         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
11527         field, and wh/wi/wj/wk constraints.
11528         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
11529         the wh/wi/wj/wk constraints.
11530         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
11531         upper registers, prefer VSX registers unless the operation is a
11532         memory operation with REG+OFFSET addressing.
11533
11534         * config/rs6000/vsx.md (VSr mode attribute): Add support for
11535         DImode.  Change SFmode to use ww constraint instead of d to allow
11536         SF registers in the upper registers.
11537         (VSr2): Likewise.
11538         (VSr3): Likewise.
11539         (VSr5): Fix thinko in comment.
11540         (VSa): New mode attribute that is an alternative to wa, that
11541         returns the VSX register class that a mode can go in, but may not
11542         be the preferred register class.
11543         (VS_64dm): New mode attribute for appropriate register classes for
11544         referencing 64-bit elements of vectors for direct moves and normal
11545         moves.
11546         (VS_64reg): Likewise.
11547         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
11548         register allocator to only registers the data type can handle.
11549         (vsx_le_perm_load_<mode>): Likewise.
11550         (vsx_le_perm_store_<mode>): Likewise.
11551         (vsx_xxpermdi2_le_<mode>): Likewise.
11552         (vsx_xxpermdi4_le_<mode>): Likewise.
11553         (vsx_lxvd2x2_le_<mode>): Likewise.
11554         (vsx_lxvd2x4_le_<mode>): Likewise.
11555         (vsx_stxvd2x2_le_<mode>): Likewise.
11556         (vsx_add<mode>3): Likewise.
11557         (vsx_sub<mode>3): Likewise.
11558         (vsx_mul<mode>3): Likewise.
11559         (vsx_div<mode>3): Likewise.
11560         (vsx_tdiv<mode>3_internal): Likewise.
11561         (vsx_fre<mode>2): Likewise.
11562         (vsx_neg<mode>2): Likewise.
11563         (vsx_abs<mode>2): Likewise.
11564         (vsx_nabs<mode>2): Likewise.
11565         (vsx_smax<mode>3): Likewise.
11566         (vsx_smin<mode>3): Likewise.
11567         (vsx_sqrt<mode>2): Likewise.
11568         (vsx_rsqrte<mode>2): Likewise.
11569         (vsx_tsqrt<mode>2_internal): Likewise.
11570         (vsx_fms<mode>4): Likewise.
11571         (vsx_nfma<mode>4): Likewise.
11572         (vsx_eq<mode>): Likewise.
11573         (vsx_gt<mode>): Likewise.
11574         (vsx_ge<mode>): Likewise.
11575         (vsx_eq<mode>_p): Likewise.
11576         (vsx_gt<mode>_p): Likewise.
11577         (vsx_ge<mode>_p): Likewise.
11578         (vsx_xxsel<mode>): Likewise.
11579         (vsx_xxsel<mode>_uns): Likewise.
11580         (vsx_copysign<mode>3): Likewise.
11581         (vsx_float<VSi><mode>2): Likewise.
11582         (vsx_floatuns<VSi><mode>2): Likewise.
11583         (vsx_fix_trunc<mode><VSi>2): Likewise.
11584         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
11585         (vsx_x<VSv>r<VSs>i): Likewise.
11586         (vsx_x<VSv>r<VSs>ic): Likewise.
11587         (vsx_btrunc<mode>2): Likewise.
11588         (vsx_b2trunc<mode>2): Likewise.
11589         (vsx_floor<mode>2): Likewise.
11590         (vsx_ceil<mode>2): Likewise.
11591         (vsx_<VS_spdp_insn>): Likewise.
11592         (vsx_xscvspdp): Likewise.
11593         (vsx_xvcvspuxds): Likewise.
11594         (vsx_float_fix_<mode>2): Likewise.
11595         (vsx_set_<mode>): Likewise.
11596         (vsx_extract_<mode>_internal1): Likewise.
11597         (vsx_extract_<mode>_internal2): Likewise.
11598         (vsx_extract_<mode>_load): Likewise.
11599         (vsx_extract_<mode>_store): Likewise.
11600         (vsx_splat_<mode>): Likewise.
11601         (vsx_xxspltw_<mode>): Likewise.
11602         (vsx_xxspltw_<mode>_direct): Likewise.
11603         (vsx_xxmrghw_<mode>): Likewise.
11604         (vsx_xxmrglw_<mode>): Likewise.
11605         (vsx_xxsldwi_<mode>): Likewise.
11606         (vsx_xscvdpspn): Tighten constraints to only use register classes
11607         the types use.
11608         (vsx_xscvspdpn): Likewise.
11609         (vsx_xscvdpspn_scalar): Likewise.
11610
11611         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
11612         wj, and wk constraints.
11613         (GPR_REG_CLASS_P): New helper macro for register classes targeting
11614         general purpose registers.
11615
11616         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
11617         direct moves.
11618         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
11619         DImode instead of wm.  Use wk constraint for direct move of DFmode
11620         instead of wm.
11621         (extendsidi2_lfiwax): Likewise.
11622         (lfiwax): Likewise.
11623         (lfiwzx): Likewise.
11624         (movdi_internal64): Likewise.
11625
11626         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
11627         wk constraints. Make the wy constraint documentation match them
11628         implementation.
11629
11630 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
11631
11632         Replacement of isl_int by isl_val
11633         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
11634         (compute_bounds_for_param): use isl_val instead of isl_int
11635         (compute_bounds_for_loop): likewise
11636         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
11637         (build_linearized_memory_access): use isl_val instead of isl_int
11638         (pdr_stride_in_loop): likewise
11639         * graphite-optimize-isl.c:
11640         (getPrevectorMap): use isl_val instead of isl_int
11641         * graphite-poly.c:
11642         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
11643         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
11644         (extern the_isl_ctx): declare
11645         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
11646         (extract_affine_gmp): likewise
11647         (wrap): likewise
11648         (build_loop_iteration_domains): likewise
11649         (add_param_constraints): likewise
11650
11651 2014-08-11  Richard Biener  <rguenther@suse.de>
11652
11653         PR tree-optimization/62075
11654         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
11655         handle uses in patterns.
11656
11657 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11658             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11659             Anna Tikhonova  <anna.tikhonova@intel.com>
11660             Ilya Tocar  <ilya.tocar@intel.com>
11661             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11662             Ilya Verbin  <ilya.verbin@intel.com>
11663             Kirill Yukhin  <kirill.yukhin@intel.com>
11664             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11665
11666         * common/config/i386/i386-common.c
11667         (OPTION_MASK_ISA_AVX512VL_SET): Define.
11668         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
11669         (ix86_handle_option): Handle OPT_mavx512vl.
11670         * config/i386/cpuid.h (bit_AVX512VL): Define.
11671         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
11672         set -mavx512vl accordingly.
11673         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11674         OPTION_MASK_ISA_AVX512VL.
11675         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
11676         (ix86_option_override_internal): Define PTA_AVX512VL, handle
11677         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
11678         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
11679         * config/i386/i386.h (TARGET_AVX512VL): Define.
11680         (TARGET_AVX512VL_P(x)): Ditto.
11681         * config/i386/i386.opt: Add mavx512vl.
11682
11683 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
11684
11685         PR tree-optimization/62073
11686         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
11687         a basic block.
11688
11689 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11690             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11691             Anna Tikhonova  <anna.tikhonova@intel.com>
11692             Ilya Tocar  <ilya.tocar@intel.com>
11693             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11694             Ilya Verbin  <ilya.verbin@intel.com>
11695             Kirill Yukhin  <kirill.yukhin@intel.com>
11696             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11697
11698         * common/config/i386/i386-common.c
11699         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
11700         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
11701         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
11702         (ix86_handle_option): Handle OPT_mavx512bw.
11703         * config/i386/cpuid.h (bit_AVX512BW): Define.
11704         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
11705         set -mavx512bw accordingly.
11706         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11707         OPTION_MASK_ISA_AVX512BW.
11708         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
11709         (ix86_option_override_internal): Define PTA_AVX512BW, handle
11710         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
11711         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
11712         * config/i386/i386.h (TARGET_AVX512BW): Define.
11713         (TARGET_AVX512BW_P(x)): Ditto.
11714         * config/i386/i386.opt: Add mavx512bw.
11715
11716 2014-08-11  Richard Biener  <rguenther@suse.de>
11717
11718         PR tree-optimization/62070
11719         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
11720         Remove SSA checking.
11721
11722 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
11723
11724         * asan.c (asan_check_flags): New enum.
11725         (build_check_stmt_with_calls): Removed function.
11726         (build_check_stmt): Split inlining logic to
11727         asan_expand_check_ifn.
11728         (instrument_derefs): Rename parameter.
11729         (instrument_mem_region_access): Rename parameter.
11730         (instrument_strlen_call): Likewise.
11731         (asan_expand_check_ifn): New function.
11732         (asan_instrument): Remove old code.
11733         (pass_sanopt::execute): Change handling of
11734         asan-instrumentation-with-call-threshold.
11735         (asan_clear_shadow): Fix formatting.
11736         (asan_function_start): Likewise.
11737         (asan_emit_stack_protection): Likewise.
11738         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
11739         Update description.
11740         * internal-fn.c (expand_ASAN_CHECK): New function.
11741         * internal-fn.def (ASAN_CHECK): New internal function.
11742         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
11743         Update description.
11744         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
11745         * tree.c: Small comment fix.
11746
11747 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
11748
11749         * gimple.c (gimple_call_fnspec): Support internal functions.
11750         (gimple_call_return_flags): Use const.
11751         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
11752         * internal-fn.def: Add fnspec information.
11753         * internal-fn.h (internal_fn_fnspec): New function.
11754         (init_internal_fns): Declare new function.
11755         * internal-fn.c (internal_fn_fnspec_array): New global variable.
11756         (init_internal_fns): New function.
11757         * tree-core.h: Update macro call.
11758         * tree.c (build_common_builtin_nodes): Initialize internal fns.
11759
11760 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
11761
11762         * lto-streamer.h (struct output_block::symbol): Change from
11763         struct symtab_node to plain symtab_node.
11764         (referenced_from_this_partition_p): Change first parameter
11765         from struct symtab_node to plain symtab_node.
11766
11767 2014-08-10  Marek Polacek  <polacek@redhat.com>
11768
11769         PR c/51849
11770         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
11771
11772 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
11773
11774         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
11775         DECL correctly; do not give up on types in static storage.
11776
11777 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
11778
11779         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
11780
11781 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
11782
11783         * graphite-isl-ast-to-gimple.c:
11784         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
11785
11786         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
11787
11788 2014-08-08  Guozhi Wei  <carrot@google.com>
11789
11790         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
11791
11792 2014-08-08  Cary Coutant  <ccoutant@google.com>
11793
11794         * dwarf2out.c (get_skeleton_type_unit): Remove.
11795         (output_skeleton_debug_sections): Remove skeleton type units.
11796         (output_comdat_type_unit): Likewise.
11797         (dwarf2out_finish): Likewise.
11798
11799 2014-08-07  Yi Yang  <ahyangyi@google.com>
11800
11801         * predict.c (expr_expected_value_1): Remove the redundant assignment.
11802
11803 2014-08-08  Richard Biener  <rguenther@suse.de>
11804
11805         * lto-streamer.h (struct lto_input_block): Make it a class
11806         with a constructor.
11807         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
11808         (struct lto_function_header, struct lto_simple_header,
11809         struct lto_simple_header_with_strings,
11810         struct lto_decl_header, struct lto_function_header): Make
11811         a simple inheritance hieararchy.  Remove unused fields.
11812         (struct lto_asm_header): Remove.
11813         * lto-streamer-out.c (produce_asm): Adjust.
11814         (lto_output_toplevel_asms): Likewise.
11815         (produce_asm_for_decls): Likewise.
11816         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
11817         * data-streamer-in.c (string_for_index): Likewise.
11818         * ipa-inline-analysis.c (inline_read_section): Likewise.
11819         * ipa-prop.c (ipa_prop_read_section): Likewise.
11820         (read_replacements_section): Likewise.
11821         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
11822         * lto-section-in.c (lto_create_simple_input_block): Likewise.
11823         (lto_destroy_simple_input_block): Likewise.
11824         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
11825         (lto_input_toplevel_asms): Likewise.
11826
11827 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11828             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11829             Anna Tikhonova  <anna.tikhonova@intel.com>
11830             Ilya Tocar  <ilya.tocar@intel.com>
11831             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11832             Ilya Verbin  <ilya.verbin@intel.com>
11833             Kirill Yukhin  <kirill.yukhin@intel.com>
11834             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11835
11836         * common/config/i386/i386-common.c
11837         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
11838         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
11839         (ix86_handle_option): Handle OPT_mavx512dq.
11840         * config/i386/cpuid.h (bit_AVX512DQ): Define.
11841         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
11842         set -mavx512dq accordingly.
11843         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11844         OPTION_MASK_ISA_AVX512DQ.
11845         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
11846         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
11847         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
11848         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
11849         * config/i386/i386.h (TARGET_AVX512DQ): Define.
11850         (TARGET_AVX512DQ_P(x)): Ditto.
11851         * config/i386/i386.opt: Add mavx512dq.
11852
11853 2014-08-08  Richard Biener  <rguenther@suse.de>
11854
11855         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
11856         target_percent, target_percent_s): Export.
11857         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
11858         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
11859         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
11860         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
11861         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
11862         Move to gimple-fold.c.
11863         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
11864         strcat and strcpy.
11865         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
11866         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
11867         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
11868         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
11869         (rewrite_call_expr_array): Remove.
11870         (fold_builtin_sprintf_chk): Likewise.
11871         (fold_builtin_snprintf_chk): Likewise.
11872         (fold_builtin_varargs): Remove handling of sprintf_chk,
11873         vsprintf_chk, snprintf_chk and vsnprintf_chk.
11874         (gimple_fold_builtin_sprintf_chk): Remove.
11875         (gimple_fold_builtin_snprintf_chk): Likewise.
11876         (gimple_fold_builtin_varargs): Likewise.
11877         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
11878         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
11879         * gimple.c (gimple_seq_add_seq_without_update): New function.
11880         * gimple.h (gimple_seq_add_seq_without_update): Declare.
11881         * gimple-fold.c: Include output.h.
11882         (gsi_replace_with_seq_vops): New function, split out from ...
11883         (gimplify_and_update_call_from_tree): ... here.
11884         (replace_call_with_value): New function.
11885         (replace_call_with_call_and_fold): Likewise.
11886         (var_decl_component_p): Moved from builtins.c.
11887         (gimple_fold_builtin_memory_op): Moved from builtins.c
11888         fold_builtin_memory_op and rewritten to GIMPLE.
11889         (gimple_fold_builtin_memset): Likewise.
11890         (gimple_fold_builtin_strcpy): Likewise.
11891         (gimple_fold_builtin_strncpy): Likewise.
11892         (gimple_fold_builtin_strcat): Likewise.
11893         (gimple_fold_builtin_fputs): Likewise.
11894         (gimple_fold_builtin_memory_chk): Likewise.
11895         (gimple_fold_builtin_stxcpy_chk): Likewise.
11896         (gimple_fold_builtin_stxncpy_chk): Likewise.
11897         (gimple_fold_builtin_snprintf_chk): Likewise.
11898         (gimple_fold_builtin_sprintf_chk): Likewise.
11899         (gimple_fold_builtin_strlen): New function.
11900         (gimple_fold_builtin_with_strlen): New function split out from
11901         gimple_fold_builtin.
11902         (gimple_fold_builtin): Change signature and handle
11903         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
11904         here.  Call gimple_fold_builtin_with_strlen.
11905         (gimple_fold_call): Adjust.
11906
11907 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
11908
11909         * calls.c (precompute_arguments): Check
11910          promoted_for_signed_and_unsigned_p and set the promoted mode.
11911         (promoted_for_signed_and_unsigned_p): New function.
11912         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
11913         and set the promoted mode.
11914         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
11915         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
11916         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
11917
11918
11919 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
11920
11921         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
11922         instead of SUBREG_PROMOTED_UNSIGNED_SET.
11923         (expand_call): Likewise.
11924         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
11925         to get promoted mode.
11926         * combine.c (record_promoted_value): Skip > 0 comparison with
11927         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
11928         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
11929         of SUBREG_PROMOTED_UNSIGNED_P.
11930         (convert_modes): Likewise.
11931         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
11932         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
11933         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
11934         SUBREG_PROMOTED_UNSIGNED_SET.
11935         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
11936         instead of SUBREG_PROMOTED_UNSIGNED_SET.
11937         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
11938         SUBREG_PROMOTED_SET.
11939         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
11940         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
11941         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
11942         of SUBREG_PROMOTED_UNSIGNED_P.
11943         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
11944         (SUBREG_PROMOTED_SET): New define.
11945         (SUBREG_PROMOTED_GET): Likewise.
11946         (SUBREG_PROMOTED_SIGN): Likewise.
11947         (SUBREG_PROMOTED_SIGNED_P): Likewise.
11948         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
11949         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
11950         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
11951         instead of SUBREG_PROMOTED_UNSIGNED_GET.
11952         (nonzero_bits1): Skip > 0 comparison with the results as
11953         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
11954         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
11955         of !SUBREG_PROMOTED_UNSIGNED_P.
11956         * simplify-rtx.c (simplify_unary_operation_1): Use new
11957         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
11958         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
11959         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
11960         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
11961
11962 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
11963
11964         * ipa-devirt.c: Include gimple-pretty-print.h
11965         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
11966         further tests.
11967         (decl_maybe_in_construction_p): Fix conditional on cdtor check
11968         (get_polymorphic_call_info): Fix return value
11969         (type_change_info): New sturcture based on ipa-prop
11970         variant.
11971         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
11972         based on ipa-prop variant.
11973         (extr_type_from_vtbl_ptr_store): New function
11974         based on ipa-prop variant.
11975         (record_known_type): New function.
11976         (check_stmt_for_type_change): New function.
11977         (get_dynamic_type): New function.
11978         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
11979         * tree-ssa-pre.c: ipa-utils.h
11980         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
11981         machinery; sanity check with ipa-prop devirtualization.
11982         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
11983         polymorphic flag.
11984
11985 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
11986
11987         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
11988         * alias.c, cfgexpand.c, cgraphbuild.c,
11989         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
11990         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
11991         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
11992         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
11993         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
11994         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
11995         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
11996         dse.c, except.c, gengtype.c, gimple-expr.c,
11997         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
11998         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
11999         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
12000         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
12001         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
12002         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
12003         pointer-set.h.
12004         * pointer-set.c: Remove file.
12005         * pointer-set.h: Remove file.
12006
12007 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12008
12009         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
12010         * config/arm/types.md (f_sels, f_seld): Delete.
12011
12012 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12013
12014         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
12015         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
12016         (aarch64_movdi_<mode>high): Likewise.
12017         (aarch64_mov<mode>high_di): Likewise.
12018         (aarch64_movdi_<mode>low): Likewise.
12019         (aarch64_mov<mode>low_di): Likewise.
12020         (aarch64_movtilow_tilow): Likewise.
12021         Add comment explaining usage of fp,simd attributes and of
12022         TARGET_FLOAT and TARGET_SIMD.
12023
12024 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
12025             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12026
12027         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
12028         Use MOVN when one of the half-words is 0xffff.
12029
12030 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
12031
12032         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
12033
12034 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
12035
12036         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
12037         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
12038         (rfs_str): String corresponding to RFS_* constants.
12039         (rank_for_schedule_stats_t): New typedef.
12040         (rank_for_schedule_stats): New static variable.
12041         (rfs_result): New static function.
12042         (rank_for_schedule): Track statistics for deciding heuristics.
12043         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
12044         static functions.
12045         (ready_sort): Use them for debug printouts.
12046         (schedule_block): Init statistics state.  Print statistics on
12047         rank_for_schedule decisions.
12048
12049 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
12050
12051         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
12052
12053 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
12054
12055         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
12056         constraint.
12057
12058 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
12059
12060         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
12061         function to not conflict.
12062         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
12063         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
12064         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
12065         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
12066         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
12067         of pointer_map.
12068
12069 2014-08-07  Marek Polacek  <polacek@redhat.com>
12070
12071         * fold-const.c (fold_binary_loc): Add folding of
12072         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
12073
12074 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
12075
12076         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
12077         instead of type size.
12078         (ASM_FINISH_DECLARE_OBJECT): Likewise.
12079
12080 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
12081
12082         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
12083         (*thumb1_movqi_insn): Likewise.
12084         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
12085
12086 2014-08-07  Tom de Vries  <tom@codesourcery.com>
12087
12088         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
12089         (glibc_2_11_or_earlier): Remove effective-target keywords.
12090
12091 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
12092
12093         * config/arm/arm.c (bdesc_2arg): Fix typo.
12094         (arm_atomic_assign_expand_fenv): Remove The default implementation.
12095
12096 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
12097
12098         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
12099
12100 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
12101
12102         PR debug/61923
12103         * haifa-sched.c (advance_one_cycle): Fix dump.
12104         (schedule_block): Don't advance cycle if we are already at the
12105         beginning of the cycle.
12106
12107 2014-08-06  Martin Jambor  <mjambor@suse.cz>
12108
12109         PR ipa/61393
12110         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
12111
12112 2014-08-06  Richard Biener  <rguenther@suse.de>
12113
12114         PR lto/62034
12115         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
12116         SCCs here.
12117         (lto_input_tree): Pop SCCs here.
12118
12119 2014-08-06  Richard Biener  <rguenther@suse.de>
12120
12121         PR tree-optimization/61320
12122         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
12123         handle misaligned loads.
12124
12125 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
12126
12127         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
12128         (aarch64_expand_vec_perm_const): Check for dup before zip.
12129
12130 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12131
12132         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
12133         CONST_INT_P instead of GET_CODE and compare.
12134         (aarch64_select_cc_mode): Likewise.
12135         (aarch64_print_operand): Likewise.
12136         (aarch64_rtx_costs): Likewise.
12137         (aarch64_simd_valid_immediate): Likewise.
12138         (aarch64_simd_check_vect_par_cnst_half): Likewise.
12139         (aarch64_simd_emit_pair_result_insn): Likewise.
12140
12141 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
12142
12143         * gdbhooks.py (find_gcc_source_dir): New helper function.
12144         (class PassNames): New class, locating and parsing passes.def.
12145         (class BreakOnPass): New command "break-on-pass".
12146
12147 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
12148
12149         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
12150         getting olde.
12151
12152 2014-08-05  Richard Biener  <rguenther@suse.de>
12153
12154         PR rtl-optimization/61672
12155         * emit-rtl.h (mem_attrs_eq_p): Declare.
12156         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
12157         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
12158         * cfgcleanup.c (merge_memattrs): Likewise.
12159         Include emit-rtl.h.
12160
12161 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12162
12163         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
12164         rather than singleton vectors.
12165         (vqdmlsls_lane_s32): Likewise.
12166
12167 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12168
12169         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
12170         Use VSDQ_HSI mode iterator.
12171         (aarch64_sqrdmulh_laneq<mode>): Likewise.
12172         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
12173         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
12174         Use BUILTIN_VDQHS macro.
12175         (sqrdmulh_laneq): Likewise.
12176         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
12177         (vqdmlals_laneq_s32): Likewise.
12178         (vqdmlslh_laneq_s16): Likewise.
12179         (vqdmlsls_laneq_s32): Likewise.
12180         (vqdmulhh_laneq_s16): Likewise.
12181         (vqdmulhs_laneq_s32): Likewise.
12182         (vqrdmulhh_laneq_s16): Likewise.
12183         (vqrdmulhs_laneq_s32): Likewise.
12184
12185 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12186
12187         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
12188         (vmuld_laneq_f64): Likewise.
12189         (vmuls_laneq_f32): Likewise.
12190         (vmul_n_f64): Likewise.
12191         (vmuld_lane_f64): Reimplement in C.
12192         (vmuls_lane_f32): Likewise.
12193
12194 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12195
12196         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
12197         to reservation.
12198         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
12199
12200 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12201
12202         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
12203         (rbitsi2): Likewise.
12204         (*arm_rev): Set predicable and predicable_short_it attributes.
12205
12206 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12207
12208         * convert.c (convert_to_integer): Guard transformation to lrint by
12209         -fno-math-errno.
12210
12211 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
12212
12213         * config/aarch64/aarch64-builtins.c
12214         (aarch64_simd_builtin_type_mode): Delete.
12215         (v8qi_UP): Remap to V8QImode.
12216         (v4hi_UP): Remap to V4HImode.
12217         (v2si_UP): Remap to V2SImode.
12218         (v2sf_UP): Remap to V2SFmode.
12219         (v1df_UP): Remap to V1DFmode.
12220         (di_UP): Remap to DImode.
12221         (df_UP): Remap to DFmode.
12222         (v16qi_UP):V16QImode.
12223         (v8hi_UP): Remap to V8HImode.
12224         (v4si_UP): Remap to V4SImode.
12225         (v4sf_UP): Remap to V4SFmode.
12226         (v2di_UP): Remap to V2DImode.
12227         (v2df_UP): Remap to V2DFmode.
12228         (ti_UP): Remap to TImode.
12229         (ei_UP): Remap to EImode.
12230         (oi_UP): Remap to OImode.
12231         (ci_UP): Map to CImode.
12232         (xi_UP): Remap to XImode.
12233         (si_UP): Remap to SImode.
12234         (sf_UP): Remap to SFmode.
12235         (hi_UP): Remap to HImode.
12236         (qi_UP): Remap to QImode.
12237         (aarch64_simd_builtin_datum): Make mode a machine_mode.
12238         (VAR1): Build builtin name.
12239         (aarch64_init_simd_builtins): Remove dead code.
12240
12241 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
12242
12243         * graphite-isl-ast-to-gimple.c:
12244         (set_options): New function.
12245         (scop_to_isl_ast): Add calling of set_options.
12246
12247 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
12248
12249         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
12250         (analyze_iv_to_split_insn): Don't initialize them.
12251         (get_ivts_expr): Removed.
12252         (allocate_basic_variable, insert_base_initialization): Use
12253         SET_SRC instead of *get_ivts_expr.
12254         (split_iv): Use &SET_SRC instead of get_ivts_expr.
12255
12256 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
12257
12258         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
12259         (translate_isl_ast_for_loop): Add checking of the
12260         flag_loop_parallelize_all.
12261         (ast_build_before_for): New function.
12262         (scop_to_isl_ast): Add checking of the
12263         flag_loop_parallelize_all.
12264         * graphite-dependences.c: Move the defenition of the
12265         scop_get_dependences from graphite-optimize-isl.c to this file.
12266         (apply_schedule_on_deps): Add checking of the ux's emptiness.
12267         (carries_deps): Add checking of the x's value.
12268         * graphite-optimize-isl.c: Move the defenition of the
12269         scop_get_dependences to graphite-dependences.c.
12270         * graphite-poly.h: Add declarations of scop_get_dependences
12271         and carries_deps.
12272
12273 2014-08-04  Rohit  <rohitarulraj@freescale.com>
12274
12275         PR target/60102
12276         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
12277         names.
12278         (alt_reg_names): Likewise.
12279         (rs6000_dwarf_register_span): For SPE high registers, replace
12280         dwarf register numbers with GCC hard register numbers.
12281         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
12282         (rs6000_dbx_register_number): For SPE high registers, return dwarf
12283         register number for the corresponding GCC hard register number.
12284         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
12285         newly added GCC hard register numbers for SPE high registers.
12286         (DWARF_FRAME_REGISTERS):  Likewise.
12287         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
12288         (DWARF_FRAME_REGNUM): Likewise.
12289         (FIXED_REGISTERS): Likewise.
12290         (CALL_USED_REGISTERS): Likewise.
12291         (CALL_REALLY_USED_REGISTERS): Likewise.
12292         (REG_ALLOC_ORDER): Likewise.
12293         (enum reg_class): Likewise.
12294         (REG_CLASS_NAMES): Likewise.
12295         (REG_CLASS_CONTENTS): Likewise.
12296         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
12297
12298 2014-08-04  Richard Biener  <rguenther@suse.de>
12299
12300         * gimple-fold.h (gimple_fold_builtin): Remove.
12301         * gimple-fold.c (gimple_fold_builtin): Make static.
12302         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
12303         fold_stmt, not gimple_fold_builtin.
12304
12305 2014-08-04  Martin Liska <mliska@suse.cz>
12306
12307         * cgraph.h (csi_end_p): Removed.
12308         (csi_next): Likewise.
12309         (csi_node): Likewise.
12310         (csi_start): Likewise.
12311         (cgraph_node_in_set_p): Likewise.
12312         (cgraph_node_set_size): Likewise.
12313         (vsi_end_p): Likewise.
12314         (vsi_next): Likewise.
12315         (vsi_node): Likewise.
12316         (vsi_start): Likewise.
12317         (varpool_node_set_size): Likewise.
12318         (cgraph_node_set_nonempty_p): Likewise.
12319         (varpool_node_set_nonempty_p): Likewise.
12320         * cgraphunit.c (cgraph_process_new_functions): vec replaces
12321         cgraph_node_set.
12322         * ipa-inline-transform.c: Likewise.
12323         * ipa-utils.c (cgraph_node_set_new): Removed.
12324         (cgraph_node_set_add): Likewise.
12325         (cgraph_node_set_remove): Likewise.
12326         (cgraph_node_set_find): Likewise.
12327         (dump_cgraph_node_set): Likewise.
12328         (debug_cgraph_node_set): Likewise.
12329         (free_cgraph_node_set): Likewise.
12330         (varpool_node_set_new): Likewise.
12331         (varpool_node_set_add): Likewise.
12332         (varpool_node_set_remove): Likewise.
12333         (varpool_node_set_find): Likewise.
12334         (dump_varpool_node_set): Likewise.
12335         (free_varpool_node_set): Likewise.
12336         (debug_varpool_node_set): Likewise.
12337         * tree-emutls.c (struct tls_var_data):
12338         (emutls_index): Removed.
12339         (emutls_decl): Likewise.
12340         (gen_emutls_addr): Function implementation uses newly added
12341         hash_map<varpool_node *, tls_var_data>.
12342         (clear_access_vars): Likewise.
12343         (create_emultls_var): Likewise.
12344         (ipa_lower_emutls): Likewise.
12345         (reset_access): New function.
12346
12347 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
12348
12349         * config/i386/i386.c (ix86_option_override_internal): Add
12350         PTA_RDRND and PTA_MOVBE for bdver4.
12351
12352 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12353             James Greenhalgh  <james.greenhalgh@arm.com>
12354
12355         * doc/md.texi (clrsb): Document.
12356         (clz): Change reference to x into operand 1.
12357         (ctz): Likewise.
12358         (popcount): Likewise.
12359
12360 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12361
12362         PR target/61713
12363         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
12364         move to subtarget in serial version if result is ignored.
12365
12366 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12367             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12368
12369         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
12370         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
12371         (sched_analyze_insn): Update use of try_group_insn to
12372         sched_macro_fuse_insns.
12373         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
12374         arguments that are not conditional jumps.
12375
12376 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
12377
12378         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
12379         family information. Handle BTVER2 cpu with cpuid family value.
12380
12381 2014-08-04  Tom de Vries  <tom@codesourcery.com>
12382
12383         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
12384         (glibc_2_11_or_earlier): Document effective-target keywords.
12385
12386 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
12387
12388         * ipa-devirt.c (odr_type_warn_count): Add type.
12389         (possible_polymorphic_call_targets): Set it.
12390         (ipa_devirt): Use it.
12391
12392 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
12393
12394         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
12395         Document.
12396         * ipa-devirt.c: Include hash-map.h
12397         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
12398         (clear_speculation): Break out of ...
12399         (get_class_context): ... here; speed up handling obviously useless
12400         speculations.
12401         (odr_type_warn_count, decl_warn_count): New structures.
12402         (final_warning_record): New structure.
12403         (final_warning_records): New static variable.
12404         (possible_polymorphic_call_targets): Cleanup handling of
12405         speculative info; do not build speculation when user do not care;
12406         record info about warnings when asked for.
12407         (add_decl_warning): New function.
12408         (type_warning_cmp): New function.
12409         (decl_warning_cmp): New function.
12410         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
12411         (gate): Enable pass when warnings are requested.
12412         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
12413         options.
12414
12415 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
12416
12417         * hash-map.h (default_hashmap_traits::mark_key_deleted):
12418         Fix cast.
12419         (hash_map::remove): New method.
12420         (hash_map::traverse): New method.
12421         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
12422         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
12423         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
12424         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
12425         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
12426         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
12427         pointer_map.
12428
12429 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
12430
12431         * hash-set.h: new File.
12432         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
12433         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
12434         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
12435         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
12436         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
12437         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
12438         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
12439         varpool.c: Use hash_set instead of pointer_set.
12440
12441 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
12442
12443         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
12444
12445 2014-08-01  Jiong Wang <jiong.wang@arm.com>
12446
12447         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
12448         for frame access when strict_p is false.
12449
12450 2014-08-01  Renlin Li <renlin.li@arm.com>
12451 2014-08-01  Jiong Wang <jiong.wang@arm.com>
12452
12453         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
12454         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
12455         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
12456         Declaration.
12457         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
12458         predicate.
12459         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
12460         aarch64_mem_pair_offset.
12461
12462 2014-08-01  Jiong Wang <jiong.wang@arm.com>
12463
12464         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
12465         offset.
12466         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
12467         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
12468
12469 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
12470
12471         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
12472
12473 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
12474
12475         PR regression/61510
12476         * cgraphunit.c (analyze_functions): Use get_create rather than get
12477         for decls which are clones of abstract functions.
12478
12479 2014-08-01  Martin Liska  <mliska@suse.cz>
12480
12481         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
12482         * ipa-prop.h (count_formal_params): Global function created from static.
12483         * ipa-prop.c (count_formal_params): Likewise.
12484         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
12485         profiles for semantically equivalent functions.
12486         * passes.c (do_per_function): If we load body of a function
12487         during WPA, this condition should behave same.
12488         * varpool.c (ctor_for_folding): More tolerant assert for variable
12489         aliases created during WPA.
12490
12491 2014-08-01  Martin Liska  <mliska@suse.cz>
12492
12493         * doc/invoke.texi (Options That Control Optimization): Documentation
12494         for -foptimize-strlen introduced. Optimization levels default options
12495         fixed.
12496
12497 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
12498
12499         * opts.c (common_handle_option): Handle -fsanitize=alignment.
12500         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
12501         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
12502         type to bool.
12503         * stor-layout.h (min_align_of_type): New prototype.
12504         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
12505         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
12506         check.
12507         * ubsan.c: Include builtins.h.
12508         (ubsan_expand_bounds_ifn): Change return type to bool,
12509         always return true.
12510         (ubsan_expand_null_ifn): Change return type to bool, change
12511         argument to gimple_stmt_iterator *.  Handle both null and alignment
12512         sanitization, take type from ckind argument's type rather than
12513         first argument.
12514         (instrument_member_call): Removed.
12515         (instrument_mem_ref): Remove t argument, add mem and base arguments.
12516         Handle both null and alignment sanitization, don't say whole
12517         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
12518         call instead of 2 argument.
12519         (instrument_null): Adjust instrument_mem_ref caller.  Don't
12520         instrument calls here.
12521         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
12522         like SANITIZE_NULL.
12523         * stor-layout.c (min_align_of_type): New function.
12524         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
12525         Or it into SANITIZE_UNDEFINED.
12526         * doc/invoke.texi (-fsanitize=alignment): Document.
12527
12528 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12529
12530         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
12531
12532 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12533
12534         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
12535         inchash.
12536         (vn_reference_compute_hash): Dito.
12537         (vn_nary_op_compute_hash): Dito.
12538         (vn_phi_compute_hash): Dito.
12539         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
12540
12541 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12542
12543         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
12544         Rename to inchash:add_expr_commutative. Convert to inchash.
12545         (iterative_hash_hashable_expr): Rename to
12546         inchash:add_hashable_expr. Convert to inchash.
12547         (avail_expr_hash): Dito.
12548
12549 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12550
12551         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
12552         Convert to inchash.
12553
12554 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12555
12556         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
12557
12558 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12559
12560         * Makefile.in (OBJS): Add rtlhash.o
12561         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
12562         (loc_checksum): Dito.
12563         (loc_checksum_ordered): Dito.
12564         (hash_loc_operands): Dito.
12565         (hash_locs): Dito.
12566         (hash_loc_list): Dito.
12567         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
12568         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
12569         * rtlhash.c: New file.
12570         * rtlhash.h: New file.
12571
12572 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12573
12574         * inchash.h (inchash): Change inchash class to namespace.
12575         (class hash): ... Rename from inchash.
12576         (add_object): Move from macro to class template.
12577         * lto-streamer-out.c (hash_tree): Change inchash
12578         to inchash::hash.
12579         * tree.c (build_type_attribute_qual_variant): Dito.
12580         (type_hash_list): Dito.
12581         (attribute_hash_list): Dito.
12582         (iterative_hstate_expr): Rename to inchash::add_expr
12583         (build_range_type_1): Change inchash to inchash::hash
12584         and use hash::add_expr.
12585         (build_array_type_1): Dito.
12586         (build_function_type): Dito
12587         (build_method_type_directly): Dito.
12588         (build_offset_type): Dito.
12589         (build_complex_type): Dito.
12590         (make_vector_type): Dito.
12591         * tree.h (iterative_hash_expr): Dito.
12592
12593 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
12594
12595         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
12596
12597 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
12598
12599         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
12600         correct alphabetical position.
12601         (vpaddd_f64): Rewrite using builtins.
12602         (vpaddd_s64): Move to correct alphabetical position.
12603         (vpaddd_u64): New.
12604
12605 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
12606
12607         PR target/61844
12608         * config/sh/sh.c (sh_legitimate_address_p,
12609         sh_legitimize_reload_address): Handle reg+reg address modes when
12610         ALLOW_INDEXED_ADDRESS is false.
12611         * config/sh/predicates.md (general_movsrc_operand,
12612         general_movdst_operand): Likewise.
12613
12614 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
12615
12616         * config/aarch64/aarch64-builtins.c
12617         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
12618         BYTES_BIG_ENDIAN.
12619
12620 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
12621
12622         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
12623         the generated mask based on BYTES_BIG_ENDIAN.
12624         (aarch64_simd_check_vect_par_cnst_half): New.
12625         * config/aarch64/aarch64-protos.h
12626         (aarch64_simd_check_vect_par_cnst_half): New.
12627         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
12628         the check out to aarch64_simd_check_vect_par_cnst_half.
12629         (vect_par_cnst_lo_half): Likewise.
12630         * config/aarch64/aarch64-simd.md
12631         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
12632         (move_hi_quad_<mode>): Always generate a low mask.
12633
12634 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
12635
12636         * doc/invoke.texi (AVR Options): Add documentation about
12637         __AVR_DEVICE_NAME__ built-in macro.
12638
12639 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
12640
12641         PR target/61948
12642         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
12643         constraints are satisfied.
12644         (<shift>di3_neon): Likewise.
12645
12646 2014-07-31  Richard Biener  <rguenther@suse.de>
12647
12648         PR tree-optimization/61964
12649         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
12650         by structural equality.
12651
12652 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
12653
12654         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
12655         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
12656         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
12657         New enums.
12658         * gcc.c (sanitize_spec_function): Support new option.
12659         (SANITIZER_SPEC): Remove now redundant check.
12660         * opts.c (common_handle_option): Support new option.
12661         (finish_options): Check for incompatibilities.
12662         * toplev.c (process_options): Split userspace-specific checks.
12663
12664 2014-07-31  Richard Biener  <rguenther@suse.de>
12665
12666         * lto-streamer.h (struct output_block): Remove global.
12667         (struct data_in): Remove labels, num_named_labels and
12668         num_unnamed_labels.
12669         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
12670         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
12671
12672 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
12673
12674         PR c++/60517
12675         * common.opt (-Wreturn-local-addr): Moved from c.opt.
12676         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
12677         (isolate_path): New argument to avoid inserting a trap.
12678         (find_implicit_erroneous_behaviour): Handle returning the address
12679         of a local variable.
12680         (find_explicit_erroneous_behaviour): Likewise.
12681
12682 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
12683
12684         PR lto/61868
12685         * toplev.c (init_random_seed): Move piece of code never called to
12686         set_random_seed.
12687         (set_random_seed): see above.
12688
12689 2014-07-31  Tom de Vries  <tom@codesourcery.com>
12690
12691         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
12692
12693 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
12694
12695         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
12696         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
12697
12698 2014-07-31  Richard Biener  <rguenther@suse.de>
12699
12700         * data-streamer.h (streamer_write_data_stream): Declare here,
12701         renamed from ...
12702         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
12703         * lto-cgraph.c (lto_output_node): Adjust.
12704         (lto_output_varpool_node): Likewise.
12705         * data-streamer-out.c (streamer_string_index): Likewise.
12706         (streamer_write_data_stream, lto_append_block): Move from ...
12707         * lto-section-out.c (lto_output_data_stream,
12708         lto_append_block): ... here.
12709
12710 2014-07-30  Mike Stump  <mikestump@comcast.net>
12711
12712         * configure.ac: Also check for popen.
12713         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
12714         * configure: Regenerate.
12715         * config.in:  Regenerate.
12716
12717 2014-07-30  Martin Jambor  <mjambor@suse.cz>
12718
12719         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
12720         parameter to gimple.
12721
12722 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12723
12724         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
12725         address as second parameter to __tpf_eh_return routine.
12726
12727 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
12728
12729         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
12730         Thumb2.
12731
12732 2014-07-30  Tom Tromey  <tromey@redhat.com>
12733
12734         PR c/59855
12735         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
12736         * doc/extend.texi (Type Attributes): Document designated_init
12737         attribute.
12738
12739 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
12740
12741         * graphite-isl-ast-to-gimple.c:
12742         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
12743         (gcc_expression_from_isl_expression): Pass type to
12744         gcc_expression_from_isl_ast_expr_id.
12745
12746 2014-07-30  Richard Biener  <rguenther@suse.de>
12747
12748         * lto-streamer.h (lto_write_data): New function.
12749         * langhooks.c (lhd_append_data): Do not free block.
12750         * lto-section-out.c (lto_write_data): New function writing
12751         raw data to the current section.
12752         (lto_write_stream): Adjust for langhook semantic change.
12753         (lto_destroy_simple_output_block): Write header directly.
12754         * lto-opts.c (lto_write_options): Write options directly.
12755         * lto-streamer-out.c (produce_asm): Write heaeder directly.
12756         (lto_output_toplevel_asms): Likewise.
12757         (copy_function_or_variable): Copy data directly.
12758         (write_global_references): Output index table directly.
12759         (lto_output_decl_state_refs): Likewise.
12760         (write_symbol): Write data directly.
12761         (produce_symtab): Adjust.
12762         (produce_asm_for_decls): Output header and refs directly.
12763
12764 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
12765
12766         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
12767         to speculative_targets
12768         (get_class_context): Fix handling of contextes without outer type;
12769         avoid matching non-polymorphic types in LTO.
12770         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
12771         parameter to speculative_targetsp; handle speculation.
12772         (dump_possible_polymorphic_call_targets): Update dumping.
12773
12774 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
12775
12776         * common.opt (Wodr): Enable by default.
12777
12778 2014-07-29  Olivier Hainque  <hainque@adacore.com>
12779
12780         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
12781
12782 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
12783
12784         PR bootstrap/61914
12785         * gengtype.c (strtoken): New function.
12786         (create_user_defined_type): Replace strtok with strtoken.
12787
12788 2014-07-29  Nathan Sidwell  <nathan@acm.org>
12789
12790         * gcov-io.c (gcov_var): Make hidden.
12791         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
12792         (gcov_do_dump): Declare.
12793         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
12794
12795 2014-07-29  Martin Jambor  <mjambor@suse.cz>
12796
12797         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
12798         parameter to gimple.
12799         (sra_modify_assign): Likewise.
12800
12801 2014-07-29  Richard Biener  <rguenther@suse.de>
12802
12803         PR middle-end/52478
12804         * expr.c (expand_expr_real_2): Revert last change.
12805
12806 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
12807
12808         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
12809         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
12810         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
12811         call.
12812         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
12813         (contains_type_p): Forward declare.
12814         (polymorphic_call_target_hasher::hash): Hash speculative info.
12815         (polymorphic_call_target_hasher::equal): Compare speculative info.
12816         (get_class_context): Handle speuclation.
12817         (contains_type_p): Update.
12818         (get_polymorphic_call_info_for_decl): Update.
12819         (walk_ssa_copies): Break out from ...
12820         (get_polymorphic_call_info): ... here; set speculative context
12821         before giving up.
12822         * ipa-prop.c (ipa_write_indirect_edge_info,
12823         ipa_read_indirect_edge_info): Stream speculative context.
12824         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
12825         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
12826         SPECULATIVE_MAYBE_DERIVED_TYPE).
12827         (possible_polymorphic_call_targets overriders): Update.
12828         (dump_possible_polymorphic_call_targets overriders): Update.
12829         (dump_possible_polymorphic_call_target_p overriders): Update.
12830
12831 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
12832
12833         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
12834         ipa-devirt path; fix thinko there.
12835
12836 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
12837
12838         * config/i386/i386.c (ix86_return_in_memory): Replace one
12839         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
12840
12841 2014-07-28  Marek Polacek  <polacek@redhat.com>
12842
12843         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
12844
12845 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
12846
12847         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
12848         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
12849         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
12850         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
12851         (USE_LD_AS_NEEDED): Likewise.
12852         (ASM_APP_ON): Likewise.
12853         (ASM_APP_OFF): Likewise.
12854         (TARGET_POSIX_IO): Likewise.
12855         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
12856         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
12857         (USE_LD_AS_NEEDED): Likewise.
12858         (ASM_APP_ON): Likewise.
12859         (ASM_APP_OFF): Likewise.
12860         (TARGET_POSIX_IO): Likewise.
12861
12862 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
12863
12864         PR middle-end/61734
12865         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
12866         operators other than the equality operators.
12867
12868 2014-07-28  Richard Biener  <rguenther@suse.de>
12869
12870         PR middle-end/52478
12871         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
12872         sure to register SImode ones, not only >= word_mode ones.
12873         * expr.c (expand_expr_real_2): When expanding -ftrapv
12874         binops do not use OPTAB_LIB_WIDEN.
12875
12876 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
12877
12878         PR middle-end/61919
12879         * tree-outof-ssa.c (insert_partition_copy_on_edge)
12880         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
12881         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
12882         inserting them in the insn stream.
12883
12884 2014-07-28  Marek Polacek  <polacek@redhat.com>
12885
12886         PR middle-end/61913
12887         * common.opt (Wodr): Add Var.
12888
12889 2014-07-28  Richard Biener  <rguenther@suse.de>
12890
12891         PR tree-optimization/61921
12892         * tree-ssa-structalias.c (create_variable_info_for_1): Check
12893         if there is a varpool node before dereferencing it.
12894
12895 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
12896
12897         * graphite-sese-to-poly.c:
12898         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
12899         id of the pbb), which contains pointer to the pbb1.
12900
12901         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
12902
12903 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
12904
12905         * graphite-isl-ast-to-gimple.c:
12906         (graphite_create_new_guard): New function.
12907         (translate_isl_ast_node_if): New function.
12908         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
12909
12910         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
12911
12912 2014-07-27  Anthony Green  <green@moxielogic.com>
12913
12914         * config.gcc: Add moxie-*-moxiebox* configuration.
12915         * config/moxie/moxiebox.h: New file.
12916
12917 2014-07-26  Andrew Pinski  <apinski@cavium.com>
12918
12919         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
12920         from the read only register.
12921
12922 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
12923
12924         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
12925         as the allocation class if it isn't likely to be spilled.
12926
12927 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
12928
12929         * rtl.h (tls_referenced_p): Declare.
12930         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
12931         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
12932         (mips_cannot_force_const_mem): Use tls_referenced_p.
12933         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
12934         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
12935         instead of pa_tls_referenced_p.
12936         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
12937         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
12938         (pa_legitimate_constant_p): Likewise.
12939         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
12940         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
12941         (rs6000_cannot_force_const_mem, rs6000_emit_move)
12942         (rs6000_address_for_altivec): Use tls_referenced_p instead of
12943         rs6000_tls_referenced_p.
12944         (rs6000_tls_symbol_ref_1): Delete.
12945
12946 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
12947
12948         PR target/44551
12949         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
12950         Optimize inverse of a VEC_CONCAT.
12951
12952 2014-07-25  Xinliang David Li  <davidxl@google.com>
12953
12954         * params.def: New parameter.
12955         * coverage.c (get_coverage_counts): Check new flag.
12956         (coverage_compute_profile_id): Check new flag.
12957         (coverage_begin_function): Check new flag.
12958         (coverage_end_function): Check new flag.
12959         * value-prof.c (coverage_node_map_initialized_p): New function.
12960         (init_node_map): Populate map with all functions.
12961         * doc/invoke.texi: Document new parameter.
12962
12963 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
12964             Richard Biener <rguenther@suse.de>
12965
12966         * lto-streamer-out.c (struct sccs): Turn to ...
12967         (class DFS): ... this one; refactor the DFS walk so it can
12968         be re-done on per-SCC basis.
12969         (DFS::DFS): New constructor.
12970         (DFS::~DFS): New destructor.
12971         (hash_tree): Add new MAP argument holding in-SCC hash values;
12972         remove POINTER_TYPE hashing hack.
12973         (scc_entry_compare): Rename to ...
12974         (DFS::scc_entry_compare): ... this one.
12975         (hash_scc): Rename to ...
12976         (DFS::hash_scc): ... this one; pass output_block instead
12977         of streamer_cache; work harder to get unique and stable SCC
12978         hashes.
12979         (DFS_write_tree): Rename to ...
12980         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
12981         (lto_output_tree): Update.
12982
12983 2014-07-25  Andi Kleen  <ak@linux.intel.com>
12984
12985         * lto-streamer-out.c (hash_tree): Convert to inchash.
12986
12987 2014-07-25  Andi Kleen  <ak@linux.intel.com>
12988
12989         * tree.c (build_type_attribute_qual_variant): Use inchash.
12990         (type_hash_list): Dito.
12991         (attribute_hash_list): Dito
12992         (iterative_hstate_expr): Dito.
12993         (iterative_hash_expr): Dito.
12994         (build_range_type_1): Dito.
12995         (build_array_type_1): Dito.
12996         (build_function_type): Dito.
12997         (build_method_type_directly): Dito.
12998         (build_offset_type): Dito.
12999         (build_complex_type): Dito.
13000         (make_vector_type): Dito.
13001         * tree.h (iterative_hash_expr): Add compat wrapper.
13002         (iterative_hstate_expr): Add.
13003
13004 2014-07-25  Andi Kleen  <ak@linux.intel.com>
13005
13006         * Makefile.in (OBJS): Add inchash.o.
13007         (PLUGIN_HEADERS): Add inchash.h.
13008         * ipa-devirt.c: Include inchash.h.
13009         * lto-streamer-out.c: Dito.
13010         * tree-ssa-dom.c: Dito.
13011         * tree-ssa-pre.c: Dito.
13012         * tree-ssa-sccvn.c: Dito.
13013         * tree-ssa-tail-merge.c: Dito.
13014         * asan.c: Dito.
13015         * tree.c (iterative_hash_hashval_t): Move to ...
13016         (iterative_hash_host_wide_int): Move to ...
13017         * inchash.c: Here. New file.
13018         * tree.h (iterative_hash_hashval_t): Move to ...
13019         (iterative_hash_host_wide_int): Move to ...
13020         * inchash.h: Here. New file.
13021
13022 2014-07-25  Richard Biener  <rguenther@suse.de>
13023
13024         PR middle-end/61762
13025         PR middle-end/61894
13026         * fold-const.c (native_encode_int): Add and handle offset
13027         parameter to do partial encodings of expr.
13028         (native_encode_fixed): Likewise.
13029         (native_encode_real): Likewise.
13030         (native_encode_complex): Likewise.
13031         (native_encode_vector): Likewise.
13032         (native_encode_string): Likewise.
13033         (native_encode_expr): Likewise.
13034         * fold-const.c (native_encode_expr): Add offset parameter
13035         defaulting to -1.
13036         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
13037         (fold_ctor_reference): Handle all reads from tcc_constant
13038         ctors.
13039
13040 2014-07-25  Richard Biener  <rguenther@suse.de>
13041
13042         * tree-inline.c (estimate_move_cost): Mark speed_p argument
13043         as possibly unused.
13044
13045 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
13046
13047         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
13048
13049 2014-07-24  Kyle McMartin  <kyle@redhat.com>
13050
13051         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
13052
13053 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13054
13055         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
13056         Add prototype.
13057         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
13058         function.
13059         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
13060         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
13061         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
13062
13063 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13064
13065         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
13066         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
13067         aggregate types.  Instead, *all* aggregate types, except for single-
13068         element or homogeneous float/vector aggregates, are quadword-aligned
13069         if required by their type alignment.  Issue -Wpsabi note when a type
13070         is now treated differently than before.
13071
13072 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13073
13074         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
13075         does not fit fully into floating-point registers, and there is still
13076         space in the register parameter area, use GPRs to pass those parts
13077         of the argument.  Issue -Wpsabi note if any parameter is now treated
13078         differently than before.
13079         (rs6000_arg_partial_bytes): Update.
13080
13081 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
13082
13083         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
13084
13085 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
13086
13087         * rtl.h (target_rtl): Remove lang_dependent_initialized.
13088         * toplev.c (initialize_rtl): Don't use it.  Move previously
13089         "language-dependent" calls to...
13090         (backend_init): ...here.
13091         (lang_dependent_init_target): Don't set lang_dependent_initialized.
13092         Assert that RTL initialization hasn't happend yet.
13093
13094 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
13095
13096         PR rtl-optimization/61629
13097         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
13098         they have already been initialized.
13099
13100 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
13101
13102         PR middle-end/61268
13103         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
13104         DECL_INCOMING_RTL and entry_parm.
13105         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
13106         * calls.c (load_register_parameters): Likewise argument values.
13107         (emit_library_call_value_1, store_one_arg): Likewise argument
13108         save areas.
13109         * config/i386/i386.c (assign_386_stack_local): Likewise the local
13110         stack slot.
13111         * explow.c (validize_mem): Modify the argument in-place.
13112
13113 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13114
13115         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
13116         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
13117
13118 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13119
13120         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
13121         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
13122
13123 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13124
13125         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
13126         (aarch64_save_callee_saves): New parameter "skip_wb".
13127         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
13128
13129 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13130
13131         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
13132         "wb_candidate2".
13133         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
13134
13135 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
13136
13137         * graphite-isl-ast-to-gimple.c:
13138         (graphite_create_new_loop): Add calling of isl_id_free to properly
13139         decrement reference counts.
13140
13141         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
13142
13143 2014-07-24  Martin Liska  <mliska@suse.cz>
13144         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
13145         function used.
13146         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
13147         (rs6000_code_end): Likewise.
13148
13149 2014-07-24  Martin Liska  <mliska@suse.cz>
13150
13151         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
13152         symtab_node funtion used.
13153         (rs6000_xcoff_declare_object_name): Likewise.
13154
13155 2014-07-24  Martin Liska  <mliska@suse.cz>
13156
13157         * cgraphunit.c (compile): Correct function used.
13158
13159 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
13160
13161         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
13162         as non-indexable.
13163
13164 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
13165
13166         PR lto/61802
13167         * varasm.c (bss_initializer_p): Handle offlined ctors.
13168         (align_variable, get_variable_align): Likewise.
13169         (make_decl_one_only): Likewise.
13170         (default_binds_local_p_1): Likewise.
13171         (decl_binds_to_current_def_p): Likewise.
13172         (get_variable_section): Get constructor if it is offlined.
13173         (assemble_variable_contents): Sanity check that the caller
13174         streamed in the ctor in LTO.
13175
13176 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
13177
13178         * graphite-isl-ast-to-gimple.c:
13179         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
13180         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
13181         isl_ast_op_pdiv_r to the different case.
13182
13183         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
13184
13185 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13186
13187         PR middle-end/61876
13188         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
13189         when flag_errno_math is on.
13190
13191 2014-07-24  Martin Liska  <mliska@suse.cz>
13192
13193         * cgraph.h (varpool_node):
13194         (availability get_availability (void)):
13195         created from cgraph_variable_initializer_availability
13196         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
13197         created from: cgraph_variable_initializer_availability
13198         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
13199         (void finalize_named_section_flags (void)):
13200         created from varpool_finalize_named_section_flags
13201         (bool assemble_decl (void)): created from varpool_assemble_decl
13202         (void analyze (void)): created from varpool_analyze_node
13203         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
13204         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
13205         (void remove_initializer (void)): created from varpool_remove_initializer
13206         (tree get_constructor (void)): created from varpool_get_constructor
13207         (bool externally_visible_p (void)): created from varpool_externally_visible_p
13208         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
13209         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
13210         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
13211         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
13212         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
13213         (static bool output_variables (void)): created from varpool_output_variables
13214         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
13215         created from varpool_extra_name_alias
13216         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
13217         (static void dump_varpool (FILE *f)): created from dump_varpool
13218         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
13219         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
13220         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
13221         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
13222         (void assemble_aliases (void)): created from assemble_aliases
13223
13224 2014-07-24  Martin Liska  <mliska@suse.cz>
13225
13226         * cgraph.h (symtab_node):
13227         (void register_symbol (void)): created from symtab_register_node
13228         (void remove (void)): created from symtab_remove_node
13229         (void dump (FILE *f)): created from dump_symtab_node
13230         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
13231         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
13232         (struct ipa_ref *add_reference (symtab_node *referred_node,
13233         enum ipa_ref_use use_type)): created from add_reference 
13234         (struct ipa_ref *add_reference (symtab_node *referred_node,
13235         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
13236         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
13237         gimple stmt)): created from maybe_add_reference
13238         (bool semantically_equivalent_p (symtab_node *target)): created from
13239         symtab_semantically_equivalent_p
13240         (void remove_from_same_comdat_group (void)): created from
13241         remove_from_same_comdat_group
13242         (void add_to_same_comdat_group (symtab_node *old_node)): created from
13243         symtab_add_to_same_comdat_group
13244         (void dissolve_same_comdat_group_list (void)): created from
13245         symtab_dissolve_same_comdat_group_list
13246         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
13247         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
13248         created from symtab_alias_ultimate_target
13249         (inline symtab_node *next_defined_symbol (void)): created from
13250         symtab_next_defined_symbol
13251         (bool resolve_alias (symtab_node *target)): created from
13252         symtab_resolve_alias
13253         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
13254         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
13255         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
13256         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
13257         (void set_section (const char *section)): created from set_section_1 
13258         (enum availability get_availability (void)): created from symtab_node_availability
13259         (void make_decl_local (void)): created from symtab_make_decl_local
13260         (bool real_symbol_p (void)): created from symtab_read_node
13261         (can_be_discarded_p (void)): created from symtab_can_be_discarded
13262         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
13263         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
13264         symtab_in_same_comdat_p;
13265         (bool address_taken_from_non_vtable_p (void)): created from
13266         address_taken_from_non_vtable_p
13267         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
13268         (static void dump_table (FILE *)): created from dump_symtab
13269         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
13270         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
13271         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
13272         symtab_used_from_object_file_p 
13273         (void dump_base (FILE *)): created from dump_symtab_base
13274         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
13275         (void unregister (void)): created from symtab_unregister_node
13276         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
13277         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
13278         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
13279         symtab_nonoverwritable_alias_1
13280         * cgraph.h (cgraph_node):
13281         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
13282         created from cgraph_remove_node_and_inline_clones
13283         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
13284         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
13285         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
13286         (cgraph_node *function_symbol (enum availability *avail = NULL)):
13287         created from cgraph_function_node
13288         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
13289         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
13290         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
13291         created from cgraph_create_clone 
13292         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
13293         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
13294         created from cgraph_create_virtual_clone
13295         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
13296         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
13297         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
13298         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
13299         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
13300         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
13301         created from cgraph_function_version_info
13302         (struct cgraph_function_version_info *insert_new_function_version (void)):
13303         created from insert_new_cgraph_node_version
13304         (struct cgraph_function_version_info *function_version (void)): created from
13305         get_cgraph_node_version
13306         (void analyze (void)): created from analyze_function
13307         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
13308         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
13309         tree real_alias) cgraph_add_thunk
13310         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
13311         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
13312         created from cgraph_function_or_thunk_node
13313         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
13314         created from expand_thunk
13315         (void reset (void)): created from cgraph_reset_node
13316         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
13317         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
13318         (void remove (void)): created from cgraph_remove_node
13319         (void dump (FILE *f)): created from dump_cgraph_node
13320         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
13321         (bool get_body (void)): created from cgraph_get_body
13322         (void release_body (void)): created from cgraph_release_function_body
13323         (void unnest (void)): created from cgraph_unnest_node
13324         (void make_local (void)): created from cgraph_make_node_local
13325         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
13326         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
13327         gcov_type count, int freq)): created from cgraph_create_edge
13328         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
13329         gcov_type count, int freq)): created from cgraph_create_indirect_edge
13330         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
13331         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
13332         created from cgraph_create_edge_including_clones
13333         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
13334         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
13335         (void remove_callers (void)): created from cgraph_node_remove_callers
13336         (void remove_callees (void)): created from cgraph_node_remove_callees
13337         (enum availability get_availability (void)): created from cgraph_function_body_availability
13338         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
13339         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
13340         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
13341         (void call_duplication_hooks (cgraph_node *node2)): created from
13342         cgraph_call_node_duplication_hooks
13343         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
13344         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
13345         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
13346         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
13347         (void call_function_insertion_hooks (void)):
13348         created from cgraph_call_function_insertion_hooks
13349         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
13350         (bool local_p (void)): created from cgraph_local_node
13351         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
13352         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
13353         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
13354         (inline bool only_called_directly_or_aliased_p (void)):
13355         created from cgraph_only_called_directly_or_aliased_p
13356         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
13357         created from cgraph_will_be_removed_from_program_if_no_direct_calls
13358         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
13359         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
13360         (bool can_remove_if_no_direct_calls_p (void)):
13361         created from cgraph_can_remove_if_no_direct_calls_p
13362         (inline bool has_gimple_body_p (void)):
13363         created from cgraph_function_with_gimple_body_p
13364         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
13365         (static void dump_cgraph (FILE *f)): created from dump_cgraph
13366         (static inline void debug_cgraph (void)): created from debug_cgraph
13367         (static void record_function_versions (tree decl1, tree decl2)):
13368         created from record_function_versions
13369         (static void delete_function_version (tree decl)):
13370         created from delete_function_version
13371         (static void add_new_function (tree fndecl, bool lowered)):
13372         created from cgraph_add_new_function
13373         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
13374         (static cgraph_node * create (tree decl)): created from cgraph_create_node
13375         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
13376         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
13377         (static cgraph_node *get_for_asmname (tree asmname)):
13378         created from cgraph_node_for_asm
13379         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
13380         created from cgraph_same_body_alias 
13381         (static bool used_from_object_file_p_worker (cgraph_node *node,
13382         void *): new function
13383         (static bool non_local_p (cgraph_node *node, void *)):
13384         created from cgraph_non_local_node_p_1
13385         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
13386         created from verify_cgraph
13387         (static bool make_local (cgraph_node *node, void *)):
13388         created from cgraph_make_node_local
13389         (static cgraph_node *create_alias (tree alias, tree target)):
13390         created from cgraph_create_function_alias
13391         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
13392         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
13393         created from cgraph_create_edge_1
13394         * cgraph.h (varpool_node):
13395         (void remove (void)): created from varpool_remove_node
13396         (void dump (FILE *f)): created from dump_varpool_node
13397
13398 2014-07-24  Richard Biener  <rguenther@suse.de>
13399
13400         PR ipa/61823
13401         * tree-ssa-structalias.c (create_variable_info_for_1):
13402         Use varpool_get_constructor.
13403         (create_variable_info_for): Likewise.
13404
13405 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13406
13407         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
13408         subtract outgoing area size when restoring stack_pointer_rtx.
13409
13410 2014-07-24  Nick Clifton  <nickc@redhat.com>
13411
13412         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
13413         that operations are taking place in parallel.
13414         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
13415
13416 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
13417
13418         * omp-low.c (extract_omp_for_data): Add missing break statement.
13419
13420 2014-07-24  Richard Biener  <rguenther@suse.de>
13421
13422         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
13423         * tree-inline.c (estimate_move_cost): Add speed_p parameter
13424         and adjust MOVE_RATIO query accordingly.
13425         (estimate_num_insns): Adjust callers.
13426         * ipa-prop.c (ipa_populate_param_decls): Likewise.
13427         * ipa-cp.c (gather_context_independent_values,
13428         estimate_local_effects): Likewise.
13429         * ipa-split.c (consider_split): Likewise.
13430
13431 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
13432
13433         * config/i386/driver-i386.c: Remove names of unused arguments and
13434         unnecessary unused attributes.
13435         * config/i386/host-mingw32.c: Likewise.
13436         * config/i386/i386.c: Likewise.
13437         * config/i386/winnt-stubs.c: Likewise.
13438         * config/i386/winnt.c: Likewise.
13439
13440 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13441
13442         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
13443         (aarch64_gen_loadwb_pair): New helper function.
13444         (aarch64_expand_epilogue): Simplify code using new helper functions.
13445         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
13446
13447 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13448
13449         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
13450         (aarch64_gen_storewb_pair): New helper function.
13451         (aarch64_expand_prologue): Simplify code using new helper functions.
13452         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
13453
13454 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13455
13456         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
13457         Rename to aarch64_save_callee_saves, remove restore code.
13458         (aarch64_restore_callee_saves): New function.
13459
13460 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13461
13462         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
13463         (aarch64_save_callee_saves): New function to handle reg save
13464         for both core and vectore regs.
13465
13466 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13467
13468         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
13469         (aarch64_gen_store_pair): New helper function.
13470         (aarch64_save_or_restore_callee_save_registers)
13471         (aarch64_save_or_restore_fprs): Use new helper functions.
13472
13473 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13474
13475         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
13476         (aarch64_save_or_restore_callee_save_registers)
13477         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
13478
13479 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13480
13481         * config/aarch64/aarch64.c
13482         (aarch64_save_or_restore_callee_save_registers)
13483         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
13484
13485 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13486
13487         * config/aarch64/aarch64.c
13488         (aarch64_save_or_restore_callee_save_registers)
13489         (aarch64_save_or_restore_fprs): Remove 'increment'.
13490
13491 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13492
13493         * config/aarch64/aarch64.c
13494         (aarch64_save_or_restore_callee_save_registers)
13495         (aarch64_save_or_restore_fprs): Use register offset in
13496         cfun->machine->frame.reg_offset.
13497
13498 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13499
13500         * config/aarch64/aarch64.c
13501         (aarch64_save_or_restore_callee_save_registers)
13502         (aarch64_save_or_restore_fprs): Remove base_rtx.
13503
13504 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13505
13506         * config/aarch64/aarch64.c
13507         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
13508         to 'start_offset'.  Remove local variable 'start_offset'.
13509
13510 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13511
13512         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
13513         type to HOST_WIDE_INT.
13514
13515 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13516
13517         * config/aarch64/aarch64.c (aarch64_expand_prologue)
13518         (aarch64_save_or_restore_fprs)
13519         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
13520
13521 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13522
13523         * config/arm/t-rtems-eabi: Add
13524         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
13525         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
13526         mbig-endian/mthumb/march=armv7-r, and
13527         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
13528         multilibs.
13529
13530 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13531             Chris Johns <chrisj@rtems.org>
13532             Joel Sherrill <joel.sherrill@oarcorp.com>
13533
13534         * config.gcc: Add nios2-*-rtems*.
13535         * config/nios2/rtems.h: New file.
13536         * gcc/config/nios2/t-rtems: New file.
13537
13538 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
13539
13540         PR target/61396
13541         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
13542         constant numbers, not general constants.
13543         (rs6000_expand_vector_init): Ditto.
13544
13545 2014-07-23  Nathan Sidwell  <nathan@acm.org>
13546
13547         * gcov-tool.c (gcov_list): Declare here.
13548         (set_gcov_list): Remove.
13549         (gcov_output_files): Set gcov_list directly.
13550
13551 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
13552
13553         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
13554
13555 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13556
13557         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
13558         callee-saved registers are available for padding purpose
13559         and r3 is not mandatory, then prefer use those callee-saved
13560         instead of r3.
13561
13562 2014-07-23  Richard Biener  <rguenther@suse.de>
13563
13564         * params.def (PARAM_MAX_COMBINE_INSNS): New.
13565         * combine.c: Include statistics.h and params.h.
13566         (combine_instructions): Guard three and four insn combines
13567         with max-combine-insns value.  Record statistics for combines
13568         performed.
13569         * doc/invoke.texi (max-combine-insns): Document new param.
13570
13571 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
13572
13573         * graphite-isl-ast-to-gimple.c:
13574         (translate_isl_ast_node_block): New function.
13575         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
13576
13577         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
13578         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
13579
13580 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
13581
13582         * graphite-isl-ast-to-gimple.c:
13583         (get_max_schedule_dimensions): New function.
13584         (extend_schedule): Likewise.
13585         (generate_isl_schedule): Add calling of extend_schedule and
13586         get_max_schedule_dimensions.
13587
13588 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13589
13590         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
13591         (case UNSPEC): Handle UNSPEC_RBIT.
13592
13593 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13594
13595         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
13596         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
13597
13598 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13599
13600         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
13601
13602 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
13603
13604         * graphite-isl-ast-to-gimple.c:
13605         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
13606         (ivs_params_clear):
13607         (build_iv_mapping): New function.
13608         (translate_isl_ast_node_user): Likewise.
13609         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
13610
13611         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
13612         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
13613         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
13614
13615 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
13616
13617         PR target/55701
13618         * config/arm/arm.md (setmem): New pattern.
13619         * config/arm/arm-protos.h (struct tune_params): New fields.
13620         (arm_gen_setmem): New prototype.
13621         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
13622         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
13623         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
13624         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
13625         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
13626         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
13627         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
13628         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
13629         (arm_const_inline_cost): New function.
13630         (arm_block_set_max_insns): New function.
13631         (arm_block_set_non_vect_profit_p): New function.
13632         (arm_block_set_vect_profit_p): New function.
13633         (arm_block_set_unaligned_vect): New function.
13634         (arm_block_set_aligned_vect): New function.
13635         (arm_block_set_unaligned_non_vect): New function.
13636         (arm_block_set_aligned_non_vect): New function.
13637         (arm_block_set_vect, arm_gen_setmem): New functions.
13638
13639 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
13640
13641         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
13642
13643 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
13644
13645         PR target/61855
13646         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
13647         out of #ifdef __OPTIMIZE__.
13648
13649 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
13650
13651         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
13652         different trapping status if -fnon-call-exceptions is enabled.
13653
13654 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
13655
13656         * expr.c (store_field): Handle VOIDmode for calls that return values
13657         in multiple locations.
13658
13659 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13660
13661         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
13662         (altivec_vsldoi_<mode>): Likewise.
13663
13664 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
13665
13666         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
13667         to the number of characters in the line.
13668
13669 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
13670
13671         * graphite-isl-ast-to-gimple.c: Add using of
13672         build_nonstandard_integer_type instead of int128_integer_type_node.
13673
13674 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
13675
13676         * toplev.c (output_stack_usage): Adjust the location of the warning.
13677
13678 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
13679
13680         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
13681         (*membar_storeload): Disable for LEON3.
13682
13683 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13684
13685         PR rtl-optimization/61461
13686         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
13687
13688 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
13689
13690         PR target/61794
13691         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
13692         Fix instruction constraint.
13693         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
13694
13695 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
13696
13697         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
13698
13699 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
13700
13701         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
13702         GNU coding standards.
13703         (nds32_register_move_cost): Likewise.
13704         (nds32_memory_move_cost): Likewise.
13705         (nds32_address_cost): Likewise.
13706
13707 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13708
13709         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
13710
13711 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
13712
13713         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
13714         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
13715         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
13716         (HAVE_sync_compare_and_swapqi): Define.
13717         (HAVE_sync_compare_and_swaphi): Likewise.
13718         (HAVE_sync_compare_and_swapsi): Likewise.
13719
13720 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
13721
13722         * config/mips/p5600.md: Add missing cpu tests.
13723
13724 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13725
13726         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
13727         (vmla_f64): Likewise.
13728         (vfms_f64): Likewise.
13729         (vmls_f64): Likewise.
13730
13731 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13732
13733         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
13734         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
13735
13736 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13737
13738         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
13739         (vmlal_high_lane_s32): Likewise.
13740         (vmlal_high_lane_u16): Likewise.
13741         (vmlal_high_lane_u32): Likewise.
13742         (vmlsl_high_lane_s16): Likewise.
13743         (vmlsl_high_lane_s32): Likewise.
13744         (vmlsl_high_lane_u16): Likewise.
13745         (vmlsl_high_lane_u32): Likewise.
13746
13747 2014-07-17  Terry Guo  <terry.guo@arm.com>
13748
13749         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
13750         (alus_reg): Renamed to alus_sreg.
13751         * config/arm/arm-fixed.md: Change type of non-dsp instructions
13752         from alu_reg to alu_sreg.  Change type of dsp instructions from
13753         alu_reg to alu_dsp_reg.
13754         * config/arm/thumb1.md: Likewise.
13755         * config/arm/thumb2.md: Likewise.
13756         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
13757         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
13758         with alu_sreg and alus_sreg.
13759         * config/arm/arm1026ejs.md (alu_op): Likewise.
13760         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
13761         * config/arm/arm926ejs.md (9_alu_op): Likewise.
13762         * config/arm/fa526.md (526_alu_op): Likewise.
13763         * config/arm/fa606te.md (606te_alu_op): Likewise.
13764         * config/arm/fa626te.md (626te_alu_op): Likewise.
13765         * config/arm/fa726te.md (726te_alu_op): Likewise.
13766         * config/arm/fmp626.md (mp626_alu_op): Likewise.
13767         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
13768         alu_sreg, alu_dsp_reg and alus_sreg.
13769         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
13770         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
13771         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
13772         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
13773         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
13774         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
13775         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
13776         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
13777         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
13778         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
13779         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
13780         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
13781         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
13782         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
13783         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
13784         alus_reg to alus_sreg.
13785
13786 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
13787
13788         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
13789         infinity format.
13790
13791 2014-07-17  Richard Biener  <rguenther@suse.de>
13792
13793         PR rtl-optimization/61801
13794         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
13795         don't set reg_pending_barrier if it appears in a debug-insn.
13796
13797 2014-07-16  DJ Delorie  <dj@redhat.com>
13798
13799         * config/rx/rx.c (rx_option_override): Fix alignment values.
13800         (rx_align_for_label): Likewise.
13801
13802 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
13803
13804         PR target/61737.
13805         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
13806         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
13807         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
13808         functions.
13809         (cris_print_index, cris_print_operand, cris_constant_index_p)
13810         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
13811         (cris_address_cost): Ditto last CONSTANT_P.
13812         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
13813         callers changed.  Yield cris_offsettable_symbol for non-PIC
13814         constant symbolic expressions including labels.  Yield cris_unspec
13815         for all unspecs.
13816         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
13817         target to pic_offset_table_rtx for calls that will likely go
13818         through PLT, const0_rtx when they can't.  All callers changed.
13819         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
13820         symbolic expressions to be PICified.  Remove second, redundant,
13821         assert on can_create_pseudo_p returning non-zero.  Use
13822         replace_equiv_address_nv, not replace_equiv_address, for final
13823         operand update.
13824         * config/cris/cris.md ("movsi"): Move variable t to pattern
13825         toplevel. Adjust assert for new cris_symbol_type member.  Use
13826         CONSTANT_P instead of CONSTANT_ADDRESS_P.
13827         ("*movsi_internal") <case 9>: Make check for valid unspec operands
13828         for lapc stricter.
13829         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
13830         ("call", "call_value"): Use second incoming operand as a marker
13831         for pic-offset-table-register being used.
13832         ("*expanded_call_non_v32", "*expanded_call_v32")
13833         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
13834         second incoming operand to CALL, match cris_call_type_marker.
13835         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
13836         ("*expanded_call_side"): Ditto.  Fix typo in comment.
13837         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
13838         CONSTANT_P.
13839         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
13840         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
13841         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
13842         users changed.  Add members cris_offsettable_symbol and cris_unspec.
13843         (cris_symbol_type): Rename from cris_pic_symbol_type.
13844         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
13845         just CONSTANT_P.
13846         * config/cris/cris-protos.h (cris_symbol_type_of,
13847         cris_expand_pic_call_address): Adjust prototypes.
13848         (cris_legitimate_constant_p): New prototype.
13849
13850         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
13851         an existing tmake_file.  Don't add t-slibgcc and t-linux.
13852
13853 2014-07-17  Jason Merrill  <jason@redhat.com>
13854
13855         PR c++/61623
13856         * symtab.c (symtab_remove_from_same_comdat_group): Also
13857         set_comdat_group to NULL_TREE.
13858         (verify_symtab): Fix diagnostic.
13859
13860 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
13861
13862         PR target/61662
13863         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
13864
13865 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
13866
13867         Support location tracking for built-in macro tokens
13868         * input.h (is_location_from_builtin_token): New function declaration.
13869         * input.c (is_location_from_builtin_token): New function definition.
13870         * toplev.c (general_init): Tell libcpp what the pre-defined
13871         spelling location for built-in tokens is.
13872
13873 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
13874
13875         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
13876         on the FUNCTION_DECL.
13877
13878 2014-07-16  Richard Biener  <rguenther@suse.de>
13879
13880         PR other/61782
13881         * doc/extend.texi (always_inline): Clarify.
13882
13883 2014-07-15  Eric Christopher  <echristo@gmail.com>
13884
13885         * doc/invoke.texi (Link Options): Document -z option.
13886
13887 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
13888
13889         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
13890         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
13891
13892 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
13893
13894         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
13895
13896 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
13897
13898         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
13899         varpool_assemble_decl.
13900         * varpool.c (varpool_assemble_decl): Assert that node->definition is
13901         true.
13902
13903 2014-07-15  Michael Matz  <matz@suse.de>
13904
13905         PR rtl-optimization/61772
13906         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
13907
13908 2014-07-15  Richard Biener  <rguenther@suse.de>
13909
13910         * opts.c (default_options_table): Disable bit-ccp at -Og.
13911
13912 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
13913
13914         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
13915
13916 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
13917
13918         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
13919         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
13920         call langhook for unknown declaration.
13921         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
13922         * tree.h (DECL_ARGUMENTS): Update.
13923         * print-tree.c (print_node): Update.
13924         * tree-core.h (tree_decl_non_common): Remove arguments.
13925         (tree_function_decl): Add arguments.
13926
13927 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
13928
13929         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
13930
13931 2014-07-14  Richard Biener  <rguenther@suse.de>
13932
13933         PR tree-optimization/61779
13934         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
13935         simplifying a condition.
13936
13937 2014-07-14  Richard Biener  <rguenther@suse.de>
13938
13939         * builtins.c (c_strlen): Make only_value == 2 really only
13940         affect warning generation.
13941
13942 2014-07-14  Richard Biener  <rguenther@suse.de>
13943
13944         PR tree-optimization/61757
13945         PR tree-optimization/61783
13946         PR tree-optimization/61787
13947         * tree-ssa-dom.c (record_equality): Revert canonicalization
13948         change and add comment.
13949         (propagate_rhs_into_lhs): Revert previous fix, removing
13950         loop depth restriction again.
13951
13952 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13953
13954         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
13955         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
13956         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
13957         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
13958         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
13959         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
13960         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
13961
13962 2014-07-14  Richard Biener  <rguenther@suse.de>
13963
13964         * cgraph.h (decl_in_symtab_p): Make inline.
13965
13966 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
13967
13968         PR middle-end/61294
13969         * doc/invoke.texi (-Wmemset-transposed-args): Document.
13970
13971         PR target/61656
13972         * config/i386/i386.c (classify_argument): Don't merge classes above
13973         number of words.
13974
13975 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
13976
13977         * cgraph.h (symtab_node): Add nonzero_address.
13978         (decl_in_symtab_p): Break out from ...
13979         (symtab_get_node): ... here.
13980         * fold-const.c: Include cgraph.h
13981         (tree_single_nonzero_warnv_p): Use symtab to determine
13982         if symbol is non-zero.
13983         * symtab.c (symtab_node::nonzero_address): New method.
13984
13985 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
13986
13987         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
13988         forgotten in previous commit.
13989
13990 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
13991
13992         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
13993         on builtin types.
13994         * ipa-devirt.c: Include stor-layout.h and intl.h
13995         (odr_subtypes_equivalent_p): New function.
13996         (warn_odr): New function.
13997         (warn_type_mismatch): New function.
13998         (odr_types_equivalent_p): New function.
13999         (add_type_duplicate): Use it.
14000         * common.opt (Wodr): New flag.
14001         * doc/invoke.texi (Wodr): Document new warning.
14002
14003 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
14004
14005         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
14006         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
14007         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
14008         (varpool_get_constructor): Push CTORS_IN timevar.
14009         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
14010
14011 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
14012
14013         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
14014         Remove VOID_FTYPE_PUSHORT.
14015         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
14016         Change code to USHORT_FTYPE_VOID.
14017         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
14018         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
14019         (ix86_atomic_assign_expand_fenv): Update for
14020         __builtin_ia32_fnstsw changes.
14021         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
14022         (fnstsw): Change operand 0 to nonimmediate operand.
14023
14024 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
14025
14026         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
14027         (varpool_get_constructor): New function.
14028         (varpool_ctor_useable_for_folding_p): Break out from ...
14029         (ctor_for_folding): ... here; use varpool_get_constructor.
14030         (varpool_assemble_decl): Likewise.
14031         * lto-streamer.h (struct output_block): Turn cgraph_node
14032         to symbol filed.
14033         (lto_input_variable_constructor): Declare.
14034         * ipa-visibility.c (function_and_variable_visibility): Use
14035         varpool_get_constructor.
14036         * cgraph.h (varpool_get_constructor): Declare.
14037         (varpool_ctor_useable_for_folding_p): New function.
14038         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
14039         parameter; return error_mark_node for non-trivial constructors.
14040         (lto_write_tree_1, DFS_write_tree): Update use of
14041         get_symbol_initial_value.
14042         (output_function): Update initialization of symbol.
14043         (output_constructor): New function.
14044         (copy_function): Rename to ..
14045         (copy_function_or_variable): ... this one; handle vars too.
14046         (lto_output): Output variable sections.
14047         * lto-streamer-in.c (input_constructor): New function.
14048         (lto_read_body): Rename from ...
14049         (lto_read_body_or_constructor): ... this one; handle vars too.
14050         (lto_input_variable_constructor): New function.
14051         * ipa-prop.c (ipa_prop_write_jump_functions,
14052         ipa_prop_write_all_agg_replacement): Update.
14053         * lto-cgraph.c (compute_ltrans_boundary): Use it.
14054         (output_cgraph_opt_summary): Set symbol to NULL.
14055
14056 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
14057
14058         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
14059         non-polymorphic types.
14060         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
14061         * ipa-devirt.c (types_same_for_odr): Do not explode when one
14062         of types is not polymorphic.
14063
14064 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
14065
14066         * lra-constraints.c (remove_inheritance_pseudos): Process
14067         destination pseudo too.
14068
14069 2014-07-11  Rong Xu  <xur@google.com>
14070
14071         * gcov-tool.c (gcov_output_files): Fix build error introduced in
14072         commit r212448.
14073
14074 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
14075
14076         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
14077         * config/avr/avr-devices.c (AVR_MCU): Same.
14078         (avr_mcu_types): add text start value to end of device list.
14079         * config/avr/avr-mcus.def: Add text section start for all devices.
14080         (ata5782): Add new avr5 device.
14081         (ata5831): Same.
14082         * config/avr/avr-tables.opt: Regenerate.
14083         * config/avr/avr.h: Add declaration for text section start handler.
14084         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
14085         SPEC functions.
14086         (LINK_SPEC): Include text section start handler to linker spec.
14087         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
14088         pass -Ttext option to linker if the text section start for the device
14089         is not zero.
14090         * config/avr/t-multilib: Regenerate.
14091         * doc/avr-mmcu.texi: Regenerate.
14092
14093 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
14094
14095         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
14096         * config/rs6000/aix52.h (LINK_SPEC): Same.
14097         * config/rs6000/aix53.h (LINK_SPEC): Same.
14098         * config/rs6000/aix61.h (LINK_SPEC): Same.
14099         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
14100
14101 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
14102
14103         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
14104         (graphite_verify): New function.
14105         (ivs_params_clear): New function.
14106         (gcc_expression_from_isl_ast_expr_id): New function.
14107         (gcc_expression_from_isl_expr_int): New function.
14108         (binary_op_to_tree): New function.
14109         (ternary_op_to_tree): New function.
14110         (unary_op_to_tree): New function.
14111         (nary_op_to_tree): New function.
14112         (gcc_expression_from_isl_expr_op): New function.
14113         (gcc_expression_from_isl_expression): New function.
14114         (graphite_create_new_loop): New function.
14115         (translate_isl_ast_for_loop): New function.
14116         (get_upper_bound): New function.
14117         (graphite_create_new_loop_guard): New function.
14118         (translate_isl_ast_node_for): New function.
14119         (translate_isl_ast): New function.
14120         (add_parameters_to_ivs_params): New function.
14121         (scop_to_isl_ast): New parameter ip.
14122         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
14123
14124 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
14125
14126         * config/xtensa/predicates.md (call expander): Update for
14127         DECL_SECTION_NAME being string.
14128
14129 2014-07-11  Richard Biener  <rguenther@suse.de>
14130
14131         PR middle-end/61473
14132         * builtins.c (fold_builtin_memory_op): Inline memory moves that
14133         can be implemented with a single load followed by a single store.
14134         (c_strlen): Only warn when only_value is not 2.
14135
14136 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
14137
14138         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
14139
14140 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
14141
14142         PR target/61561
14143         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
14144         (*movhi_bytes): Likewise.
14145         (*arm_movqi_insn): Likewise.
14146
14147 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
14148
14149         PR target/56858
14150         * config/alpha/alpha.c: Include tree-pass.h, context.h
14151         and pass_manager.h.
14152         (pass_data_handle_trap_shadows): New pass.
14153         (pass_handle_trap_shadows::gate): New pass gate function.
14154         (make_pass_handle_trap_shadows): New function.
14155         (rest_of_handle_trap_shadows): Ditto.
14156
14157         (alpha_align_insns_1): Rename from alpha_align_insns.
14158         (pass_data_align_insns): New pass.
14159         (pass_align_insns::gate): New pass gate function.
14160         (make_pass_aling_insns): New function.
14161         (rest_of_align_insns): Ditto.
14162         (alpha_align_insns): Ditto.
14163
14164         (alpha_option_override): Declare handle_trap_shadows info
14165         and align_insns_info.  Register handle_trap_shadows and align_insns
14166         passes here.
14167         (alpha_reorg): Do not call alpha_trap_shadows and
14168         alpha_align_insn from here.
14169
14170         (alpha_pad_function_end): Do not skip BARRIERs.
14171
14172 2014-07-10  Rong Xu  <xur@google.com>
14173
14174         Add gcov-tool: an offline gcda profile processing tool support.
14175         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
14176         (gcov_is_error): Ditto.
14177         (gcov_read_string): Ditto.
14178         (gcov_read_sync): Ditto.
14179         * gcov-io.h: Move counter defines to gcov-counter.def.
14180         * gcov-dump.c (tag_counters): Use gcov-counter.def.
14181         * coverage.c: Ditto.
14182         * gcov-tool.c: Offline gcda profile processing tool.
14183         (unlink_gcda_file): Remove one gcda file.
14184         (unlink_profile_dir): Remove gcda files from the profile path.
14185         (gcov_output_files): Output gcda files to an output dir.
14186         (profile_merge): Merge two profiles in directory.
14187         (print_merge_usage_message): Print merge usage.
14188         (merge_usage): Print merge usage and exit.
14189         (do_merge): Driver for profile merge sub-command.
14190         (profile_rewrite): Rewrite profile.
14191         (print_rewrite_usage_message): Print rewrite usage.
14192         (rewrite_usage): Print rewrite usage and exit.
14193         (do_rewrite): Driver for profile rewrite sub-command.
14194         (print_usage): Print gcov-info usage and exit.
14195         (print_version): Print gcov-info version.
14196         (process_args): Process arguments.
14197         (main): Main routine for gcov-tool.
14198         * Makefile.in: Build and install gcov-tool.
14199         * gcov-counter.def: New file split from gcov-io.h.
14200         * doc/gcc.texi: Include gcov-tool.texi.
14201         * doc/gcov-tool.texi: Document for gcov-tool.
14202
14203 2014-07-10  Richard Biener  <rguenther@suse.de>
14204
14205         PR tree-optimization/61757
14206         * tree-ssa-dom.c (loop_depth_of_name): Restore.
14207         (propagate_rhs_into_lhs): Revert part of last change.
14208
14209 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
14210
14211         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
14212         FUNCTION_DECLs.
14213
14214 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
14215
14216         PR middle-end/53590
14217         * function.c (allocate_struct_function): Revert r188667 change.
14218
14219         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
14220
14221 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
14222
14223         * doc/install.texi: Remove links to defunct package providers for
14224         Solaris.
14225
14226 2014-07-09  Tom de Vries  <tom@codesourcery.com>
14227
14228         * final.c (get_call_fndecl): Declare.
14229         (self_recursive_call_p): New function.
14230         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
14231
14232 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14233
14234         * ipa-devirt.c (record_node): Walk through aliases.
14235
14236 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14237
14238         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
14239
14240 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14241
14242         Revert:
14243         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
14244
14245 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14246
14247         * ipa-visibility.c (function_and_variable_visibility): Remove
14248         temporary hack disabling local aliases on AIX.
14249
14250 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14251
14252         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
14253         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
14254
14255 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14256
14257         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
14258         * rs6000/rs6000.c: Inline output of .set instruction.
14259         (declare_alias_data): New struct.
14260         (rs6000_declare_alias): New function.
14261         (rs6000_xcoff_declare_function_name): Use it.
14262         (rs6000_xcoff_declare_object_name): New function.
14263         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
14264         (ASM_OUTPUT_DEF): Turn to empty definition.
14265
14266 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
14267
14268         PR bootstrap/61679
14269         * hash-table.h: use hash_table::value_type instead of
14270         Descriptor::value_type in the return types of several methods.
14271
14272 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
14273
14274         * tree-pass.h (pass_data): Remove has_execute member.
14275         * passes.c (execute_one_pass): Don't check pass->has_execute.
14276         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
14277         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
14278         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
14279         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
14280         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
14281         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
14282         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
14283         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
14284         gimple-low.c, gimple-ssa-isolate-paths.c,
14285         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
14286         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
14287         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
14288         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
14289         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
14290         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
14291         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
14292         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
14293         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
14294         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
14295         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
14296         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
14297         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
14298         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
14299         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
14300         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
14301         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
14302         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
14303         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
14304         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
14305         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
14306         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
14307         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
14308         web.c: Remove initializer for pass_data::has_execute.
14309
14310 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
14311
14312         * graphite-htab.h: Use hash_map instead of hash_table.
14313         * graphite-clast-to-gimple.c: Adjust.
14314         * passes.c: Use hash_map instead of hash_table.
14315         * sese.c: Likewise.
14316         * sese.h: Remove now unused code.
14317
14318 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
14319
14320         PR target/61599
14321         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
14322         than zero.
14323
14324 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
14325
14326         PR rtl-optimization/61673
14327         * combine.c (simplify_comparison): Test just mode's sign bit
14328         in tmode rather than the sign bit and any bits above it.
14329
14330 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
14331
14332         * graphite-isl-ast-to-gimple.c (generate_isl_context):
14333         Add __isl_give to the declaration.
14334         (generate_isl_schedule): Likewise.
14335         (scop_to_isl_ast): Likewise.
14336
14337 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14338
14339         * config/arm/arm.c (cortexa5_extra_costs): New table.
14340         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
14341
14342 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
14343
14344         PR tree-optimization/61725
14345         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
14346         range, use range_includes_zerop_p instead of integer_zerop on
14347         vr0->min, only use log2 of max if min is not negative.
14348
14349 2014-07-08  Richard Biener  <rguenther@suse.de>
14350
14351         * tree-ssa-dom.h (loop_depth_of_name): Remove.
14352         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
14353         restriction on loop depth difference.
14354         (record_equality): Likewise.
14355         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
14356         (loop_depth_of_name): Remove.
14357         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
14358         restriction on loop depth difference.
14359         (init_copy_prop): Likewise.
14360
14361 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14362
14363         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
14364         parameter.
14365         (walk_aliased_vdefs): Likewise.
14366         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
14367         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
14368         (detect_type_change_from_memory_writes): Check if entry was reached.
14369
14370 2014-07-08  Richard Biener  <rguenther@suse.de>
14371
14372         PR tree-optimization/61681
14373         * tree-ssa-structalias.c (find_what_var_points_to): Expand
14374         NONLOCAL inside ESCAPED.
14375
14376 2014-07-08  Richard Biener  <rguenther@suse.de>
14377
14378         PR tree-optimization/61680
14379         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
14380         Handle properly all read-write dependences with group accesses.
14381
14382 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
14383
14384         PR tree-optimization/61576
14385         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
14386         block containing reduction statement is predecessor of phi basi block.
14387
14388 2014-07-08  Marek Polacek  <polacek@redhat.com>
14389
14390         PR c/60226
14391         * fold-const.c (round_up_loc): Change the parameter type.
14392         Remove assert.
14393         * fold-const.h (round_up_loc): Adjust declaration.
14394         * stor-layout.c (finalize_record_size): Check for too large types.
14395
14396 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
14397
14398         * symtab.c: Include calls.h.
14399         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
14400
14401 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
14402
14403         * config/rs6000/rs6000.c (output_vec_const_move): Handle
14404         little-endian code generation.
14405         * config/rs6000/spe.md (spe_evmergehi): Rename to...
14406         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
14407         (spe_evmergehilo): Rename to...
14408         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
14409         (spe_evmergelo): Rename to...
14410         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
14411         (spe_evmergelohi): Rename to...
14412         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
14413         (spe_evmergehi, spe_evmergehilo): New expanders.
14414         (spe_evmergelo, spe_evmergelohi): Likewise.
14415         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
14416         (*frob_tf_ti): Likewise.
14417         (*frob_<mode>_di_2): Likewise.
14418         (*frob_tf_di_8_2): Likewise.
14419         (*frob_di_<mode>): Likewise.
14420         (*frob_ti_tf): Likewise.
14421         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
14422         (*frob_ti_<mode>_8_2): Likewise.
14423         (*frob_ti_tf_2): Likewise.
14424         (mov_si<mode>_e500_subreg0): Rename to...
14425         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
14426         endianness only.
14427         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
14428         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
14429         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
14430         the big endianness only.
14431         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
14432         (*mov_si<mode>_e500_subreg0_2): Rename to...
14433         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
14434         big big endianness only.
14435         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
14436         (*mov_si<mode>_e500_subreg4): Rename to...
14437         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
14438         endianness only.
14439         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
14440         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
14441         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
14442         the big endianness only.
14443         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
14444         pattern.
14445         (*mov_si<mode>_e500_subreg4_2): Rename to...
14446         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
14447         endianness only.
14448         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
14449         (*mov_sitf_e500_subreg8): Rename to...
14450         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
14451         endianness only.
14452         (*mov_sitf_e500_subreg8_le): New instruction pattern.
14453         (*mov_sitf_e500_subreg8_2): Rename to...
14454         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
14455         endianness only.
14456         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
14457         (*mov_sitf_e500_subreg12): Rename to...
14458         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
14459         endianness only.
14460         (*mov_sitf_e500_subreg12_le): New instruction pattern.
14461         (*mov_sitf_e500_subreg12_2): Rename to...
14462         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
14463         endianness only.
14464         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
14465
14466 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
14467
14468         * asan.c (instrument_strlen_call): Do not instrument first byte
14469         in strlen if already instrumented.
14470
14471 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14472
14473         * config/arm/arm.opt (mwords-little-endian): Delete.
14474         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
14475         of TARGET_LITTLE_WORDS.
14476         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
14477         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
14478         warning.
14479         * doc/invoke.texi: Remove references to -mwords-little-endian.
14480
14481 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
14482
14483         * expmed.c (struct init_expmed_rtl): Change all fields but
14484         pow2 and cint from struct rtx_def to rtx.
14485         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
14486         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
14487         at the end again.
14488
14489 2014-07-06  Marek Polacek  <polacek@redhat.com>
14490
14491         PR c/6940
14492         * doc/invoke.texi: Document -Wsizeof-array-argument.
14493
14494 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
14495
14496         * wide-int.h (wide_int_storage): Change declaration from struct
14497         to class.
14498
14499 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
14500
14501         * cgraph.c (cgraph_create_indirect_edge): Update call of
14502         get_polymorphic_call_info.
14503         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
14504         (possible_polymorphic_call_targets): Add parameter call.
14505         (decl_maybe_in_construction_p): New predicate.
14506         (get_polymorphic_call_info): Add parameter call;
14507         use decl_maybe_in_construction_p.
14508         * gimple-fold.c (fold_gimple_assign): Update use of
14509         possible_polymorphic_call_targets.
14510         (gimple_fold_call): Likewise.
14511         * ipa-prop.c: Inlcude calls.h
14512         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
14513         (param_type_may_change_p): New predicate.
14514         (detect_type_change_from_memory_writes): Break out from ...
14515         (detect_type_change): ... this one; use param_type_may_change_p.
14516         (detect_type_change_ssa): Use param_type_may_change_p.
14517         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
14518
14519 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
14520
14521         PR target/49423
14522         * config/arm/arm-protos.h (arm_legitimate_address_p,
14523         arm_is_constant_pool_ref): Add prototypes.
14524         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
14525         (arm_is_constant_pool_ref) New function.
14526         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
14527         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
14528         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
14529         operand. Remove pool_range and neg_pool_range attributes.
14530         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
14531         pool_range and neg_pool_range attributes.
14532         * config/arm/constraints.md (Uh): New constraint.
14533         (Uq): Don't allow constant pool references.
14534
14535 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
14536
14537         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
14538         (move_lo_quad_internal_be_<mode>): Likewise.
14539         (move_lo_quad_<mode>): Convert to define_expand.
14540         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
14541         (aarch64_simd_move_hi_quad_be_<mode>): New.
14542         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
14543         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
14544         (aarch64_combinez_be<mode>): New.
14545         (aarch64_combine<mode>): Convert to define_expand.
14546         (aarch64_combine_internal<mode>): New.
14547         (aarch64_simd_combine<mode>): Remove bogus RTL description.
14548
14549 2014-07-04  Tom de Vries  <tom@codesourcery.com>
14550
14551         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
14552         combination of earlyclobber and read/write modifiers.
14553
14554 2014-07-04  Tom de Vries  <tom@codesourcery.com>
14555
14556         * config/aarch64/aarch64-simd.md
14557         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
14558
14559 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
14560
14561         PR target/61714
14562         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
14563
14564 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
14565
14566         PR middle-end/61654
14567         * cgraphunit.c (expand_thunk): Call free_dominance_info.
14568
14569         PR tree-optimization/61684
14570         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
14571         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
14572
14573 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14574             Kito Cheng  <kito@0xlab.org>
14575             Monk Chiang  <sh.chiang04@gmail.com>
14576
14577         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
14578         (nds32_symbol_load_store_p): Move to ...
14579         (nds32_fp_as_gp_check_available): Move to ...
14580         * config/nds32/nds32-fp-as-gp.c: ... here.
14581         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
14582         extern declaration.
14583
14584 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14585             Kito Cheng  <kito@0xlab.org>
14586             Monk Chiang  <sh.chiang04@gmail.com>
14587
14588         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
14589         (nds32_expand_store_multiple): Move to ...
14590         (nds32_expand_movmemqi): Move to ...
14591         * config/nds32/nds32-memory-manipulation.c: ... here.
14592
14593 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14594             Kito Cheng  <kito@0xlab.org>
14595             Monk Chiang  <sh.chiang04@gmail.com>
14596
14597         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
14598         (nds32_output_casesi_pc_relative): Move to ...
14599         (nds32_output_casesi): Move to ...
14600         (nds32_mem_format): Move to ...
14601         (nds32_output_16bit_store): Move to ...
14602         (nds32_output_16bit_load): Move to ...
14603         (nds32_output_32bit_store): Move to ...
14604         (nds32_output_32bit_load): Move to ...
14605         (nds32_output_32bit_load_s): Move to ...
14606         (nds32_output_stack_push): Move to ...
14607         (nds32_output_stack_pop): Move to ...
14608         * config/nds32/nds32-md-auxiliary.c: ... here.
14609
14610 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14611             Ling-Hua Tseng  <uranus@tinlans.org>
14612
14613         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
14614         the purpose of this file.
14615
14616 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14617             Kito Cheng  <kito@0xlab.org>
14618             Monk Chiang  <sh.chiang04@gmail.com>
14619
14620         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
14621         (nds32_address_cost): Move implementation to ...
14622         * config/nds32/nds32-cost.c: ... here.
14623         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
14624         (nds32_address_cost_impl): Declare.
14625
14626 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14627             Kito Cheng  <kito@0xlab.org>
14628             Monk Chiang  <sh.chiang04@gmail.com>
14629
14630         * config/nds32/nds32.c
14631         (nds32_consecutive_registers_load_store_p): Move to ...
14632         (nds32_valid_multiple_load_store): Move to ...
14633         (nds32_valid_stack_push_pop): Move to ...
14634         (nds32_can_use_bclr_p): Move to ...
14635         (nds32_can_use_bset_p): Move to ...
14636         (nds32_can_use_btgl_p): Move to ...
14637         (nds32_can_use_bitci_p): Move to ...
14638         * config/nds32/nds32-predicates.c: ... here.
14639
14640 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14641             Kito Cheng  <kito@0xlab.org>
14642             Monk Chiang  <sh.chiang04@gmail.com>
14643
14644         * config/nds32/nds32.c
14645         (nds32_expand_builtin_null_ftype_reg): Move to ...
14646         (nds32_expand_builtin_reg_ftype_imm): Move to ...
14647         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
14648         (nds32_init_builtins): Move implementation to ...
14649         (nds32_expand_builtin): Move implementation to ...
14650         * config/nds32/nds32-intrinsic.c: ... here.
14651         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
14652         (nds32_expand_builtin_impl): Declare.
14653
14654 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14655             Kito Cheng  <kito@0xlab.org>
14656             Monk Chiang  <sh.chiang04@gmail.com>
14657
14658         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
14659         (nds32_emit_section_tail_template): Move to ...
14660         (nds32_emit_isr_jmptbl_section): Move to ...
14661         (nds32_emit_isr_vector_section): Move to ...
14662         (nds32_emit_isr_reset_conten): Move to ...
14663         (nds32_check_isr_attrs_conflict): Move to ...
14664         (nds32_construct_isr_vectors_information): Move to ...
14665         (nds32_asm_file_start): Move implementation to ...
14666         (nds32_asm_file_end): Move implementation to ...
14667         * config/nds32/nds32-isr.c: ... here.
14668         * config/nds32/nds32-protos.h
14669         (nds32_check_isr_attrs_conflict): Declare.
14670         (nds32_construct_isr_vectors_information): Declare.
14671         (nds32_asm_file_start_for_isr): Declare.
14672         (nds32_asm_file_end_for_isr): Declare.
14673
14674 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14675             Kito Cheng  <kito@0xlab.org>
14676             Monk Chiang  <sh.chiang04@gmail.com>
14677
14678         * config.gcc (nds32*): Add new modules to extra_objs.
14679         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
14680         (nds32be-*-*): Likewise.
14681         * config/nds32/nds32-cost.c: New file.
14682         * config/nds32/nds32-fp-as-gp.c: New file.
14683         * config/nds32/nds32-intrinsic.c: New file.
14684         * config/nds32/nds32-isr.c: New file.
14685         * config/nds32/nds32-md-auxiliary.c: New file.
14686         * config/nds32/nds32-memory-manipulation.c: New file.
14687         * config/nds32/nds32-pipelines-auxiliary.c: New file.
14688         * config/nds32/nds32-predicates.c: New file.
14689         * config/nds32/t-nds32: New file.
14690
14691 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
14692
14693         PR tree-optimization/61682
14694         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
14695         using cases and when one of the operands is equal to 1.
14696
14697 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
14698
14699         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
14700         ashr<mode>3): Correct mode of operands[2].
14701         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
14702         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
14703         Correct mode of operands[2].  Fix split condition.
14704
14705 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
14706
14707         * arm.md (arch): Add armv6_or_vfpv3.
14708         (arch_enabled): Add test for the above.
14709         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
14710         on VFP9.
14711         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
14712
14713 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
14714
14715         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
14716         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
14717         HWI 1 and negate the unsigned value.
14718         * expmed.c (expand_sdiv_pow2): For modes wider than word always
14719         use AND instead of shift.
14720         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
14721
14722 2014-07-03  Marek Polacek  <polacek@redhat.com>
14723
14724         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
14725         (-fsanitize=float-divide-by-zero): Move to the table with
14726         -fsanitize=undefined suboptions.
14727         (-fsanitize=float-cast-overflow): Likewise.
14728
14729 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
14730
14731         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
14732         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
14733         endianness.
14734
14735 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
14736
14737         * loop-invariant.c (struct invariant): Add a new member: eqno;
14738         (find_identical_invariants): Update eqno;
14739         (create_new_invariant): Init eqno;
14740         (get_inv_cost): Compute comp_cost with eqno;
14741
14742 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
14743
14744         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
14745         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
14746         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
14747         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
14748         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
14749
14750 2014-07-02  Christian Bruel  <christian.bruel@st.com>
14751
14752         PR target/29349
14753         PR target/53513
14754         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
14755         (make_preds_opaque): Delete.
14756         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
14757         (commit_mode_sets): New function.
14758         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
14759         Process all modes at once.
14760         * basic-block.h (pre_edge_lcm_avs): Declare.
14761         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
14762         Call clear_aux_for_edges. Fix comments.
14763         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
14764         (pre_edge_rev_lcm): Idem.
14765         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
14766         parameter.
14767         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
14768         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
14769         Idem.
14770         * config/i386/i386.c (x96_emit_mode_set): Idem.
14771         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
14772         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
14773         (fpscr_toggle) Disallow from delay slot.
14774         * target.def (emit_mode_set): Add prev_mode parameter.
14775         * doc/tm.texi: Regenerate.
14776
14777 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14778
14779         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
14780         variable i.
14781
14782 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
14783
14784         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
14785         vtable_pointer_value_to_vtable): Constify.
14786         (contains_polymorphic_type_p): Declare.
14787         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
14788         vtable_pointer_value_to_vtable): Constify.
14789         (contains_polymorphic_type_p): New predicate.
14790         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
14791         polymorphic types.
14792         (ipa_set_ancestor_jf): Likewise.
14793         (detect_type_change): Return false in easy cases.
14794         (compute_complex_assign_jump_func): Require type to contain
14795         polymorphic type.
14796         (compute_known_type_jump_func): Likewise.
14797
14798 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
14799
14800         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
14801         Remove.
14802         (type_in_anonymous_namespace_p): Constify argument.
14803         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
14804         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
14805         (main_odr_variant): New function.
14806         (hash_type_name): Make static; update assert; do not ICE on
14807         non-records.
14808         (types_same_for_odr): Bring here from tree.c; simplify and remove
14809         old structural comparing code that doesn't work for templates.
14810         (odr_hasher::equal): Update assert.
14811         (add_type_duplicate): Return true when bases should be computed;
14812         replace incomplete loader by complete; do not output duplicated
14813         warnings; do not ICE on non-records; set odr_violated flag.
14814         (get_odr_type): Be ready to replace incomplete type by complete
14815         one; work on ODR variants instead of main variants; reorder item
14816         in array so bases have still smaller indexes.
14817         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
14818         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
14819
14820 2014-07-01  Cary Coutant  <ccoutant@google.com>
14821
14822         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
14823         lookup.
14824         (resolve_addr_in_expr): When replacing the rtx in a location list
14825         entry, get a new address table entry.
14826         (dwarf2out_finish): Call index_location_lists even if there are no
14827         addr_index_table entries yet.
14828
14829 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
14830
14831         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
14832         change for not being obvious.
14833
14834 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
14835
14836         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
14837         unused argument.
14838
14839 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14840
14841         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
14842         (vcagt_f64): Likewise.
14843         (vcale_f64): Likewise.
14844         (vcaled_f64): Likewise.
14845         (vcales_f32): Likewise.
14846         (vcalt_f64): Likewise.
14847         (vcaltd_f64): Likewise.
14848         (vcalts_f32): Likewise.
14849
14850 2014-07-01  Marek Polacek  <polacek@redhat.com>
14851
14852         * doc/invoke.texi: Document -Wint-conversion.
14853
14854 2014-07-01  Marek Polacek  <polacek@redhat.com>
14855
14856         PR c/58286
14857         * doc/invoke.texi: Document -Wincompatible-pointer-types.
14858
14859 2014-07-01  Martin Liska  <mliska@suse.cz>
14860
14861         IPA REF alias refactoring
14862         * cgraph.h (iterate_direct_aliases): New function.
14863         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
14864         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
14865         FOR_EACH_ALIAS added.
14866         (cgraph_for_node_and_aliases): Likewise.
14867         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
14868         * ipa-inline.c (reset_edge_caches): Likewise.
14869         (update_caller_keys): Likewise.
14870         * trans-mem.c (ipa_tm_execute): Likewise.
14871         *varpool.c (varpool_analyze_node): Likewise.
14872         (varpool_for_node_and_aliases): Likewise.
14873         * ipa-ref.h (first_alias): New function.
14874         (last_alias): Likewise.
14875         (has_aliases_p): Likewise.
14876         * ipa-ref.c (ipa_ref::remove_reference): Removal function
14877         is sensitive to IPA_REF_ALIASes.
14878         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
14879         are put at the beginning of the list.
14880         (symtab_node::iterate_direct_aliases): New function.
14881
14882 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
14883
14884         Revert:
14885         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
14886         type is complete.
14887         (write_ts_type_common_tree_pointers): Do not stream fields not set
14888         for incomplete types; do not stream duplicated fields for variants;
14889         sanity check that variant and type match.
14890         (write_ts_type_non_common_tree_pointers): Likewise.
14891         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
14892         TYPE_SIZE whether type is complete.
14893         (lto_input_ts_type_common_tree_pointers): Do same changes as in
14894         write_ts_type_common_tree_pointers
14895         (lto_input_ts_type_non_common_tree_pointers): Likewise.
14896
14897 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
14898
14899         * var-tracking.c (add_stores): Return instead of asserting if old
14900         and new values for conditional store are the same.
14901
14902 2014-06-30  Richard Henderson  <rth@redhat.com>
14903
14904         PR rtl-opt/61608
14905         PR target/39284
14906         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
14907         the cfg if there were any changes.
14908         * passes.def: Revert move of peephole2 after reorder_blocks;
14909         move duplicate_computed_gotos before peephole2.
14910
14911 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
14912
14913         * except.c (emit_note_eh_region_end): New helper function.
14914         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
14915         emit EH_REGION_END note.
14916         * jump.c (cleanup_barriers): Do not split a call and its
14917         corresponding CALL_ARG_LOCATION note.
14918
14919 2014-06-30  Jeff Law  <law@redhat.com>
14920
14921         PR tree-optimization/61607
14922         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
14923         deeper into the SSA_NAME_VALUE chain.
14924
14925 2014-06-30  Marek Polacek  <polacek@redhat.com>
14926
14927         * convert.c (convert_to_integer): Don't instrument conversions if the
14928         function has no_sanitize_undefined attribute.
14929         * ubsan.c: Don't run the ubsan pass if the function has
14930         no_sanitize_undefined attribute.
14931
14932 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
14933
14934         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
14935         -fsanitize=undefined suboptions.
14936
14937 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
14938
14939         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
14940         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
14941         against bigendian and adjust indices.
14942
14943 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
14944
14945         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
14946
14947 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14948
14949         PR target/61633
14950         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
14951         Add alternative; make early clobber.  Adjust both split patterns
14952         to use operand 0 as the working register.
14953
14954 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
14955
14956         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
14957         as ira_object_id_map might be NULL, or 1.
14958
14959 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
14960
14961         * loop-invariant.c (get_inv_cost): Handle register class.
14962         (gain_for_invariant): Check the register pressure of the inv
14963         and its overlapped register class, other than all.
14964
14965 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
14966
14967         * doc/invoke.texi (Optimize Options): Fix descriptions of
14968         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
14969
14970 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
14971
14972         * doc/extend.texi (Function Attributes): Update 'naked' attribute
14973         documentation.
14974
14975 2014-06-29  Tobias Grosser <tobias@grosser.es>
14976
14977         PR bootstrap/61650
14978         * graphite-isl-ast-to-gimple.c: Add missing guards.
14979
14980 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
14981
14982         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
14983         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
14984         * flag-types.h: Add new enum fgraphite_generator.
14985         * graphite-isl-ast-to-gimple.c: New.
14986         * graphite-isl-ast-to-gimple.h: New.
14987         * graphite.c (graphite_transform_loops): Add choice of Graphite
14988         code generator, which depends on flag_graphite_code_gen.
14989
14990 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
14991
14992         * graphite-dependences.c (subtract_commutative_associative_deps):
14993         Add NULL checking of the following variables: must_raw_no_source,
14994         may_raw_no_source, must_war_no_source, may_war_no_source,
14995         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
14996         must_war, may_war, must_waw, may_waw.
14997
14998 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
14999
15000         * graphite-clast-to-gimple.c: gloog is renamed to
15001         graphite_regenerate_ast_cloog.  gloog_error is renamed to
15002         graphite_regenerate_error.
15003         * graphite-clast-to-gimple.h: The definition of the struct
15004         bb_pbb_def is moved to graphite-htab.h.
15005         Add inclusion of the hash-table.h.
15006         * graphite-htab.h: The declaration of the function gloog is moved
15007         to graphite-clast-to-gimple.h and renamed to
15008         graphite_regenerate_ast_cloog.
15009         * graphite.c (graphite_transform_loops): gloog is renamed
15010         to graphite_regenerate_ast_cloog.
15011
15012 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
15013
15014         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
15015         type is complete.
15016         (write_ts_type_common_tree_pointers): Do not stream fields not set
15017         for incomplete types; do not stream duplicated fields for variants;
15018         sanity check that variant and type match.
15019         (write_ts_type_non_common_tree_pointers): Likewise.
15020         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
15021         TYPE_SIZE whether type is complete.
15022         (lto_input_ts_type_common_tree_pointers): Do same changes as in
15023         write_ts_type_common_tree_pointers
15024         (lto_input_ts_type_non_common_tree_pointers): Likewise.
15025
15026 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
15027
15028         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
15029
15030 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
15031
15032         * tree-inline.c (remap_type_1): Do not duplicate fields
15033         that are shared in between type and its main variant.
15034
15035 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
15036
15037         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
15038         of the type.
15039         (ipa_set_ancestor_jf) Likewise.
15040         (check_stmt_for_type_change): Check that we work on main variant.
15041         (detect_type_change): Look into main variant.
15042         (compute_known_type_jump_func): Check that main variant has BINFO.
15043
15044 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
15045
15046         * ipa-devirt.c (set_type_binfo): New function.
15047         (add_type_duplicate): Use it.
15048         (get_odr_type): Sanity check that binfos points to main variants.
15049         (get_class_context): Be sure the context's outer_type is main variant.
15050         (contains_type_p): Walk main variant.
15051         (get_polymorphic_call_info_for_decl): Set outer_type to be
15052         main variant.
15053         (get_polymorphic_call_info): Likewise.
15054         (possible_polymorphic_call_targets): Sanity check that we operate
15055         on main variant.
15056
15057 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
15058
15059         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
15060
15061 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15062
15063         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
15064         accidental change due to wide-int branch merge.
15065
15066 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15067
15068         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
15069         compressed debug support.
15070         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
15071         * configure: Regenerate.
15072         * config.in: Regenerate.
15073         * common.opt (compressed_debug_sections): New enum.
15074         (gz, gz=): New options.
15075         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
15076         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
15077         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
15078         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
15079         LINK_COMPRESS_DEBUG_SPEC.
15080         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
15081         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
15082         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
15083         (Debugging Options): Document -gz[=type].
15084
15085 2014-06-27  Martin Jambor  <mjambor@suse.cz>
15086
15087         PR ipa/61160
15088         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
15089         args_to_skip, use those from node instead.  Copy args_to_skip and
15090         combined_args_to_skip from node to the new thunk.
15091         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
15092         (cgraph_create_virtual_clone): Moved computation of
15093         combined_args_to_skip...
15094         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
15095
15096 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
15097
15098         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
15099         redundant diagnostic machinary.
15100
15101 2014-06-27  Richard Biener  <rguenther@suse.de>
15102
15103         * tree-ssa-math-opts.c (bswap_replace): Fix
15104         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
15105
15106 2014-06-27  Martin Liska  <mliska@suse.cz>
15107
15108         * gimple.h (gimple_location_safe): New function introduced.
15109         * cgraphunit.c (walk_polymorphic_call_targets): Usage
15110         of gimple_location_safe replaces gimple_location.
15111         (gimple_fold_call): Likewise.
15112         * ipa-devirt.c (ipa_devirt): Likewise.
15113         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
15114         * ipa.c (walk_polymorphic_call_targets): Likewise.
15115         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
15116
15117 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
15118
15119         PR tree-optimization/57233
15120         PR tree-optimization/61299
15121         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
15122         functions.
15123         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
15124         would be lowered to scalar shifts, check if corresponding
15125         shifts and vector BIT_IOR_EXPR are supported and don't lower
15126         or lower just to narrower vector type in that case.
15127         * expmed.c (expand_shift_1): Fix up handling of vector
15128         shifts and rotates.
15129
15130 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
15131
15132         PR target/61586
15133         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
15134
15135 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
15136
15137         * doc/invoke.texi (-fsemantic-interposition): Document.
15138         * common.opt (fsemantic-interposition): New flag.
15139         * varasm.c (decl_replaceable_p): Use it.
15140
15141 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15142
15143         PR target/61542
15144         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
15145         extraction other than index 3.
15146
15147 2014-06-26  Teresa Johnson  <tejohnson@google.com>
15148
15149         * doc/invoke.texi: Fix typo.
15150         * dumpfile.c: Add support for documented -fdump-* options
15151         optimized/missed/note/optall.
15152
15153 2014-06-26  Martin Jambor  <mjambor@suse.cz>
15154
15155         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
15156         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
15157         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
15158         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
15159         * opts.c (default_options_optimization): Set
15160         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
15161         * doc/invoke.texi (allow-load-data-races)
15162         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
15163         (allow-store-data-races): Document the new default.
15164
15165 2014-06-26  Martin Jambor  <mjambor@suse.cz>
15166
15167         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
15168         renamed to ipa_impossible_devirt_target.  Fix typo.
15169         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
15170         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
15171         ipa_impossible_devirt_target.
15172
15173 2014-06-26  Richard Biener  <rguenther@suse.de>
15174
15175         PR tree-optimization/61607
15176         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
15177         explaining why we restrict copies on loop depth.
15178         * tree-ssa-dom.c (cprop_operand): Remove restriction on
15179         on loop depth.
15180         (record_equivalences_from_phis): Instead add it here.
15181
15182 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
15183
15184         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
15185         (LTO_WRAPPER_OBJS): New variable.
15186         (lto-wrapper$(exeext)): Use it.
15187         * collect2.c: Include "collect-utils.h".
15188         (verbose, debug): Remove variables.
15189         (at_file_supplied): No longer static.
15190         (tool_name): New variable.
15191         (do_wait, fork_execute, maybe_unlink): Don't declare.
15192         (tool_cleanup): No longer static.
15193         (notice): Remove function.
15194         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
15195         fork_execute calls.
15196         (collect_wait, do_wait, collect_execute): Remove functions.
15197         (maybe_unlink): No longer static.
15198         * collect2.h (verbose, debug): Don't declare.
15199         (at_file_supplied): Declare.
15200         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
15201         changed.
15202         (collect_execute): Replace with implementation from collect2, plus a
15203         new arg use_atfile.  All callers changed.
15204         (collect_wait): Replace with implementation from collect2.
15205         (maybe_unlink_file): Remove function.
15206         (fork_execute): Replace with implementation from collect2, plus a
15207         new arg use_atfile.  All callers changed.
15208         (do_wait): Add call to utils_cleanup to the error path.
15209         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
15210         (tool_cleanup): Adjust declarations.
15211         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
15212         * tlink.c: Include "collect-utils.h".
15213         (tlink_execute): New arg use_atfile.  All callers changed.
15214         (tlink_init, tlink_execute): Remove declarations.
15215
15216         * collect-utils.c (save_temps): New variable.
15217         (do_wait): Use it instead of debug.  Use fatal_error.
15218         * collect-utils.h (save_temps): Declare.
15219         * collect2.c (verbose): Rename from vflag.  All uses changed.
15220         (tool_cleanup): New function, copied from collect_atexit.
15221         (collect_atexit, handler): Just call it.
15222         * collect2.h (verbose): Declaration renamed from vflag.
15223         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
15224         debug.
15225
15226         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
15227         (lto-wrapper$(exeext)): Link with collect-utils.o.
15228         * collect-utils.c: New file.
15229         * collect-utils.h: New file.
15230         * lto-wrapper.c: Include "collect-utils.h".
15231         (args_name): Delete variable.
15232         (tool_name): New variable.
15233         (tool_cleanup): New function.
15234         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
15235         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
15236         (fork_execute): Remove functions.
15237
15238 2014-06-26  Nick Clifton  <nickc@redhat.com>
15239
15240         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
15241
15242         * doc/extend.texi (Function Attributes): Fix typo in description
15243         of RX vector attribute.
15244
15245 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15246
15247         * config.gcc (supported_defaults): Error when passing either
15248         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
15249
15250 2014-06-26  Richard Biener  <rguenther@suse.de>
15251
15252         * tree-ssa-dom.c (cprop_operand): Remove restriction on
15253         propagating volatile pointers.
15254
15255 2014-06-26  Richard Biener  <rguenther@suse.de>
15256
15257         PR tree-optimization/61607
15258         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
15259         loop if we redirected its latch edge.
15260         (thread_block_1): Do not cancel loops prematurely.
15261
15262 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
15263
15264         * toplev.c (backend_init_target): Move init_emit_regs and
15265         init_regs to...
15266         (backend_init) ... here; skip ira_init_once and backend_init_target.
15267         (target_reinit) ... and here; clear
15268         this_target_rtl->lang_dependent_initialized.
15269         (lang_dependent_init_target): Clear
15270         this_target_rtl->lang_dependent_initialized;
15271         break out rtl initialization to ...
15272         (initialize_rtl): ... here; call also backend_init_target
15273         and ira_init_once.
15274         * toplev.h (initialize_rtl): New function.
15275         * function.c: Include toplev.h
15276         (init_function_start): Call initialize_rtl.
15277         * rtl.h (target_rtl): Add target_specific_initialized,
15278         lang_dependent_initialized.
15279
15280 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
15281             Jakub Jelinek  <jakub@redhat.com>
15282
15283         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
15284
15285 2014-06-25  Tom de Vries  <tom@codesourcery.com>
15286
15287         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
15288
15289 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15290
15291         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
15292         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
15293         Issue a strict overflow warning if appropriate.
15294
15295 2014-06-25  Martin Liska  <mliska@suse.cz>
15296
15297         IPA REF refactoring
15298         * Makefile.in: Removed header file (ipa-ref-inline.h).
15299         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
15300         called.
15301         (cgraph_speculative_call_info): Likewise.
15302         (cgraph_for_node_thunks_and_aliases): Likewise.
15303         (cgraph_for_node_and_aliases): Likewise.
15304         (verify_cgraph_node): Likewise.
15305         * cgraph.h: Batch of IPA REF functions become member functions of
15306         symtab_node: add_reference, maybe_add_reference, clone_references,
15307         clone_referring, clone_reference, find_reference,
15308         remove_stmt_references, remove_all_references,
15309         remove_all_referring, dump_references, dump_referring,
15310         has_alias_p, iterate_reference, iterate_referring.
15311         * cgraphbuild.c (record_reference): New IPA REF function used.
15312         (record_type_list): Likewise.
15313         (record_eh_tables): Likewise.
15314         (mark_address): Likewise.
15315         (mark_load): Likewise.
15316         (mark_store): Likewise.
15317         (pass_build_cgraph_edges): Likewise.
15318         (rebuild_cgraph_edge): Likewise.
15319         (cgraph_rebuild_references): Likewise.
15320         (pass_remove_cgraph_callee_edges): Likewise.
15321         * cgraphclones.c (cgraph_clone_node): Likewise.
15322         (cgraph_create_virtual_clone): Likewise.
15323         (cgraph_materialize_clone): Likewise.
15324         (cgraph_materialize_all_clones): Likewise.
15325         * cgraphunit.c (cgraph_reset_node): Likewise.
15326         (cgraph_reset_node): Likewise.
15327         (analyze_function): Likewise.
15328         (assemble_thunks_and_aliases): Likewise.
15329         (expand_function): Likewise.
15330         * ipa-comdats.c (propagate_comdat_group): Likewise.
15331         (enqueue_references): Likewise.
15332         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
15333         (create_specialized_node): Likewise.
15334         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
15335         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
15336         * ipa-inline.c (reset_edge_caches): Likewise.
15337         (update_caller_keys): Likewise.
15338         (execute): Likewise.
15339         * ipa-prop.c (remove_described_reference): Likewise.
15340         (propagate_controlled_uses): Likewise.
15341         (ipa_edge_duplication_hook): Likewise.
15342         (ipa_modify_call_arguments): Likewise.
15343         * ipa-pure-const.c (propagate_pure_const): Likewise.
15344         * ipa-ref-inline.h: Header file removed, functions moved
15345         to symtab_node class.
15346         * ipa-ref.c (remove_reference): New class member function.
15347         (cannot_lead_to_return): New class member function.
15348         (referring_ref_list): Likewise.
15349         (referred_ref_list): Likewise.
15350         Rest of functions moved to symtab_node class.
15351         * ipa-ref.h: New member functions remove_reference,
15352         cannot_lead_to_return, referring_ref_list, referred_ref_list added
15353         to ipa_ref class.
15354         ipa_ref_list class has new member functions: first_reference,
15355         first_referring, clear, nreferences.
15356         * ipa-reference.c (analyze_function): New IPA REF function used.
15357         (write_node_summary_p): Likewise.
15358         (ipa_reference_write_optimization_summary): Likewise.
15359         * ipa-split.c (split_function): Likewise.
15360         * ipa-utils.c (ipa_reverse_postorder): Likewise.
15361         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
15362         (function_and_variable_visibility): Likewise.
15363         * ipa.c (has_addr_references_p): Likewise.
15364         (process_references): Argument type changed.
15365         (symtab_remove_unreachable_nodes): New IPA REF function used.
15366         (process_references): Likewise.
15367         (set_writeonly_bit): Likewise.
15368         * lto-cgraph.c: Implementation of new symtab_node member functions
15369         that uses new IPA REF functions.
15370         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
15371         function used.
15372         * lto-streamer-out.c (output_symbol_p): Likewise.
15373         * lto-streamer.h (referenced_from_this_partition_p): Argument type
15374         changed.
15375         * symtab.c: Implementation of new IPA REF API.
15376         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
15377         (ipa_tm_create_version): Likewise.
15378         (ipa_tm_execute): Likewise.
15379         * tree-emutls.c (gen_emutls_addr): Likewise.
15380         * tree-inline.c (copy_bb): Likewise.
15381         (delete_unreachable_blocks_update_callgraph): Likewise.
15382         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
15383         (varpool_for_node_and_aliases): Likewise.
15384
15385 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
15386
15387         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
15388
15389 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
15390
15391         PR bootstrap/61598
15392         * fold-const.c (fold_checksum_tree): Use a hash_table of const
15393         tree_node * instead of tree_node *.
15394         (fold): Adjust.
15395         (print_fold_checksum): Likewise.
15396         (fold_check_failed): Likewise.
15397         (debug_fold_checksum): Likewise.
15398         (fold_build1_stat_loc): Likewise.
15399         (fold_build2_stat_loc): Likewise.
15400         (fold_build3_stat_loc): Likewise.
15401         (fold_build_call_array_loc): Likewise.
15402
15403 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
15404
15405         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
15406         implementation with call to...
15407         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
15408         function.
15409         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
15410         Declare.
15411
15412 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
15413
15414         PR tree-optimization/57742
15415         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
15416         after replacing the statement.
15417
15418 2014-06-25  Nick Clifton  <nickc@redhat.com>
15419
15420         * config/v850/v850.c (GHS_default_section_names): Change to const
15421         char * type.
15422         (GHS_current_section_names): Likewise.
15423         (v850_insert_attributes): Do not build strings, just assign the
15424         names directly.  Change the type of 'chosen_section' to const
15425         char*.
15426         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
15427         directly to the array entry.
15428         * config/v850/v850.h (GHS_default_section_names): Change to const
15429         char * type.
15430         (GHS_current_section_names): Likewise.
15431
15432 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
15433
15434         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
15435         (LANG_HOOKS_DECLS): Add it.
15436         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
15437         has correct type.
15438         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
15439         * langhooks.h (struct lang_hooks_for_decls): Add
15440         omp_clause_linear_ctor hook.
15441         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
15442         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
15443         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
15444         combined simd loop use omp_clause_linear_ctor hook.
15445
15446 2014-06-24  Cong Hou  <congh@google.com>
15447
15448         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
15449         pattern recognition.
15450         (type_conversion_p): PROMOTION is true if it's a type promotion
15451         conversion, and false otherwise.  Return true if the given expression
15452         is a type conversion one.
15453         * tree-vectorizer.h: Adjust the number of patterns.
15454         * tree.def: Add SAD_EXPR.
15455         * optabs.def: Add sad_optab.
15456         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
15457         * expr.c (expand_expr_real_2): Likewise.
15458         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
15459         * gimple.c (get_gimple_rhs_num_ops): Likewise.
15460         * optabs.c (optab_for_tree_code): Likewise.
15461         * tree-cfg.c (estimate_operator_cost): Likewise.
15462         * tree-ssa-operands.c (get_expr_operands): Likewise.
15463         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
15464         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
15465         * doc/generic.texi: Add document for SAD_EXPR.
15466         * doc/md.texi: Add document for ssad and usad.
15467
15468 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15469
15470         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
15471         qualification in cast.
15472
15473 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
15474
15475         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
15476         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
15477         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
15478         (tree_function_decl): ... here.
15479         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
15480         streaming of vindex to ...
15481         (write_ts_function_decl_tree_pointers): ... here.
15482         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
15483         Do not stream DECL_VINDEX.
15484         (lto_input_ts_function_decl_tree_pointers): Stream it here.
15485
15486 2014-06-24  Catherine Moore  <clm@codesourcery.com>
15487             Sandra Loosemore  <sandra@codesourcery.com>
15488
15489         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
15490         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
15491         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
15492
15493 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
15494
15495         * doc/invoke.texi (Warning Options): Remove duplicated
15496         -Wmaybe-uninitialized.
15497
15498 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
15499
15500         PR tree-optimization/57742
15501         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
15502         (handle_builtin_malloc, handle_builtin_memset): New functions.
15503         (strlen_optimize_stmt): Call them.
15504         * passes.def: Move strlen after loop+dom but before vrp.
15505
15506 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
15507
15508         PR target/61570
15509         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
15510         model family 6 CPU with has_longmode never use a CPU without
15511         64-bit support.
15512
15513 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
15514
15515         PR target/61570
15516         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
15517         the last change.
15518
15519 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15520
15521         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
15522         * dominance.c (iterate_fix_dominators): Use hash_map instead of
15523         pointer_map.
15524         * hash-map.h: New file.
15525         * ipa-comdats.c: Use hash_map instead of pointer_map.
15526         * ipa.c: Likewise.
15527         * lto-section-out.c: Adjust.
15528         * lto-streamer.h: Replace pointer_map with hash_map.
15529         * symtab.c (verify_symtab): Likewise.
15530         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
15531         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
15532         * tree-streamer.h: Likewise.
15533         * tree-streamer.c: Adjust.
15534         * pointer-set.h: Remove pointer_map.
15535
15536 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15537
15538         * hash-table.h: Add a template arg to choose between storing values
15539         and storing pointers to values, and then provide partial
15540         specializations for both.
15541         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
15542         should store, not the type values should point to.
15543         * tree-into-ssa.c (var_info_hasher): Likewise.
15544         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
15545         * tree-complex.c: Adjust.
15546         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
15547         table instead of int_tree_map *.
15548         * tree-parloops.c: Adjust.
15549         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
15550         type is being stored.
15551         * tree-vectorizer.c: Adjust.
15552
15553 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15554
15555         * hash-table.h: Remove a layer of indirection from hash_table so that
15556         it contains the hash table's data instead of a pointer to the data.
15557         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
15558         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
15559         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
15560         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
15561         fold-const.c, gcse.c, ggc-common.c,
15562         gimple-ssa-strength-reduction.c, gimplify.c,
15563         graphite-clast-to-gimple.c, graphite-dependences.c,
15564         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
15565         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
15566         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
15567         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
15568         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
15569         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
15570         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
15571         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
15572         tree-ssa-live.c, tree-ssa-loop-im.c,
15573         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
15574         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
15575         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
15576         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
15577         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
15578         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
15579         vtable-verify.c, vtable-verify.h: Adjust.
15580
15581 2014-06-24  Richard Biener  <rguenther@suse.de>
15582
15583         PR tree-optimization/61572
15584         * tree-ssa-sink.c (statement_sink_location): Do not sink
15585         loads from hard registers.
15586
15587 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
15588
15589         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
15590         not mentioned in clauses use private clause if the iterator is
15591         declared in #pragma omp for simd, and when adding lastprivate
15592         instead, add it to the outer #pragma omp for too.  Diagnose
15593         if the variable is private in outer context.  For simd collapse > 1
15594         loops, replace all iterators with temporaries.
15595         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
15596         same even in collapse > 1 loops.
15597
15598         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
15599         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
15600         non-NULL.
15601         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
15602         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
15603         non-NULL.
15604         (gimplify_adjust_omp_clauses): Likewise.
15605         * omp-low.c (lower_rec_simd_input_clauses,
15606         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
15607         safelen the same as safelen(1).
15608         * tree-nested.c (convert_nonlocal_omp_clauses,
15609         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
15610         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
15611         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
15612         Fixup handling of GIMPLE_OMP_TARGET.
15613         (convert_tramp_reference_stmt, convert_gimple_call): Handle
15614         GIMPLE_OMP_TARGET.
15615
15616 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
15617
15618         PR tree-optimization/61554
15619         * tree-ssa-propagate.c: Include "bitmap.h".
15620         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
15621         properly update constructor/destructor.
15622         (substitute_and_fold_dom_walker::before_dom_children):
15623         Remove call to gimple_purge_dead_eh_edges, add bb->index to
15624         need_eh_cleaup instead.
15625         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
15626         need_eh_cleanup.
15627
15628 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
15629
15630         * varpool.c (dump_varpool_node): Dump used_by_single_function.
15631         * tree-pass.h (make_pass_ipa_single_use): New pass.
15632         * cgraph.h (used_by_single_function): New flag.
15633         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
15634         Stream it.
15635         * passes.def (pass_ipa_single_use): Scedule.
15636         * ipa.c (BOTTOM): New macro.
15637         (meet): New function
15638         (propagate_single_user): New function.
15639         (ipa_single_use): New function.
15640         (pass_data_ipa_single_use): New pass.
15641         (pass_ipa_single_use): New pass.
15642         (pass_ipa_single_use::gate): New gate.
15643         (make_pass_ipa_single_use): New function.
15644
15645 2014-06-23  Kai Tietz  <ktietz@redhat.com>
15646
15647         PR target/39284
15648         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
15649         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
15650
15651 2014-06-23  Richard Biener  <rguenther@suse.de>
15652
15653         * tree-ssa-loop.c (gate_loop): New function.
15654         (pass_tree_loop::gate): Call it.
15655         (pass_data_tree_no_loop, pass_tree_no_loop,
15656         make_pass_tree_no_loop): New.
15657         * tree-vectorizer.c: Include tree-scalar-evolution.c
15658         (pass_slp_vectorize::execute): Initialize loops and SCEV if
15659         required.
15660         (pass_slp_vectorize::clone): New method.
15661         * timevar.def (TV_TREE_NOLOOP): New.
15662         * tree-pass.h (make_pass_tree_no_loop): Declare.
15663         * passes.def (pass_tree_no_loop): New pass group with
15664         SLP vectorizer.
15665
15666 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
15667
15668         PR target/61570
15669         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
15670         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
15671
15672 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
15673
15674         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
15675         "yes" where needed.
15676
15677 2014-06-23  Alan Modra  <amodra@gmail.com>
15678
15679         PR bootstrap/61583
15680         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
15681         to zero on debug statements.
15682
15683 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
15684
15685         PR target/60825
15686         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
15687         Ignore third operand if present by marking qualifier_internal.
15688
15689         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
15690
15691         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
15692         vector extension.
15693         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
15694         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
15695         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
15696         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
15697         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
15698         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
15699         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
15700         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
15701         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
15702         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
15703         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
15704         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
15705         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
15706         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
15707         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
15708         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
15709         logic in GCC vector extensions
15710
15711         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
15712         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
15713         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
15714         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
15715         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
15716         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
15717         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
15718         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
15719         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
15720         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
15721
15722         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
15723
15724         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
15725         extensions.
15726
15727         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
15728         (vget_low_s64): Use __GET_LOW macro.
15729         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
15730         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
15731         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
15732         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
15733         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
15734
15735         (vcombine_s64): Use GCC vector extensions; remove cast.
15736         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
15737         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
15738         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
15739         Fix type signature; remove cast.
15740
15741 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
15742
15743         PR target/60825
15744         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
15745         V1DFmode.
15746         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
15747         add V1DFmode
15748         (BUILTIN_VD1): New.
15749         (BUILTIN_VD_RE): Remove.
15750         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
15751         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
15752         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
15753         variant but not df.
15754         (vreinterpretv1df*, vreinterpret*v1df): New.
15755         (vreinterpretdf*, vreinterpret*df): Remove.
15756         * config/aarch64/aarch64-simd.md (aarch64_create,
15757         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
15758         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
15759         (VD1): New.
15760         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
15761         (vcreate_f64): Remove cast, use v1df builtin.
15762         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
15763         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
15764         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
15765         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
15766         vmov_n_f64, vst1_f64): Use gcc vector extensions.
15767         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
15768         add range check using __builtin_aarch64_im_lane_boundsi.
15769         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
15770         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
15771         type signature, use gcc vector extensions.
15772         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
15773         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
15774         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
15775         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
15776         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
15777         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
15778         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
15779         vreinterpret_u64_f64): Use v1df builtin not df.
15780
15781 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
15782
15783         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
15784         vector registers.
15785
15786 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
15787
15788         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
15789         priority directly.
15790
15791 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
15792
15793         * loop-invariant.c (pre_check_invariant_p): New function.
15794         (find_invariant_insn): Call pre_check_invariant_p.
15795
15796 2014-06-22  Richard Henderson  <rth@redhat.com>
15797
15798         PR target/61565
15799         * compare-elim.c (struct comparison): Add eh_note.
15800         (find_comparison_dom_walker::before_dom_children): Don't eliminate
15801         a redundant comparison in a different EH region.  Purge EH edges if
15802         necessary.
15803
15804 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15805
15806         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
15807         (var_shift): Use it.
15808         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
15809         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
15810         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
15811         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
15812         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
15813         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
15814         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
15815         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
15816         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
15817         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
15818         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
15819         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
15820         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
15821         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
15822         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
15823         *rotldi3_internal15be): Use the new attribute.  Merge register and
15824         integer alternatives.
15825
15826 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15827
15828         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
15829         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
15830         split, *ashrdi3_internal3 and split): Delete, merge into...
15831         (ashr<mode>3): New expander.
15832         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
15833         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
15834
15835 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15836
15837         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
15838         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
15839         *rotldi3_internal3 and split): Delete, merge into...
15840         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
15841         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
15842         Use "rotlw" extended mnemonic.
15843
15844 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15845
15846         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
15847         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
15848         and split, *ashldi3_internal3 and split): Delete, merge into...
15849         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
15850         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
15851
15852 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15853
15854         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
15855         (lshrsi3, two anonymous define_insns and define_splits,
15856         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
15857         *lshrdi3_internal3 and split): Delete, merge into...
15858         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
15859         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
15860
15861 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15862
15863         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
15864         Remove "O" alternative.
15865
15866 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
15867
15868         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
15869         (mips_move_from_gpr_cost): Likewise.
15870         (mips_register_move_cost): Update accordingly.
15871         (mips_secondary_reload_class): Remove name of in_p.
15872
15873 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
15874
15875         PR target/61503
15876         * config/i386/i386.md (x86_64_shrd, x86_shrd,
15877         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
15878
15879 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
15880
15881         * config/nios2/nios2.c: Include "builtins.h".
15882
15883 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
15884
15885         * cgraph.h (tls_model_names): New variable.
15886         * print-tree.c (print_node): Simplify.
15887         * varpool.c (tls_model_names): New variable.
15888         (dump_varpool_node): Output tls model.
15889
15890 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
15891
15892         * ipa-visibility.c (function_and_variable_visibility): Disable
15893         temporarily local aliases for some targets.
15894
15895 2014-06-20  Marek Polacek  <polacek@redhat.com>
15896
15897         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
15898         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
15899         into SANITIZE_UNDEFINED.
15900         * doc/invoke.texi: Describe -fsanitize=bounds.
15901         * gimplify.c (gimplify_call_expr): Add gimplification of internal
15902         functions created in the FEs.
15903         * internal-fn.c: Move "internal-fn.h" after "tree.h".
15904         (expand_UBSAN_BOUNDS): New function.
15905         * internal-fn.def (UBSAN_BOUNDS): New internal function.
15906         * internal-fn.h: Don't define internal functions here.
15907         * opts.c (common_handle_option): Add -fsanitize=bounds.
15908         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
15909         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
15910         * tree-core.h: Define internal functions here.
15911         (struct tree_base): Add ifn field.
15912         * tree-pretty-print.c: Include "internal-fn.h".
15913         (dump_generic_node): Handle functions without CALL_EXPR_FN.
15914         * tree.c (get_callee_fndecl): Likewise.
15915         (build_call_expr_internal_loc): New function.
15916         * tree.def (CALL_EXPR): Update description.
15917         * tree.h (CALL_EXPR_IFN): Define.
15918         (build_call_expr_internal_loc): Declare.
15919         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
15920         types.
15921         (ubsan_type_descriptor): Change bool parameter to enum
15922         ubsan_print_style.  Adjust the code.  Add handling of
15923         UBSAN_PRINT_ARRAY.
15924         (ubsan_expand_bounds_ifn): New function.
15925         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
15926         (ubsan_build_overflow_builtin): Likewise.
15927         (instrument_bool_enum_load): Likewise.
15928         (ubsan_instrument_float_cast): Likewise.
15929         * ubsan.h (enum ubsan_print_style): New enum.
15930         (ubsan_expand_bounds_ifn): Declare.
15931         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
15932
15933 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
15934
15935         * config/rs6000/rs6000.md: Append `DONE' to preparation
15936         statements of `bswap' pattern splitters.
15937
15938 2014-06-20  Tom de Vries  <tom@codesourcery.com>
15939
15940         * target.def (call_fusage_contains_non_callee_clobbers): Update
15941         definition.
15942         * doc/tm.texi: Regenerate.
15943
15944 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
15945             Max Ostapenko  <m.ostapenko@partner.samsung.com>
15946
15947         PR sanitizer/61547
15948         * asan.c (instrument_strlen_call): Fixed instrumentation of
15949         trailing byte.
15950
15951 2014-06-20  Martin Jambor  <mjambor@suse.cz>
15952
15953         PR ipa/61540
15954         * ipa-prop.c (impossible_devirt_target): New function.
15955         (try_make_edge_direct_virtual_call): Use it, also instead of
15956         asserting.
15957
15958 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
15959             Max Ostapenko  <m.ostapenko@partner.samsung.com>
15960
15961         PR sanitizer/61530
15962         * asan.c (build_check_stmt): Add condition.
15963
15964 2014-06-20  Martin Jambor  <mjambor@suse.cz>
15965
15966         PR ipa/61211
15967         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
15968         expanded clones.
15969
15970 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15971
15972         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
15973         Update comments.
15974         (VCONQ): Make comment more helpful.
15975         (VCON): Delete.
15976         * config/aarch64/aarch64-simd.md
15977         (aarch64_sqdmulh_lane<mode>):
15978         Use VCOND for operands 2.  Update lane checking and flipping logic.
15979         (aarch64_sqrdmulh_lane<mode>): Likewise.
15980         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
15981         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
15982         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
15983         attribute of operand 3 to VCOND.
15984         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
15985         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
15986         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
15987         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
15988         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
15989         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
15990         define_insn.
15991         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
15992         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
15993         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
15994         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
15995         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
15996         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
15997         operand to VCOND.  Update lane flipping and bounds checking logic.
15998         (aarch64_sqdmlal2_lane<mode>): Likewise.
15999         (aarch64_sqdmlsl_lane<mode>): Likewise.
16000         (aarch64_sqdmull_lane<mode>): Likewise.
16001         (aarch64_sqdmull2_lane<mode>): Likewise.
16002         (aarch64_sqdmlal_laneq<mode>):
16003         Replace VCON usage with VCONQ.
16004         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
16005         (aarch64_sqdmlal2_laneq<mode>): Emit
16006         aarch64_sqdmlal2_laneq<mode>_internal insn.
16007         Replace VCON with VCONQ.
16008         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
16009         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
16010         (aarch64_sqdmull_laneq<mode>): Emit
16011         aarch64_sqdmull_laneq<mode>_internal insn.
16012         Replace VCON with VCONQ.
16013         (aarch64_sqdmull2_laneq<mode>): Emit
16014         aarch64_sqdmull2_laneq<mode>_internal insn.
16015         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
16016         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
16017         of 3rd argument to int16x4_t.
16018         (vqdmlalh_lane_s16): Likewise.
16019         (vqdmlslh_lane_s16): Likewise.
16020         (vqdmull_high_lane_s16): Likewise.
16021         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
16022         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
16023         (vqdmlsl_lane_s16): Likewise.
16024         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
16025         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
16026         (vqdmlals_lane_s32): Likewise.
16027         (vqdmlsls_lane_s32): Likewise.
16028         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
16029         (vqdmulls_lane_s32): Likewise.
16030         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
16031         (vqdmlsl_lane_s32): Likewise.
16032         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
16033         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
16034         (vqrdmulhh_lane_s16): Likewise.
16035         (vqdmlsl_high_lane_s16): Likewise.
16036         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
16037         (vqdmlsl_high_lane_s32): Likewise.
16038         (vqrdmulhs_lane_s32): Likewise.
16039
16040 2014-06-20  Tom de Vries  <tom@codesourcery.com>
16041
16042         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
16043         get_call_reg_set_usage.
16044
16045 2014-06-20  Tom de Vries  <tom@codesourcery.com>
16046
16047         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
16048         it contains all call_used_regs.
16049
16050 2014-06-20  Tom de Vries  <tom@codesourcery.com>
16051
16052         * final.c (collect_fn_hard_reg_usage): Add and use variable
16053         function_used_regs.
16054
16055 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
16056
16057         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
16058         (set_init_priority, get_init_priority, set_fini_priority,
16059         get_fini_priority): New methods.
16060         * tree.c (init_priority_for_decl): Remove.
16061         (init_ttree): Do not initialize init priority.
16062         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
16063         (decl_priority_info): Remove.
16064         (decl_init_priority_insert): Rewrite.
16065         (decl_fini_priority_insert): Rewrite.
16066         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
16067         tree_priority_map_marked_p): Remove.
16068         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
16069         * lto-streamer-out.c (hash_tree): Do not hash priorities.
16070         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
16071         not output priorities.
16072         (pack_ts_function_decl_value_fields): Likewise.
16073         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
16074         not input priorities.
16075         (unpack_ts_function_decl_value_fields): Likewise.
16076         * symtab.c (symbol_priority_map): Declare.
16077         (init_priority_hash): Declare.
16078         (symtab_unregister_node): Unregister from priority hash, too.
16079         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
16080         New methods.
16081         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
16082         (symbol_priority_info): New function.
16083         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
16084         New methods.
16085         * tree-core.h (tree_priority_map): Remove.
16086
16087 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
16088
16089         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
16090         0xff to uint64_t before shifting it up.
16091
16092 2014-06-20  Julian Brown  <julian@codesourcery.com>
16093             Chung-Lin Tang  <cltang@codesourcery.com>
16094
16095         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
16096         TARGET_THUMB1_ONLY. Add comments.
16097
16098 2014-06-19  Tom de Vries  <tom@codesourcery.com>
16099
16100         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
16101         return type to void.
16102         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
16103
16104 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
16105
16106         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
16107         as "move", from depends_on.
16108
16109 2014-06-19  Terry Guo  <terry.guo@arm.com>
16110
16111         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
16112         stage.
16113
16114 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
16115
16116         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
16117         Remove cr5.
16118         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
16119
16120 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
16121
16122         PR target/61550
16123         * config/sh/sh.c (prepare_move_operands): Don't process TLS
16124         addresses here if reload in progress or completed.
16125
16126 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
16127
16128         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
16129         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
16130         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
16131         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
16132         (mips_register_priority): New function that implements the target
16133         hook TARGET_REGISTER_PRIORITY.
16134         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
16135         (mips_lra_p): Likewise for TARGET_LRA_P.
16136         (TARGET_REGISTER_PRIORITY): Define macro.
16137         (TARGET_SPILL_CLASS): Likewise.
16138         (TARGET_LRA_P): Likewise.
16139         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
16140         classes.
16141         (REG_CLASS_NAMES): Likewise.
16142         (REG_CLASS_CONTENTS): Likewise.
16143         (BASE_REG_CLASS): Use M16_SP_REGS.
16144         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
16145         New set attribute to enable alternatives depending on the register
16146         allocator used.
16147         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
16148         (*lea64): Disable pattern for MIPS16.
16149         * config/mips/mips.opt (mlra): New option.
16150
16151 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
16152
16153         * lra-constraints.c (base_to_reg): New function.
16154         (process_address): Use new function.
16155
16156 2014-06-18  Tom de Vries  <tom@codesourcery.com>
16157
16158         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
16159         * config/aarch64/aarch64.c
16160         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
16161         (aarch64_emit_call_insn): New function.
16162         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
16163         of emit_call_insn.
16164         * config/aarch64/aarch64.md (define_expand "call_internal")
16165         (define_expand "call_value_internal", define_expand "sibcall_internal")
16166         (define_expand "sibcall_value_internal"): New.
16167         (define_expand "call", define_expand "call_value")
16168         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
16169         expand variant and aarch64_emit_call_insn.
16170
16171 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
16172             Tom de Vries  <tom@codesourcery.com>
16173
16174         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
16175         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
16176         Redefine to true.
16177         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
16178         clobbers to CALL_INSN_FUNCTION_USAGE.
16179         (define_expand "sibcall_internal")
16180         (define_expand "sibcall_value_internal"): New.
16181         (define_expand "call", define_expand "call_value"): Add argument to
16182         arm_emit_call_insn.
16183         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
16184         (define_expand "sibcall_value"): Use sibcall_value_internal and
16185         arm_emit_call_insn.
16186
16187 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16188
16189         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
16190
16191 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16192
16193         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
16194         __udivmoddi4.
16195
16196 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16197
16198         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
16199         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
16200         annotations. Fix DWARF information.
16201
16202 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16203
16204         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
16205         __udivmoddi4, and fixups for negative operands.
16206
16207 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16208
16209         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
16210
16211 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16212
16213         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
16214         to __udivmoddi4.
16215
16216 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16217
16218         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
16219         manipulation.
16220
16221 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16222
16223         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
16224         describing register usage on function entry and exit.
16225
16226 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16227
16228         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
16229         (__aeabi_ldivmod): Fix whitespace.
16230
16231 2014-06-18  Andreas Schwab  <schwab@suse.de>
16232
16233         * doc/md.texi (Standard Names): Use @itemx for grouped items.
16234         Remove blank line after @item.
16235
16236 2014-06-18  Richard Henderson  <rth@redhat.com>
16237
16238         PR target/61545
16239         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
16240
16241 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16242
16243         * config/arm/arm.c (neon_vector_mem_operand): Allow register
16244         POST_MODIFY for neon loads and stores.
16245         (arm_print_operand): Output post-index register for neon loads and
16246         stores.
16247
16248 2014-06-18  Richard Biener  <rguenther@suse.de>
16249
16250         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
16251
16252 2014-06-18  Richard Biener  <rguenther@suse.de>
16253
16254         * tree-pass.h (make_pass_dce_loop): Remove.
16255         * passes.def: Replace pass_dce_loop with pass_dce.
16256         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
16257         changed free niter estimates and reset the scev cache.
16258         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
16259         make_pass_dce_loop): Remove.
16260         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
16261         (fini_copy_prop): Return whether something changed.  Always
16262         let substitute_and_fold perform DCE and free niter estimates
16263         and reset the scev cache if so.
16264         (execute_copy_prop): If sth changed schedule cleanup-cfg.
16265         (pass_data_copy_prop): Do not unconditionally schedule
16266         cleanup-cfg or update-ssa.
16267
16268 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
16269
16270         PR tree-optimization/61518
16271         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
16272         reduction var is used in reduction stmt or phi-function only.
16273
16274 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16275
16276         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
16277
16278 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16279
16280         PR tree-optimization/61517
16281         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
16282         whose rhs's first tree is the source expression instead of the
16283         expression itself.
16284         (find_bswap_or_nop): Likewise.
16285         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
16286         gimple stmt whose rhs's first tree is the source. In the memory source
16287         case, move the stmt to be replaced close to one of the original load to
16288         avoid the problem of a store between the load and the stmt's original
16289         location.
16290         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
16291         signature.
16292
16293 2014-06-18  Andreas Schwab  <schwab@suse.de>
16294
16295         PR rtl-optimization/54555
16296         * postreload.c (move2add_use_add2_insn): Substitute
16297         STRICT_LOW_PART only if it is cheaper.
16298
16299 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
16300
16301         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
16302         Do not use unspec as call operand.  Use memory_operand instead of
16303         memory_nox32_operand and add "m" operand constraint.  Disable
16304         pattern for TARGET_X32.
16305         (*sibcall_pop_memory): Ditto.
16306         (*sibcall_value_memory): Ditto.
16307         (*sibcall_value_pop_memory): Ditto.
16308         (sibcall peepholes): Merge SImode and DImode patterns using
16309         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
16310         Disable pattern for TARGET_X32.  Check if eliminated register is
16311         really dead after call insn.  Generate call RTX without unspec operand.
16312         (sibcall_value peepholes): Ditto.
16313         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
16314         instead of memory_nox32_operand.  Check if eliminated register is
16315         really dead after call insn. Generate call RTX without unspec operand.
16316         (sibcall_value_pop peepholes): Ditto.
16317         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
16318
16319 2014-06-18  Terry Guo  <terry.guo@arm.com>
16320
16321         PR target/61544
16322         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
16323         reach the head.
16324
16325 2014-06-18  Olivier Hainque  <hainque@adacore.com>
16326
16327         * tree-core.h (tree_block): Add an "end_locus" field, allowing
16328         memorization of the end of block source location.
16329         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
16330         * gimplify.c (gimplify_bind_expr): Propagate the block start and
16331         end source location info we have on the block entry/exit code we
16332         generate.
16333
16334 2014-06-18  Richard Biener  <rguenther@suse.de>
16335
16336         * common.opt (fssa-phiopt): New option.
16337         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
16338         but not with -Og.
16339         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
16340         * doc/invoke.texi (-fssa-phiopt): Document.
16341
16342 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16343
16344         * genattrtab.c (n_bypassed): New variable.
16345         (process_bypasses): Initialise n_bypassed.
16346         Count number of bypassed reservations.
16347         (make_automaton_attrs): Allocate space for bypassed reservations
16348         rather than number of bypasses.
16349
16350 2014-06-18  Richard Biener  <rguenther@suse.de>
16351
16352         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
16353         we propagated anything.
16354         (substitute_and_fold_dom_walker::before_dom_children): Something
16355         changed if we propagated into PHI arguments.
16356         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
16357         we removed a stmt.
16358
16359 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
16360
16361         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
16362         vector case.
16363         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
16364         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
16365         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
16366         Introduces alternative way of loads group permutaions.
16367         (vect_transform_grouped_load): Try alternative way of permutations.
16368
16369 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
16370
16371         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
16372         changed in ORT_TARGET region, don't jump to do_outer.
16373         (struct gimplify_adjust_omp_clauses_data): New type.
16374         (gimplify_adjust_omp_clauses_1): Adjust for data being
16375         a struct gimplify_adjust_omp_clauses_data pointer instead
16376         of tree *.  Pass pre_p as a new argument to
16377         lang_hooks.decls.omp_finish_clause hook.
16378         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
16379         splay_tree_foreach to pass both list_p and pre_p.
16380         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
16381         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
16382         gimplify_adjust_omp_clauses callers.
16383         * langhooks.c (lhd_omp_finish_clause): New function.
16384         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
16385         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
16386         * langhooks.h (struct lang_hooks_for_decls): Add a new
16387         gimple_seq * argument to omp_finish_clause hook.
16388         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
16389         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
16390         (scan_omp_parallel, lower_omp_for): When adding
16391         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
16392         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
16393         * tree-nested.c (convert_nonlocal_omp_clauses,
16394         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
16395         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
16396
16397 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
16398
16399         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
16400         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
16401
16402 2014-06-17  Xinliang David Li  <davidxl@google.com>
16403
16404         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
16405         * passes.c (pass_init_dump_file): Do not set initialize
16406         flag to false unconditionally.
16407
16408 2014-06-17  Richard Biener  <rguenther@suse.de>
16409
16410         * genopinit.c (main): Use vec<>::qsort method.
16411         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
16412         Likewise.
16413         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
16414
16415 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
16416
16417         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
16418         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
16419         (mips_move_to_gpr_cost): Remove ST_REGS case.
16420         (mips_move_from_gpr_cost): Likewise.
16421         (mips_register_move_cost): Likewise.
16422         (mips_secondary_reload_class): Likewise.
16423
16424 2014-06-17  Richard Biener  <rguenther@suse.de>
16425
16426         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
16427         (pass_all_optimizations): Move 3rd copy-prop pass from after
16428         fre to before ifcombine/phiopt.
16429
16430 2014-06-17  Richard Biener  <rguenther@suse.de>
16431
16432         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
16433         and allow all blocks to be forwarders.
16434
16435 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
16436
16437         PR target/61483
16438         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
16439         variable 'size'; calculate 'size' right in the front; use
16440         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
16441         pcum->aapcs_stack_words.
16442
16443 2014-06-17  Nick Clifton  <nickc@redhat.com>
16444
16445         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
16446         (umulhi3, mulsidi3, umulsidi3): Likewise.
16447
16448 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
16449
16450         PR middle-end/61508
16451         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
16452         check for section name.
16453
16454 2014-06-17  Richard Biener  <rguenther@suse.de>
16455
16456         * tree-ssa-propagate.c: Include domwalk.h.
16457         (substitute_and_fold): Outline main worker into a domwalker ...
16458         (substitute_and_fold_dom_walker::before_dom_children): ... here.
16459         Schedule stmts we can fully propagate for removal.  Remove
16460         poor-mans DCE.
16461         (substitute_and_fold): Apply a dominator walk to perform
16462         substitution.  Process stmts scheduled for removal here.
16463
16464 2014-06-17  Richard Biener  <rguenther@suse.de>
16465
16466         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
16467         of PHI node moving.
16468
16469 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
16470
16471         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
16472         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
16473         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
16474         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
16475         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
16476         TARGET_HARD_FLOAT.
16477         (get_fpscr) : Likewise.
16478
16479 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
16480
16481         PR rtl-optimization/61325
16482         * lra-constraints.c (valid_address_p): Add forward declaration.
16483         (simplify_operand_subreg): Check address validity before and after
16484         alter_reg of memory subreg.
16485
16486 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
16487
16488         * config/i386/i386.c (decide_alg): Correctly handle
16489         maximum size of stringop algorithm.
16490
16491 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
16492
16493         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
16494
16495 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
16496
16497         PR rtl-optimization/61522
16498         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
16499
16500 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
16501
16502         Revert:
16503         * symtab.c (symtab_node::reset_section): New method.
16504         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
16505         for localization.
16506         * cgraph.h (reset_section): Declare.
16507         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
16508         do not consider comdat locals.
16509         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
16510         for new symbol.
16511         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
16512         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
16513         reset sections of symbols dragged out of the comdats.
16514         (function_and_variable_visibility): Reset sections of
16515         localized symbols.
16516
16517 2014-06-16  Richard Biener  <rguenther@suse.de>
16518
16519         PR tree-optimization/61482
16520         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
16521         [-INF(OVF), +INF(OVF)] range.
16522
16523 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16524
16525         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
16526         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
16527         handling 32-bit multiplication.
16528
16529 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
16530
16531         PR middle-end/61430
16532         * lra-lives.c (process_bb_lives): Skip creating copy during
16533         insn scan when src/dest has constrained to same regno.
16534
16535 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
16536
16537         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
16538         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
16539
16540 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
16541
16542         * asan.c (check_func): New function.
16543         (maybe_create_ssa_name): Likewise.
16544         (build_check_stmt_with_calls): Likewise.
16545         (use_calls_p): Likewise.
16546         (report_error_func): Change interface.
16547         (build_check_stmt): Allow non-integer lengths; add support
16548         for new parameter.
16549         (asan_instrument): Likewise.
16550         (instrument_mem_region_access): Moved code to build_check_stmt.
16551         (instrument_derefs): Likewise.
16552         (instrument_strlen_call): Likewise.
16553         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
16554         * doc/invoke.texi: Describe new parameter.
16555         * params.def: Define new parameter.
16556         * params.h: Likewise.
16557         * sanitizer.def: Describe new builtins.
16558
16559 2014-06-16  Richard Biener  <rguenther@suse.de>
16560
16561         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16562         Make all defs available at the end.
16563         (eliminate): If we remove a PHI node schedule cfg-cleanup.
16564
16565 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
16566
16567         PR plugins/45078
16568         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
16569
16570 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
16571
16572         PR bootstrap/61516
16573         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
16574         initialization.  Replace remaining use of uid.
16575
16576 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
16577
16578         * c-family/c-common.c (handle_tls_model_attribute): Use
16579         set_decl_tls_model.
16580         * c-family/c-common.c (handle_tls_model_attribute): Use
16581         set_decl_tls_model.
16582         * cgraph.h (struct varpool_node): Add tls_model.
16583         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
16584         * tree.h (DECL_TLS_MODEL): Update.
16585         (DECL_THREAD_LOCAL_P): Check that variable is static.
16586         (decl_tls_model): Declare.
16587         (set_decl_tls_model): Declare.
16588         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
16589         set symbol prorperties.
16590         (get_emutls_init_templ_addr): Cleanup.
16591         (new_emutls_decl): Update.
16592         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
16593         (lto_input_varpool_node): Likewise.
16594         * lto-streamer-out.c (hash_tree): Likewise.
16595         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
16596         not stream DECL_TLS_MODEL.
16597         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
16598         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
16599
16600 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16601
16602         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
16603
16604 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16605
16606         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
16607         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
16608         lists.
16609         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
16610         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
16611         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
16612         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
16613         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
16614         (df_get_artificial_defs, df_get_artificial_uses)
16615         (df_single_def, df_single_use): Update accordingly.
16616         (df_refs_chain_dump): Take the first element in a linked list as
16617         parameter, rather than a pointer to an array of pointers.
16618         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
16619         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
16620         (df_chain_create_bb_process_use): Likewise.
16621         (df_md_bb_local_compute_process_def): Likewise.
16622         * fwprop.c (process_defs, process_uses): Likewise.
16623         (register_active_defs, update_uses): Likewise.
16624         (forward_propagate_asm): Update for new df_ref linking.
16625         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
16626         (df_null_ref_rec, df_null_mw_rec): Likewise.
16627         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
16628         explicitly.
16629         (df_scan_free_bb_info): Remove check for null artificial_defs.
16630         (df_install_ref_incremental): Adjust for new df_ref linking.
16631         Use a single-element insertion rather than a full sort.
16632         (df_ref_chain_delete_du_chain): Take the first element
16633         in a linked list as parameter, rather than a pointer to an array of
16634         pointers.
16635         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
16636         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
16637         (df_insn_info_delete): Remove check for null defs and call to
16638         df_scan_free_mws_vec.
16639         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
16640         null rather than df_null_*_rec.
16641         (df_insn_rescan_debug_internal): Likewise, and update null
16642         checks in the same way.  Remove check for null defs.
16643         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
16644         Move a single element rather doing a full sort.
16645         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
16646         linking.
16647         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
16648         Initialize df_ref and df_mw_hardreg lists to null rather than
16649         df_null_*_rec.
16650         (df_ref_compare): Take df_refs as parameter, transferring the
16651         old interface to...
16652         (df_ref_ptr_compare): ...this new function.
16653         (df_sort_and_compress_refs): Update accordingly.
16654         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
16655         old interface to...
16656         (df_mw_ptr_compare): ...this new function.
16657         (df_sort_and_compress_mws): Update accordingly.
16658         (df_install_refs, df_install_mws): Return a linked list rather than
16659         an array of pointers.
16660         (df_refs_add_to_chains): Assert that old lists are empty rather
16661         than freeing them.
16662         (df_insn_refs_verify): Don't handle null defs speciailly.
16663         * web.c (union_match_dups): Update for new df_ref linking.
16664
16665 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16666
16667         * df.h (df_ref_create, df_ref_remove): Delete.
16668         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
16669         (df_ref_remove): Likewise.
16670
16671 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16672
16673         * df.h (df_single_def, df_single_use): New functions.
16674         * ira.c (find_moveable_pseudos): Use them.
16675
16676 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16677
16678         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
16679         * df-problems.c (df_note_bb_compute): Use it.
16680         * regstat.c (regstat_bb_compute_ri): Likewise.
16681
16682 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16683
16684         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
16685         * cse.c (cse_extended_basic_block): Use them.
16686         * dce.c (mark_artificial_use): Likewise.
16687         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
16688         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
16689         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
16690         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
16691         (df_simulate_initialize_backwards): Likewise.
16692         (df_simulate_finalize_backwards): Likewise.
16693         (df_simulate_initialize_forwards): Likewise.
16694         (df_md_simulate_artificial_defs_at_top): Likewise.
16695         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
16696         * regrename.c (init_rename_info): Likewise.
16697         * regstat.c (regstat_bb_compute_ri): Likewise.
16698         (regstat_bb_compute_calls_crossed): Likewise.
16699
16700 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16701
16702         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
16703         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
16704         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
16705         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
16706         * combine.c (create_log_links): Likewise.
16707         * compare-elim.c (find_flags_uses_in_insn): Likewise.
16708         (try_eliminate_compare): Likewise.
16709         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
16710         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
16711         (remove_reg_equal_equiv_notes_for_defs): Likewise.
16712         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
16713         (word_dce_process_block, dce_process_block): Likewise.
16714         * ddg.c (def_has_ccmode_p): Likewise.
16715         * df-core.c (df_bb_regno_first_def_find): Likewise.
16716         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
16717         * df-problems.c (df_rd_simulate_one_insn): Likewise.
16718         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
16719         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
16720         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
16721         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
16722         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
16723         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
16724         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
16725         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
16726         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
16727         * fwprop.c (local_ref_killed_between_p): Likewise.
16728         (all_uses_available_at, free_load_extend): Likewise.
16729         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
16730         * hw-doloop.c (scan_loop): Likewise.
16731         * ifcvt.c (dead_or_predicable): Likewise.
16732         * init-regs.c (initialize_uninitialized_regs): Likewise.
16733         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
16734         (process_bb_node_lives): Likewise.
16735         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
16736         (find_moveable_pseudos): Likewise.
16737         * loop-invariant.c (check_dependencies, record_uses): Likewise.
16738         * recog.c (peep2_find_free_register): Likewise.
16739         * ree.c (get_defs): Likewise.
16740         * regstat.c (regstat_bb_compute_ri): Likewise.
16741         (regstat_bb_compute_calls_crossed): Likewise.
16742         * sched-deps.c (find_inc, find_mem): Likewise.
16743         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
16744         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
16745         * shrink-wrap.c (requires_stack_frame_p): Likewise.
16746         (prepare_shrink_wrap): Likewise.
16747         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
16748         * web.c (union_defs, pass_web::execute): Likewise.
16749         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
16750         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
16751
16752 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
16753
16754         * lra-assign.c (assign_by_spills): Add code to assign vector regs
16755         to inheritance pseudos.
16756         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
16757
16758 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
16759
16760         PR target/61415
16761         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
16762         (BU_MISC_2): Rename to ...
16763         (BU_LDBL128_2): ... this.
16764         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
16765         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
16766         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
16767         RS6000_BTM_LDBL128.
16768         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
16769         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
16770         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
16771         (unpacktf_1): Likewise.
16772         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
16773         (__builtin_longdouble_dw1): Likewise.
16774         * doc/sourcebuild.texi (longdouble128): Document.
16775
16776 2014-06-13  Jeff Law  <law@redhat.com>
16777
16778         PR rtl-optimization/61094
16779         PR rtl-optimization/61446
16780         * ree.c (combine_reaching_defs): Get the mode for the copy from
16781         the extension insn rather than the defining insn.
16782
16783 2014-06-13  Dehao Chen  <dehao@google.com>
16784
16785         * dwarf2out.c (add_linkage_name): Emit more linkage name.
16786
16787 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
16788
16789         * doc/install.texi (--enable-linker-plugin-configure-flags)
16790         (--enable-linker-plugin-flags): Document new flags.
16791
16792 2014-06-13  Martin Jambor  <mjambor@suse.cz>
16793
16794         PR ipa/61186
16795         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
16796         cache_token if returning early.
16797
16798 2014-06-13  Nick Clifton  <nickc@redhat.com>
16799
16800         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
16801         requested alignment is active.
16802         (LABEL_ALIGN): Likewise.
16803         (LOOP_ALIGN): Likewise.
16804
16805 2014-06-13  Richard Biener  <rguenther@suse.de>
16806
16807         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16808         Rewrite to propagate the VN result into all uses where
16809         possible and to remove stmts becoming dead because of that.
16810         (eliminate): Generalize stmt removal handling, remove in
16811         reverse dominator order to support proper debug stmt
16812         generation.  Update stmts before removing stmts.
16813         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
16814
16815 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16816
16817         PR tree-optimization/61375
16818         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
16819         symbolic number cannot be represented in an uint64_t.
16820         (find_bswap_or_nop_1): Likewise.
16821
16822 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
16823
16824         * symtab.c (symtab_node::reset_section): New method.
16825         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
16826         for localization.
16827         * cgraph.h (reset_section): Declare.
16828         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
16829         do not consider comdat locals.
16830         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
16831         for new symbol.
16832         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
16833         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
16834         reset sections of symbols dragged out of the comdats.
16835         (function_and_variable_visibility): Reset sections of
16836         localized symbols.
16837
16838 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
16839
16840         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
16841         to use symtab and decl_binds_to_current_def_p
16842         * tree-vectorizer.c (increase_alignment): Increase alignment
16843         of alias target, too.
16844
16845 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
16846
16847         PR middle-end/61486
16848         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
16849         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
16850         if outer combined construct is distribute.
16851         (gimplify_omp_for): For OMP_DISTRIBUTE set
16852         gimplify_omp_ctxp->distribute.
16853         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
16854         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
16855         mapping into decl map.
16856
16857 2014-06-12  Jason Merrill  <jason@redhat.com>
16858
16859         * common.opt (fabi-version): Change default to 0.
16860
16861 2014-06-12  Jason Merrill  <jason@redhat.com>
16862
16863         * toplev.c (process_options): Reject -fabi-version=1.
16864
16865 2014-06-12  Jeff Law  <law@redhat.com>
16866
16867         PR tree-optimization/61009
16868         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
16869         value when we stop processing a block due to problematic PHIs.
16870
16871 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
16872
16873         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
16874         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
16875         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
16876         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
16877         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
16878         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
16879         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
16880         are not in the spec.
16881
16882 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
16883
16884         PR target/59843
16885         * config/aarch64/aarch64-modes.def: Add V1DFmode.
16886         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
16887         Support V1DFmode.
16888
16889 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
16890
16891         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
16892
16893 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
16894
16895         PR target/61443
16896         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
16897         loading from address spaces.
16898
16899 2014-06-12  Martin Liska  <mliska@suse.cz>
16900
16901         PR ipa/61462
16902         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
16903         statement is reachable.
16904
16905 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
16906
16907         * symtab.c (section_hash): New hash.
16908         (symtab_unregister_node): Clear section before freeing.
16909         (hash_section_hash_entry): New haser.
16910         (eq_sections): New function.
16911         (symtab_node::set_section_for_node): New method.
16912         (set_section_1): Update.
16913         (symtab_node::set_section): Take string instead of tree as parameter.
16914         (symtab_resolve_alias): Update.
16915         * cgraph.h (section_hash_entry_d): New structure.
16916         (section_hash_entry): New typedef.
16917         (cgraph_node): Change comdat_group_ to x_comdat_group,
16918         change section_ to x_section and turn into section_hash_entry;
16919         update accestors; put set_section_for_node offline.
16920         * tree.c (decl_section_name): Turn into string.
16921         (set_decl_section_name): Change parameter to be string.
16922         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
16923         * sdbout.c (sdbout_one_type): Update.
16924         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
16925         * varasm.c (IN_NAMED_SECTION, get_named_section,
16926         resolve_unique_section, hot_function_section, get_named_text_section,
16927         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
16928         make_decl_rtl, default_unique_section): Update.
16929         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
16930         (c6x_elf_unique_section): Update.
16931         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
16932         * config/pa/pa.c (pa_function_section): Update.
16933         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
16934         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
16935         * config/arc/arc.c (arc_in_small_data_p): Update.
16936         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
16937         * config/mcore/mcore.c (mcore_unique_section): Update.
16938         * config/mips/mips.c (mips16_build_function_stub): Update.
16939         (mips16_build_call_stub): Update.
16940         (mips_function_rodata_section): Update.
16941         (mips_in_small_data_p): Update.
16942         * config/score/score.c (score_in_small_data_p): Update.
16943         * config/rx/rx.c (rx_in_small_data): Update.
16944         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
16945         (rs6000_xcoff_asm_named_section): Update.
16946         (rs6000_xcoff_unique_section): Update.
16947         * config/frv/frv.c (frv_string_begins_with): Update.
16948         (frv_in_small_data_p): Update.
16949         * config/v850/v850.c (v850_encode_data_area): Update.
16950         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
16951         (bfin_handle_l1_data_attribute): Update.
16952         (bfin_handle_l2_attribute): Update.
16953         * config/mep/mep.c (mep_unique_section): Update.
16954         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
16955         Update.
16956         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
16957         (h8300_handle_tiny_data_attribute): Update.
16958         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
16959         (m32r_in_small_data_p): Update.
16960         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
16961         * config/i386/i386.c (ix86_in_large_data_p): Update.
16962         * config/i386/winnt.c (i386_pe_unique_section): Update.
16963         * config/darwin.c (darwin_function_section): Update.
16964         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
16965         * tree-emutls.c (get_emutls_init_templ_addr): Update.
16966         (new_emutls_decl): Update.
16967         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
16968         input_varpool_node): Update.
16969         (ead_string_cst): Turn to ...
16970         (read_string): ... this one.
16971         * dwarf2out.c (secname_for_decl): Update.
16972         * asan.c (asan_protect_global): Update.
16973
16974 2014-06-11  DJ Delorie  <dj@redhat.com>
16975
16976         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
16977         cache lines.
16978         * config/rx/rx.c (rx_option_override): Likewise.
16979         (rx_align_for_label): Likewise.
16980
16981         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
16982
16983 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
16984
16985         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
16986         prototype.
16987
16988 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
16989
16990         * common.md: New file.
16991         * doc/md.texi: Update description of generic, machine-independent
16992         constraints.
16993         * config/s390/constraints.md (e): Delete.
16994         * Makefile.in (md_file): Include common.md.
16995         * config/m32c/t-m32c (md_file): Likewise.
16996         * genpreds.c (general_mem): New array.
16997         (generic_constraint_letters): Remove constraints now defined by
16998         common.md.
16999         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
17000         Allow the first character to be '<' or '>' as well.
17001         * genoutput.c (general_mem): New array.
17002         (indep_constraints): Remove constraints now defined by common.md.
17003         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
17004         Remove special handling of 'm'.
17005         * ira-costs.c (record_reg_classes): Remove special handling of
17006         constraints now defined by common.md.
17007         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
17008         * ira-lives.c (single_reg_class): Likewise.
17009         (ira_implicitly_set_insn_hard_regs): Likewise.
17010         * lra-constraints.c (reg_class_from_constraints): Likewise.
17011         (process_alt_operands, process_address, curr_insn_transform): Likewise.
17012         * postreload.c (reload_cse_simplify_operands): Likewise.
17013         * reload.c (push_secondary_reload, scratch_reload_class)
17014         (find_reloads, alternative_allows_const_pool_ref): Likewise.
17015         * reload1.c (maybe_fix_stack_asms): Likewise.
17016         * targhooks.c (default_secondary_reload): Likewise.
17017         * stmt.c (parse_output_constraint): Likewise.
17018         * recog.c (preprocess_constraints): Likewise.
17019         (constrain_operands, peep2_find_free_register): Likewise.
17020         (asm_operand_ok): Likewise, but add a comment saying why 'o'
17021         must be handled specially.
17022
17023 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17024
17025         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
17026         * genpreds.c (have_const_dbl_constraints): Delete.
17027         (add_constraint): Don't set it.
17028         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
17029         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
17030         constraints using the lookup_constraint logic.
17031         * ira-lives.c (single_reg_class): Likewise.
17032         * ira.c (ira_setup_alts): Likewise.
17033         * lra-constraints.c (process_alt_operands): Likewise.
17034         * recog.c (asm_operand_ok, constrain_operands): Likewise.
17035         * reload.c (find_reloads): Likewise.
17036
17037 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17038
17039         * genpreds.c (const_int_start, const_int_end): New variables.
17040         (choose_enum_order): Output CONST_INT constraints before memory
17041         constraints.
17042         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
17043         Add CT_CONST_INT.
17044         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
17045         * ira.c (ira_setup_alts): Likewise.
17046         * lra-constraints.c (process_alt_operands): Likewise.
17047         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
17048         * reload.c (find_reloads): Likewise.
17049
17050 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17051
17052         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
17053         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
17054         * recog.c (preprocess_constraints): Update accordingly.
17055
17056 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17057
17058         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
17059         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
17060         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
17061         * genpreds.c (print_type_tree): New function.
17062         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
17063         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
17064         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
17065         Write out enum constraint_type and get_constraint_type.
17066         * lra-constraints.c (satisfies_memory_constraint_p): Take a
17067         constraint_num rather than a constraint string.
17068         (satisfies_address_constraint_p): Likewise.
17069         (reg_class_from_constraints): Avoid old constraint macros.
17070         (process_alt_operands, process_address_1): Likewise.
17071         (curr_insn_transform): Likewise.
17072         * ira-costs.c (record_reg_classes): Likewise.
17073         (record_operand_costs): Likewise.
17074         * ira-lives.c (single_reg_class): Likewise.
17075         (ira_implicitly_set_insn_hard_regs): Likewise.
17076         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
17077         * postreload.c (reload_cse_simplify_operands): Likewise.
17078         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
17079         (constrain_operands, peep2_find_free_register): Likewise.
17080         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
17081         (find_reloads, alternative_allows_const_pool_ref): Likewise.
17082         * reload1.c (maybe_fix_stack_asms): Likewise.
17083         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
17084         * targhooks.c (default_secondary_reload): Likewise.
17085         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
17086         to EXTRA_CONSTRAINT_STR.
17087         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
17088
17089 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17090
17091         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
17092         (write_constraint_satisfied_p_array): ...this new function.
17093         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
17094         an array.
17095         (write_insn_preds_c): Update accordingly.
17096
17097 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17098
17099         * genpreds.c (write_lookup_constraint): Rename to...
17100         (write_lookup_constraint_1): ...this.
17101         (write_lookup_constraint_array): New function.
17102         (write_tm_preds_h): Define lookup_constraint as an inline function
17103         that uses write_lookup_constraint_array where possible.
17104         (write_insn_preds_c): Update for the changes above.
17105
17106 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17107
17108         * doc/md.texi (regclass_for_constraint): Rename to...
17109         (reg_class_for_constraint): ...this.
17110         * genpreds.c (num_constraints, enum_order, register_start)
17111         (register_end, satisfied_start, memory_start, memory_end)
17112         (address_start, address_end): New variables.
17113         (add_constraint): Count the number of constraints.
17114         (choose_enum_order): New function.
17115         (write_enum_constraint_num): Iterate over enum_order.
17116         (write_regclass_for_constraint): Rename to...
17117         (write_reg_class_for_constraint_1): ...this and update output
17118         accordingly.
17119         (write_constraint_satisfied_p): Rename to...
17120         (write_constraint_satisfied_p_1): ...this and update output
17121         accordingly.  Do nothing if all extra constraints are register
17122         constraints.
17123         (write_insn_extra_memory_constraint): Delete.
17124         (write_insn_extra_address_constraint): Delete.
17125         (write_range_function): New function.
17126         (write_tm_preds_h): Define constraint_satisfied_p and
17127         reg_class_for_constraint as inline functions that do a range check
17128         before calling the out-of-line function.  Use write_range_function
17129         to implement insn_extra_{register,memory,address}_constraint,
17130         the first of which is new.
17131         (write_insn_preds_c): Update after above changes to write_* functions.
17132         (main): Call choose_enum_order.
17133
17134 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17135
17136         PR tree-optimization/61306
17137         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
17138         expression instead of its size.
17139         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
17140         false to prevent optimization when the result is unpredictable due to
17141         arithmetic right shift of signed type with highest byte is set.
17142         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
17143         (init_symbolic_number): Likewise.
17144         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
17145         when the result is unpredictable due to sign extension.
17146
17147 2014-06-11  Terry Guo  <terry.guo@arm.com>
17148
17149         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
17150         (*thumb1_addsi3): Ditto.
17151         (*thumb_subdi3): Ditto.
17152         (thumb1_subsi3_insn): Ditto.
17153         (*thumb_mulsi3): Ditto.
17154         (*thumb_mulsi3_v6): Ditto.
17155         (*thumb1_andsi3_insn): Ditto.
17156         (thumb1_bicsi3): Ditto.
17157         (*thumb1_iorsi3_insn): Ditto.
17158         (*thumb1_xorsi3_insn): Ditto.
17159         (*thumb1_ashlsi3): Ditto.
17160         (*thumb1_ashrsi3): Ditto.
17161         (*thumb1_lshrsi3): Ditto.
17162         (*thumb1_rotrsi3): Ditto.
17163         (*thumb1_negdi2): Ditto.
17164         (*thumb1_negsi2): Ditto.
17165         (*thumb1_abssi2): Ditto.
17166         (*thumb1_neg_abssi2): Ditto.
17167         (*thumb1_one_cmplsi2): Ditto.
17168         (*thumb1_zero_extendhisi2): Ditto.
17169         (*thumb1_zero_extendqisi2): Ditto.
17170         (*thumb1_zero_extendqisi2_v6): Ditto.
17171         (thumb1_extendhisi2): Ditto.
17172         (thumb1_extendqisi2): Ditto.
17173         (*thumb1_movdi_insn): Ditto.
17174         (*thumb1_movsi_insn): Ditto.
17175         (*thumb1_movhi_insn): Ditto.
17176         (thumb_movhi_clobber): Ditto.
17177         (*thumb1_movqi_insn): Ditto.
17178         (*thumb1_movhf): Ditto.
17179         (*thumb1_movsf_insn): Ditto.
17180         (*thumb_movdf_insn): Ditto.
17181         (movmem12b): Ditto.
17182         (movmem8b): Ditto.
17183         (cbranchqi4): Ditto.
17184         (cbranchsi4_insn): Ditto.
17185         (cbranchsi4_scratch): Ditto.
17186         (*negated_cbranchsi4): Ditto.
17187         (*tbit_cbranch): Ditto.
17188         (*tlobits_cbranch): Ditto.
17189         (*tstsi3_cbranch): Ditto.
17190         (*cbranchne_decr1): Ditto.
17191         (*addsi3_cbranch): Ditto.
17192         (*addsi3_cbranch_scratch): Ditto.
17193         (*thumb_cmpdi_zero): Ditto.
17194         (cstoresi_eq0_thumb1): Ditto.
17195         (cstoresi_ne0_thumb1): Ditto.
17196         (*cstoresi_eq0_thumb1_insn): Ditto.
17197         (*cstoresi_ne0_thumb1_insn): Ditto.
17198         (cstoresi_nltu_thumb1): Ditto.
17199         (cstoresi_ltu_thumb1): Ditto.
17200         (thumb1_addsi3_addgeu): Ditto.
17201         (*thumb_jump): Ditto.
17202         (*call_reg_thumb1_v5): Ditto.
17203         (*call_reg_thumb1): Ditto.
17204         (*call_value_reg_thumb1_v5): Ditto.
17205         (*call_value_reg_thumb1): Ditto.
17206         (*call_insn): Ditto.
17207         (*call_value_insn): Ditto.
17208         (thumb1_casesi_internal_pic): Ditto.
17209         (thumb1_casesi_dispatch): Ditto.
17210         (*thumb1_indirect_jump): Ditto.
17211         (prologue_thumb1_interwork): Ditto.
17212         (*epilogue_insns): Ditto.
17213         (consttable_1): Ditto.
17214         (consttable_2): Ditto.
17215         (tablejump): Ditto.
17216         (*thumb1_tablejump): Ditto.
17217         (thumb_eh_return): Ditto.
17218         (define_peephole2): Two of them are thumb1 only and got moved into
17219         new file thumb1.md.
17220         (define_split): Six of them are thumb1 only and got moved into new
17221         file thumb1.md.
17222         * config/arm/thumb1.md: New file comprised of above thumb1 only
17223         patterns.
17224
17225 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17226
17227         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
17228         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
17229         dependencies.
17230         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
17231         (aarch64_crc_builtin_datum): New struct.
17232         (aarch64_crc_builtin_data): New.
17233         (aarch64_init_crc32_builtins): New function.
17234         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
17235         (aarch64_crc32_expand_builtin): New.
17236         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
17237         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
17238         __ARM_FEATURE_CRC32 when appropriate.
17239         (TARGET_CRC32): Define.
17240         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
17241         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
17242         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
17243         (aarch64_<crc_variant>): New pattern.
17244         * config/aarch64/arm_acle.h: New file.
17245         * config/aarch64/iterators.md (CRC): New int iterator.
17246         (crc_variant, crc_mode): New int attributes.
17247         * doc/aarch64-acle-intrinsics.texi: New file.
17248         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
17249         Include aarch64-acle-intrinsics.texi.
17250
17251 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
17252
17253         * tree-vect-data-refs.c (vect_grouped_store_supported): New
17254         check for stores group of length 3.
17255         (vect_permute_store_chain): New permutations for stores group of
17256         length 3.
17257         * tree-vect-stmts.c (vect_model_store_cost): Change cost
17258         of vec_perm_shuffle for the new permutations.
17259
17260 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
17261
17262         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
17263         table rewriting temporarily on targets not supporting ONE_ONLY.
17264
17265 2014-06-11  Richard Biener  <rguenther@suse.de>
17266
17267         PR middle-end/61437
17268         Revert
17269         2014-06-04  Richard Biener  <rguenther@suse.de>
17270
17271         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
17272         TREE_PUBLIC and DECL_EXTERNAL decls.
17273
17274 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
17275
17276         * varasm.c (set_implicit_section): New function.
17277         (resolve_unique_section): Use it to set implicit section
17278         for aliases, too.
17279         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
17280         (default_function_section): Likewise.
17281         (decl_binds_to_current_def_p): Constify argument.
17282         * varasm.h (decl_binds_to_current_def_p): Update prototype.
17283         * asan.c (asan_protect_global): Use
17284         symtab_get_node (decl)->implicit_section.
17285         * symtab.c (dump_symtab_base): Dump implicit sections.
17286         (verify_symtab_base): Verify sanity of sectoins and comdats.
17287         (symtab_resolve_alias): Alias share the section of its target.
17288         (set_section_1): New function.
17289         (symtab_node::set_section): Move here, recurse to aliases.
17290         (verify_symtab): Check for duplicated symtab lists.
17291         * tree-core.h (implicit_section_name_p): Remove.
17292         * tree-vect-data-refs.c: Include varasm.h.
17293         (vect_can_force_dr_alignment_p): Fix conditional on when
17294         decl bints to current definition; use
17295         symtab_get_node (decl)->implicit_section.
17296         * cgraph.c (cgraph_make_node_local_1): Fix section set.
17297         * cgraph.h (struct symtab_node): Add implicit_section.
17298         (set_section): Rename to ...
17299         (set_section_for_node): ... this one.
17300         (set_section): Declare.
17301         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
17302         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
17303         input_overwrite_node, input_varpool_node): Stream implicit_section.
17304         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
17305         removal; it will fail in LTO.
17306
17307 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17308
17309         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
17310         Change second alternative type to f_mcr.
17311         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
17312         and 12th alternatives' types to f_mcr and f_mrc.
17313         (*movdi_aarch64): Same for 12th and 13th alternatives.
17314         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
17315         (aarch64_movtilow_tilow): Change type to fmov.
17316
17317 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
17318
17319         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
17320         (aarch64_save_or_restore_callee_save_registers): Fix layout.
17321
17322 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17323
17324         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
17325         New expander.
17326         (aarch64_sqrdmulh_lane<mode>): Likewise.
17327         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
17328         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
17329         (aarch64_sqdmulh_laneq<mode>): New expander.
17330         (aarch64_sqrdmulh_laneq<mode>): Likewise.
17331         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
17332         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
17333         (aarch64_sqdmulh_lane<mode>): New expander.
17334         (aarch64_sqrdmulh_lane<mode>): Likewise.
17335         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
17336         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
17337         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
17338         (aarch64_sqdmlal_laneq<mode>): Likewise.
17339         (aarch64_sqdmlsl_lane<mode>): Likewise.
17340         (aarch64_sqdmlsl_laneq<mode>): Likewise.
17341         (aarch64_sqdmlal2_lane<mode>): Likewise.
17342         (aarch64_sqdmlal2_laneq<mode>): Likewise.
17343         (aarch64_sqdmlsl2_lane<mode>): Likewise.
17344         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
17345         (aarch64_sqdmull_lane<mode>): Likewise.
17346         (aarch64_sqdmull_laneq<mode>): Likewise.
17347         (aarch64_sqdmull2_lane<mode>): Likewise.
17348         (aarch64_sqdmull2_laneq<mode>): Likewise.
17349
17350 2014-06-10  Richard Biener  <rguenther@suse.de>
17351
17352         PR tree-optimization/61438
17353         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
17354         (eliminate_dom_walker::before_dom_children): Only try to inhibit
17355         insertion of IVs if running PRE.
17356         (eliminate): Adjust.
17357         (pass_pre::execute): Likewise.
17358         (pass_fre::execute): Likewise.
17359
17360 2014-06-10  Richard Biener  <rguenther@suse.de>
17361
17362         PR middle-end/61456
17363         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
17364         Do not use the main variant for the type comparison.
17365         (ncr_compar): Likewise.
17366         (nonoverlapping_component_refs_p): Likewise.
17367
17368 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17369
17370         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
17371         REG_CFA_RESTORE mode.
17372
17373 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
17374
17375         * config/i386/i386.c (expand_vec_perm_pblendv): New.
17376         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
17377         expand_vec_perm_pblendv.
17378
17379 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17380
17381         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
17382         available.
17383         Simplify description of __crc32d and __crc32cd intrinsics.
17384         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
17385         availability.
17386
17387 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
17388
17389         PR lto/61334
17390         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
17391         * config.in: Regenerate.
17392         * configure: Likewise.
17393
17394 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
17395
17396         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
17397         and public vars.
17398         (intersect_static_var_sets): Remove.
17399         (propagate): Do not prune local statics.
17400
17401 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
17402
17403         PR fortran/60928
17404         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
17405         Set lastprivate_firstprivate even if omp_private_outer_ref
17406         langhook returns true.
17407         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
17408         langhook, call unshare_expr on new_var and call
17409         build_outer_var_ref to get the last argument.
17410
17411 2014-06-10  Marek Polacek  <polacek@redhat.com>
17412
17413         PR c/60988
17414         * doc/extend.texi: Add cindex for transparent_union.
17415
17416 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17417
17418         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
17419         init_symbolic_number ().
17420
17421 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
17422
17423         PR middle-end/61141
17424         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
17425         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
17426         (verify_rtl_sharing): Likewise.
17427
17428 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
17429
17430         PR c++/54442
17431         * tree.c (build_qualified_type): Use a canonical type for
17432         TYPE_CANONICAL.
17433
17434 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17435
17436         * config/arm/arm-modes.def: Remove XFmode.
17437
17438 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
17439
17440         PR target/61062
17441         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
17442         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
17443         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
17444         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
17445         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
17446         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
17447         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
17448         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
17449         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
17450
17451 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
17452
17453         * tree-core.h (tree_decl_with_vis): Remove section_name.
17454
17455 2014-06-09  Kito Cheng  <kito@0xlab.org>
17456
17457         * ira.c (ira): Don't call init_caller_save if LRA enabled
17458         since LRA use its own infrastructure to handle that.
17459
17460 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17461
17462         * symtab.c (dump_symtab_base): Update dumping.
17463         (symtab_make_decl_local): Clear only DECL_COMDAT.
17464         * tree-vect-data-refs.c (Check that variable is static before
17465         tampering with sections.
17466         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
17467         (cgraph_create_virtual_clone): Likewise.
17468         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
17469         (decl_section_name, set_decl_section_name): New accessors.
17470         (find_decls_types_r): Do not walk section name
17471         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
17472         (decl_comdat_group, decl_comdat_group_id): Constify.
17473         (decl_section_name, set_decl_section_name): Update.
17474         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
17475         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
17476         (cgraph_make_node_local_1): Clear section and comdat group.
17477         * cgraph.h (set_comdat_group): Sanity check.
17478         (get_section, set_section): New.
17479         * ipa-comdats.c (ipa_comdats): Use get_section.
17480         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
17481         * lto-streamer-out.c: Do not follow section names.
17482         * c-family/c-common.c (handle_section_attribute): Update.
17483         * lto-cgraph.c (lto_output_node): Output section.
17484         (lto_output_varpool_node): Likewise.
17485         (read_comdat_group): Rename to ...
17486         (read_identifier): ... this one.
17487         (read_string_cst): New function.
17488         (input_node, input_varpool_node): Input section names.
17489         * tree-emutls.c (get_emutls_init_templ_addr): Update.
17490         (new_emutls_decl): Update.
17491         (secname_for_decl): Check section names only of static vars.
17492         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
17493         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
17494         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
17495         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
17496         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
17497         * config/mcore/mcore.c (mcore_unique_section): Likewise.
17498         * config/mips/mips.c (mips16_build_function_stub): Likewise.
17499         * config/v850/v850.c (v850_insert_attributes): Likewise.
17500         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
17501         Likewise.
17502         (h8300_handle_tiny_data_attribute): Likewise.
17503         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
17504         (bfin_handle_l2_attribute): Likewise.
17505
17506 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17507
17508         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
17509         remove static initializer.
17510
17511 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17512
17513         * varasm.c (use_blocks_for_decl_p): Check symbol table
17514         instead of alias attribute.
17515         (place_block_symbol): Recurse on aliases.
17516
17517 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17518
17519         * ipa-visibility.c: Include varasm.h
17520         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
17521
17522 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17523
17524         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
17525         outputting aliases.
17526
17527 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
17528
17529         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
17530         from test_insn into GGC space escape via SET_SRC.
17531
17532 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
17533
17534         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
17535         call statement, if any.
17536         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
17537         statements, if any.  Tidy up.
17538
17539 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
17540
17541         PR target/61431
17542         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
17543         iterators, VSX_D that handles 64-bit types, and VSX_LE that
17544         handles swapping the two 64-bit double words on little endian
17545         systems.  Include V1TImode and optionally TImode in VSX_LE so that
17546         these types are properly swapped.  Change all of the insns and
17547         splits that do the 64-bit swaps to use VSX_LE.
17548         (vsx_le_perm_load_<mode>): Likewise.
17549         (vsx_le_perm_store_<mode>): Likewise.
17550         (splitters for little endian memory operations): Likewise.
17551         (vsx_xxpermdi2_le_<mode>): Likewise.
17552         (vsx_lxvd2x2_le_<mode>): Likewise.
17553         (vsx_stxvd2x2_le_<mode>): Likewise.
17554
17555 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
17556
17557         PR target/61423
17558         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
17559         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
17560         and corresponding splitters.  Zero extend general register
17561         or memory input operand to XMM temporary.  Enable for
17562         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
17563         (floatunssi<mode>2): Update expander predicate.
17564
17565 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
17566
17567         PR rtl-optimization/61325
17568         * lra-constraints.c (process_address_1): Check scale equal to one
17569         to prevent transformation: base + scale * index => base + new_reg.
17570
17571 2014-06-06  Richard Biener  <rguenther@suse.de>
17572
17573         PR tree-optimization/59299
17574         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
17575         a def operand.
17576         (nearest_common_dominator_of_uses): Likewise.
17577         (statement_sink_location): Adjust.  Support sinking loads.
17578
17579 2014-06-06  Martin Jambor  <mjambor@suse.cz>
17580
17581         * ipa-prop.c (get_place_in_agg_contents_list): New function.
17582         (build_agg_jump_func_from_list): Likewise.
17583         (determine_known_aggregate_parts): Renamed to
17584         determine_locally_known_aggregate_parts.  Moved some functionality
17585         to the two functions above, removed bound checks.
17586
17587 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
17588
17589         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
17590         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
17591         (aarch64_progress_pointer): Likewise.
17592         (aarch64_copy_one_part_and_move_pointers): Likewise.
17593         (aarch64_expand_movmen): Likewise.
17594         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
17595         * config/aarch64/aarch64.md (movmem<mode>): New.
17596
17597 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
17598
17599         * targhooks.c (default_add_stmt_cost): Call target specific
17600         hook instead of default one.
17601
17602 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17603
17604         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
17605         endianness instead of host endianness.
17606         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
17607         comments.
17608
17609 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17610
17611         PR debug/53927
17612         * function.c (instantiate_decls): Process the saved static chain.
17613         (expand_function_start): If not optimizing, save the static chain
17614         onto the stack.
17615         * tree-nested.c (convert_all_function_calls): Always create the static
17616         chain for nested functions if not optimizing.
17617
17618 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17619
17620         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
17621
17622 2014-06-06  Richard Biener  <rguenther@suse.de>
17623
17624         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
17625         (construct_init_block): Likewise.
17626         (construct_exit_block): Likewise.
17627         (pass_expand::execute): Likewise.
17628         * graphite.c (graphite_transforms): Replace check for current_loops
17629         with a check for > 1 loops.
17630         (pass_graphite_transforms::execute): Adjust.
17631         * ipa-split.c (split_function): Remove check for current_loops.
17632         * omp-low.c (expand_parallel_call): Likewise.
17633         (expand_omp_for_init_counts): Likewise.
17634         (extract_omp_for_update_vars): Likewise.
17635         (expand_omp_for_generic): Likewise.
17636         (expand_omp_sections): Likewise.
17637         (expand_omp_target): Likewise.
17638         * tracer.c (tail_duplicate): Likewise.
17639         (pass_tracer::execute): Likewise.
17640         * trans-mem.c (expand_transaction): Likewise.
17641         * tree-complex.c (expand_complex_div_wide): Likewise.
17642         * tree-eh.c (lower_resx): Likewise.
17643         (cleanup_empty_eh_merge_phis): Likewise.
17644         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
17645         current_loops with a check for > 1 loops.
17646         (pass_predcom::execute): Adjust.
17647         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
17648         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
17649         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
17650         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
17651         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
17652         * tree-switch-conversion.c (process_switch): Likewise.
17653         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
17654         * tree-vrp.c (vrp_visit_phi_node): Likewise.
17655         (execute_vrp): Likewise.
17656         * ubsan.c (ubsan_expand_null_ifn): Likewise.
17657
17658 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17659
17660         * rtl.h (insn_location): Declare.
17661         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
17662         with UNKNOWN_LOCATION.
17663         * emit-rtl.c (insn_location): New function.
17664         * final.c (notice_source_line): Check that the instruction has a
17665         location before retrieving it and use insn_location.
17666         * modulo-sched.c (loop_single_full_bb_p): Likewise.
17667         * print-rtl.c (print_rtx): Likewise.
17668
17669 2014-06-06  Richard Biener  <rguenther@suse.de>
17670
17671         * passes.def: Move 2nd VRP pass before phi-only-cprop.
17672
17673 2014-06-06  Christian Bruel  <christian.bruel@st.com>
17674
17675         PR tree-optimization/43934
17676         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
17677         cost.
17678
17679 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
17680
17681         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
17682         return NO_REGS for extra address and memory constraints.  Handle
17683         operands that match (or are equivalent to something that matches)
17684         extra constant constraints.  Ignore other non-register operands.
17685
17686 2014-06-06  Alan Modra  <amodra@gmail.com>
17687
17688         PR target/61300
17689         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
17690         * doc/tm.texi: Regenerate.
17691         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
17692         Use throughout in place of REG_PARM_STACK_SPACE.
17693         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
17694         "incoming" param.  Pass to rs6000_function_parms_need_stack.
17695         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
17696         prototype_p when incoming.  Use function decl when incoming
17697         to handle K&R style functions.
17698         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
17699         (INCOMING_REG_PARM_STACK_SPACE): Define.
17700
17701 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17702
17703         PR target/52472
17704         * cfgexpand.c (expand_debug_expr): Use address space of nested
17705         TREE_TYPE for ADDR_EXPR and MEM_REF.
17706
17707 2014-06-05  Jeff Law  <law@redhat.com>
17708
17709         PR tree-optimization/61289
17710         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
17711         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
17712         looking for those which match LHS.  All callers changed.
17713         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
17714         parameters and code which manipulated them.  All callers changed.
17715         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
17716         and DST_MAP parameters.  Simplify invalidation code by just calling
17717         invalidate_equivalences.  All callers changed.
17718         (thread_across_edge): Simplify now that we don't need to maintain
17719         the map of equivalences to invalidate.
17720
17721 2014-06-05  Kai Tietz  <ktietz@redhat.com>
17722             Richard Henderson  <rth@redhat.com>
17723
17724         PR target/46219
17725         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
17726         checking for !TARGET_X32.
17727         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
17728         (sibcall_intern): New define_insn, plus required peepholes.
17729         (sibcall_pop_intern): Likewise.
17730         (sibcall_value_intern): Likewise.
17731         (sibcall_value_pop_intern): Likewise.
17732
17733 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
17734
17735         * tree-inline.c (tree_function_versioning): Check DF info existence
17736         before accessing it.
17737
17738 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17739
17740         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
17741         frame_size.
17742         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
17743         aarch64_frame hard_fp_offset and frame_size.
17744         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
17745         frame_size; remove original_frame_size.
17746         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
17747         (aarch64_initial_elimination_offset): Remove frame_size and
17748         offset.  Use aarch64_frame frame_size.
17749
17750 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17751             Jiong Wang  <jiong.wang@arm.com>
17752             Renlin  <renlin.li@arm.com>
17753
17754         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
17755         initialization of R30 offset.  Update offset.  Iterate core
17756         regisers upto X30.  Remove X29, X30 specific code.
17757
17758 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17759             Jiong Wang  <jiong.wang@arm.com>
17760
17761         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
17762         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
17763         (aarch64_register_saved_on_entry): Adjust test.
17764
17765 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17766
17767         * config/aarch64/aarch64.h (machine_function): Move
17768         saved_varargs_size from here...
17769         (aarch64_frame): ... to here.
17770
17771         * config/aarch64/aarch64.c (aarch64_expand_prologue)
17772         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
17773         (aarch64_initial_elimination_offset)
17774         (aarch64_setup_incoming_varargs): Adjust location of
17775         saved_varargs_size.
17776
17777 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17778
17779         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
17780         layout comment.
17781
17782 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
17783             Prachi Godbole  <Prachi.Godbole@imgtec.com>
17784
17785         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
17786         mips32r5 entry to use PROCESSOR_P5600.
17787         * config/mips/mips-tables.opt: Regenerate.
17788         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
17789         * config/mips/mips.c (mips_fmadd_bypass): New function.
17790         (mips_rtx_cost_data): Add costs for p5600.
17791         (mips_issue_rate): Add support for p5600.
17792         (mips_multipass_dfa_lookahead): Likewise.
17793         * config/mips/mips.h (TUNE_P5600): New define.
17794         (TUNE_MACC_CHAINS): Add TUNE_P5600.
17795         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
17796         * config/mips/mips.md: Include p5600.md.
17797         (processor): Add p5600.
17798         * config/mips/p5600.md: New file.
17799
17800 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
17801
17802         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
17803         * config/i386/predicates.md (palignr_operand): New.
17804         Indicates if permutation is suitable for palignr instruction.
17805
17806 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
17807
17808         PR tree-optimization/61319
17809         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
17810         stmt belongs to loop.
17811
17812 2014-06-05  Richard Biener  <rguenther@suse.de>
17813
17814         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
17815         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
17816         (lookup_tmp_var): Adjust.
17817         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
17818
17819 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17820
17821         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
17822
17823 2014-06-05  Marek Polacek  <polacek@redhat.com>
17824
17825         PR c/49706
17826         * doc/invoke.texi: Document -Wlogical-not-parentheses.
17827
17828 2014-06-04  Tom de Vries  <tom@codesourcery.com>
17829
17830         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
17831         CONST_INT.
17832
17833 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
17834
17835         PR tree-optimization/61385
17836         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
17837
17838 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
17839
17840         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
17841         changed to use fatal_error.
17842         (main): Ensure lto_wrapper_cleanup is run atexit.
17843
17844 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17845
17846         * lra-constraints.c (valid_address_p): Move earlier in file.
17847         (address_eliminator): New structure.
17848         (satisfies_memory_constraint_p): New function.
17849         (satisfies_address_constraint_p): Likewise.
17850         (process_alt_operands, process_address, curr_insn_transform): Use them.
17851
17852 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17853
17854         * lra-int.h (lra_static_insn_data): Make operand_alternative a
17855         const pointer.
17856         (target_lra_int, default_target_lra_int, this_target_lra_int)
17857         (op_alt_data): Delete.
17858         * lra.h (lra_init): Delete.
17859         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
17860         (init_insn_code_data_once): Remove op_alt_data handling.
17861         (finish_insn_code_data_once): Likewise.
17862         (init_op_alt_data): Delete.
17863         (get_static_insn_data): Initialize operand_alternative to null.
17864         (free_insn_recog_data): Cast operand_alternative before freeing it.
17865         (setup_operand_alternative): Take the operand_alternative as
17866         parameter and assume it isn't already cached in the static
17867         insn data.
17868         (lra_set_insn_recog_data): Update accordingly.
17869         (lra_init): Delete.
17870         * ira.c (ira_init): Don't call lra_init.
17871         * target-globals.h (this_target_lra_int): Declare.
17872         (target_globals): Remove lra_int.
17873         (restore_target_globals): Update accordingly.
17874         * target-globals.c: Don't include lra-int.h.
17875         (default_target_globals, save_target_globals): Remove lra_int.
17876
17877 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17878
17879         * recog.h (operand_alternative): Convert reg_class, reject,
17880         matched and matches into bitfields.
17881         (preprocess_constraints): New overload.
17882         (preprocess_insn_constraints): New function.
17883         (preprocess_constraints): Take the insn as parameter.
17884         (recog_op_alt): Change into a pointer.
17885         (target_recog): Add x_op_alt.
17886         * recog.c (asm_op_alt): New variable.
17887         (recog_op_alt): Change into a pointer.
17888         (preprocess_constraints): New overload, replacing the old function
17889         definition with one that doesn't use global state.
17890         (preprocess_insn_constraints): New function.
17891         (preprocess_constraints): Use them.  Take the insn as parameter.
17892         Use asm_op_alt for asms.
17893         (recog_init): Free existing x_op_alt entries.
17894         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
17895         pointer const.
17896         (make_early_clobber_and_input_conflicts): Likewise.
17897         (process_bb_node_lives): Pass the insn to process_constraints.
17898         * reg-stack.c (check_asm_stack_operands): Likewise.
17899         (subst_asm_stack_regs): Likewise.
17900         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
17901         * regrename.c (build_def_use): Likewise.
17902         * sched-deps.c (sched_analyze_insn): Likewise.
17903         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
17904         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
17905         (note_invalid_constants): Likewise.
17906         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
17907         (ix86_legitimate_combined_insn): Make operand_alternative pointer
17908         const.
17909
17910 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17911
17912         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
17913         * ira-lives.c (check_and_make_def_conflict): Check for disabled
17914         alternatives.
17915         (make_early_clobber_and_input_conflicts): Likewise.
17916         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
17917
17918 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17919
17920         * recog.h (alternative_class): New function.
17921         (which_op_alt): Return a const recog_op_alt.
17922         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
17923         (subst_asm_stack_regs): Likewise.
17924         * config/arm/arm.c (note_invalid_constants): Likewise.
17925         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
17926         the operand_alternative; use alternative class instead.
17927         * sel-sched.c (get_reg_class): Likewise.
17928         * regrename.c (build_def_use): Likewise.
17929         (hide_operands, restore_operands, record_out_operands): Update type
17930         accordingly.
17931
17932 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17933
17934         * recog.h (recog_op_alt): Convert to a flat array.
17935         (which_op_alt): New function.
17936         * recog.c (recog_op_alt): Convert to a flat array.
17937         (preprocess_constraints): Update accordingly, grouping all
17938         operands of the same alternative together, rather than the
17939         other way around.
17940         * ira-lives.c (check_and_make_def_conflict): Likewise.
17941         (make_early_clobber_and_input_conflicts): Likewise.
17942         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
17943         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
17944         (subst_asm_stack_regs): Likewise.
17945         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
17946         * regrename.c (hide_operands, record_out_operands): Likewise.
17947         (build_def_use): Likewise.
17948         * sel-sched.c (get_reg_class): Likewise.
17949         * config/arm/arm.c (note_invalid_constants): Likewise.
17950
17951 2014-06-04  Jason Merrill  <jason@redhat.com>
17952
17953         PR c++/51253
17954         PR c++/61382
17955         * gimplify.c (gimplify_arg): Non-static.
17956         * gimplify.h: Declare it.
17957
17958 2014-06-04  Richard Biener  <rguenther@suse.de>
17959
17960         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
17961         TREE_PUBLIC and DECL_EXTERNAL decls.
17962
17963 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
17964
17965         * regcprop.c (copyprop_hardreg_forward_1): Account for
17966         HARD_REGNO_CALL_PART_CLOBBERED.
17967
17968 2014-06-04  Richard Biener  <rguenther@suse.de>
17969
17970         * configure.ac: Check whether the underlying type of int64_t
17971         is long or long long.
17972         * configure: Regenerate.
17973         * config.in: Likewise.
17974         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
17975         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
17976
17977 2014-06-04  Richard Biener  <rguenther@suse.de>
17978
17979         PR tree-optimization/60098
17980         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
17981         we hit a kill.
17982         (dse_optimize_stmt): Simplify, now that we found a kill
17983         earlier.
17984
17985 2014-06-04  Richard Biener  <rguenther@suse.de>
17986
17987         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
17988         of accesses with non-invariant address.
17989
17990 2014-06-04  Martin Liska  <mliska@suse.cz>
17991
17992         * cgraph.h (cgraph_make_wrapper): New function introduced.
17993         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
17994         * ipa-inline.h (inline_analyze_function): The function is global.
17995         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
17996
17997 2014-06-04  Martin Liska  <mliska@suse.cz>
17998
17999         * tree.h (private_lookup_attribute_starting): New function.
18000         (lookup_attribute_starting): Likewise.
18001         * tree.c (private_lookup_attribute_starting): Likewise.
18002
18003 2014-06-04  Martin Liska  <mliska@suse.cz>
18004
18005         * cgraph.h (expand_thunk): New argument added.
18006         (address_taken_from_non_vtable_p): New global function.
18007         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
18008         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
18009         * cgraphunit.c (analyze_function): Likewise.
18010         (assemble_thunks_and_aliases): Argument added to call.
18011         (expand_thunk): New argument forces to produce GIMPLE thunk.
18012
18013 2014-06-04  Martin Liska  <mliska@suse.cz>
18014
18015         * coverage.h (coverage_compute_cfg_checksum): Argument added.
18016         * coverage.c (coverage_compute_cfg_checksum): Likewise.
18017         * profile.c (branch_prob): Likewise.
18018
18019 2014-06-04  Martin Jambor  <mjambor@suse.cz>
18020
18021         PR ipa/61340
18022         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
18023         handler for switch on an ipa_ref_use enum.
18024         * ipa-reference.c (analyze_function): Likewise.
18025
18026 2014-06-04  Kai Tietz  <ktietz@redhat.com>
18027
18028         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
18029         from old call-instruction.
18030
18031 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
18032
18033         * config/aarch64/aarch64.c (aarch64_classify_address)
18034         (aarch64_legitimize_reload_address): Support full addressing modes
18035         for vector modes.
18036         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
18037         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
18038
18039 2014-06-03  Andrew Pinski  <apinski@cavium.com>
18040
18041         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
18042         for OP0.
18043
18044 2014-06-03  Andrew Pinski  <apinski@cavium.com>
18045
18046         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
18047         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
18048
18049 2014-06-03  Kai Tietz  <ktietz@redhat.com>
18050
18051         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
18052         for 64-bit ms-abi.
18053
18054 2014-06-03  Dehao Chen  <dehao@google.com>
18055
18056         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
18057         the same loop.
18058
18059 2014-06-03  Marek Polacek  <polacek@redhat.com>
18060
18061         PR c/60439
18062         * doc/invoke.texi: Document -Wswitch-bool.
18063         * function.c (stack_protect_epilogue): Cast controlling expression of
18064         the switch to int.
18065         * gengtype.c (walk_type): Generate switch expression with its
18066         controlling expression cast to int.
18067
18068 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
18069
18070         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
18071         and attiny841.
18072         * config/avr/avr-tables.opt: Regenerate.
18073         * config/avr/t-multilib: Regenerate.
18074         * doc/avr-mmcu.texi: Regenerate.
18075
18076 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
18077             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
18078
18079         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
18080         (ata6617c, ata664251): Add new avr35 devices.
18081         (ata6612c): Add new avr4 device.
18082         (ata6613c, ata6614q): Add new avr5 devices.
18083         * config/avr/avr-tables.opt: Regenerate.
18084         * config/avr/t-multilib: Regenerate.
18085         * doc/avr-mmcu.texi: Regenerate.
18086
18087 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18088
18089         * gcc/config/aarch64/aarch64-builtins.c
18090         (aarch64_types_binop_ssu_qualifiers): New static data.
18091         (TYPES_BINOP_SSU): Define.
18092         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
18093         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
18094         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
18095         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
18096         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
18097         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
18098         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
18099         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
18100         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
18101         suffix to builtin function name, remove cast.
18102         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
18103         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
18104         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
18105
18106 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18107
18108         * gcc/config/aarch64/aarch64-builtins.c
18109         (aarch64_types_binop_uus_qualifiers,
18110         aarch64_types_shift_to_unsigned_qualifiers,
18111         aarch64_types_unsigned_shiftacc_qualifiers): Define.
18112         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
18113         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
18114         sqshlu_n, uqshl_n): Update qualifiers.
18115         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
18116         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
18117         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
18118         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
18119         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
18120         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
18121         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
18122         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
18123         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
18124         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
18125         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
18126         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
18127         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
18128         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
18129         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
18130         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
18131         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
18132         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
18133         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
18134         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
18135         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
18136         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
18137         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
18138         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
18139         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
18140         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
18141         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
18142
18143 2014-06-03  Teresa Johnson  <tejohnson@google.com>
18144
18145         * tree-sra.c (modify_function): Record caller nodes after rebuild.
18146
18147 2014-06-02  Jason Merrill  <jason@redhat.com>
18148
18149         PR c++/61020
18150         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
18151
18152 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18153
18154         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
18155         location == 0.
18156
18157 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18158
18159         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
18160         New pattern.
18161         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
18162         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
18163         * config/aarch64/iterators.md (REVERSE): New iterator.
18164         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
18165         (rev_op): New int_attribute.
18166         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
18167         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
18168         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
18169         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
18170         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
18171         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
18172         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
18173         Replace temporary __asm__ with __builtin_shuffle.
18174
18175 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
18176
18177         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
18178         mips64r5.
18179         * config/mips/mips-tables.opt: Regenerate.
18180         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
18181         to use mips_isa_rev rather than ISA_MIPS32R2.
18182         * config/mips/mips.h (ISA_MIPS32R3): New define.
18183         (ISA_MIPS32R5): New define.
18184         (ISA_MIPS64R3): New define.
18185         (ISA_MIPS64R5): New define.
18186         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
18187         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
18188         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
18189         and mips64r5.
18190         (MIPS_ISA_SYNCI_SPEC): Likewise.
18191         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
18192         (LINK_SPEC): Added mips32r3 and mips32r5.
18193         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
18194         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
18195         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
18196         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
18197         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
18198         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
18199         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
18200
18201 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
18202
18203         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
18204         options.
18205         * config/mips/mips.opt (mxpa): New option.
18206         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
18207         assembler.
18208
18209 2014-06-03  Martin Jambor  <mjambor@suse.cz>
18210
18211         PR ipa/61160
18212         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
18213         thunks.
18214
18215 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18216
18217         PR tree-optimization/61328
18218         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
18219         initialization from find_bswap_or_nop_1.
18220         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
18221         in source_expr2 before using the size value the function sets. Also
18222         make use of init_symbolic_number () in both the old place and
18223         find_bswap_or_nop_load () to avoid reading uninitialized memory when
18224         doing recursion in the GIMPLE_BINARY_RHS case.
18225
18226 2014-06-03  Richard Biener  <rguenther@suse.de>
18227
18228         PR tree-optimization/61383
18229         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
18230         stmts can't trap.
18231
18232 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
18233
18234         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
18235         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
18236         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
18237         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
18238         in this file.
18239         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
18240         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
18241         * system.h: ...here and make it unconditional.
18242         * target.def (conditional_register_usage): Mention
18243         define_register_constraint instead of old-style constraint macros.
18244         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
18245         * doc/tm.texi: Regenerate.
18246         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
18247         protected by !USE_MD_CONSTRAINTS.
18248         * config/frv/frv.md: Remove quote from old version of documentation.
18249         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
18250         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
18251         CONST_DOUBLE_OK_FOR_LETTER.
18252         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
18253
18254 2014-06-02  Andrew Pinski  <apinski@cavium.com>
18255
18256         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
18257         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
18258         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
18259         file whose name depends on -mabi= and -mbig-endian.
18260         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
18261         Handle LP64 better and handle ilp32 too.
18262         (MULTILIB_OPTIONS): Delete.
18263         (MULTILIB_DIRNAMES): Delete.
18264
18265 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
18266
18267         * expr.h: Remove prototypes of functions defined in builtins.c.
18268         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
18269         Remove prototypes of functions defined in builtins.c.
18270         * builtins.h: Update prototype list to include all exported functions.
18271         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
18272         no_c99_libc_has_function): Move to targhooks.c
18273         (build_string_literal, build_call_expr_loc_array,
18274         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
18275         to tree.c.
18276         (expand_builtin_object_size, fold_builtin_object_size): Make static.
18277         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
18278         no_c99_libc_has_function): Relocate from builtins.c.
18279         * tree.c: Include builtins.h.
18280         (build_call_expr_loc_array, build_call_expr_loc_vec,
18281         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
18282         from builtins.c.
18283         * fold-const.h (fold_fma): Move prototype to builtins.h.
18284         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
18285         * asan.c: Include builtins.h.
18286         * cfgexpand.c: Likewise.
18287         * convert.c: Likewise.
18288         * emit-rtl.c: Likewise.
18289         * except.c: Likewise.
18290         * expr.c: Likewise.
18291         * fold-const.c: Likewise.
18292         * gimple-fold.c: Likewise.
18293         * gimple-ssa-strength-reduction.c: Likewise.
18294         * gimplify.c: Likewise.
18295         * ipa-inline.c: Likewise.
18296         * ipa-prop.c: Likewise.
18297         * lto-streamer-out.c: Likewise.
18298         * stmt.c: Likewise.
18299         * tree-inline.c: Likewise.
18300         * tree-object-size.c: Likewise.
18301         * tree-sra.c: Likewise.
18302         * tree-ssa-ccp.c: Likewise.
18303         * tree-ssa-forwprop.c: Likewise.
18304         * tree-ssa-loop-ivcanon.c: Likewise.
18305         * tree-ssa-loop-ivopts.c: Likewise.
18306         * tree-ssa-math-opts.c: Likewise.
18307         * tree-ssa-reassoc.c: Likewise.
18308         * tree-ssa-threadedge.c: Likewise.
18309         * tree-streamer-in.c: Likewise.
18310         * tree-vect-data-refs.c: Likewise.
18311         * tree-vect-patterns.c: Likewise.
18312         * tree-vect-stmts.c: Likewise.
18313         * config/aarch64/aarch64.c: Likewise.
18314         * config/alpha/alpha.c: Likewise.
18315         * config/arc/arc.c: Likewise.
18316         * config/arm/arm.c: Likewise.
18317         * config/avr/avr.c: Likewise.
18318         * config/bfin/bfin.c: Likewise.
18319         * config/c6x/c6x.c: Likewise.
18320         * config/cr16/cr16.c: Likewise.
18321         * config/cris/cris.c: Likewise.
18322         * config/epiphany/epiphany.c: Likewise.
18323         * config/fr30/fr30.c: Likewise.
18324         * config/frv/frv.c: Likewise.
18325         * config/h8300/h8300.c: Likewise.
18326         * config/i386/i386.c: Likewise.
18327         * config/i386/winnt.c: Likewise.
18328         * config/ia64/ia64.c: Likewise.
18329         * config/iq2000/iq2000.c: Likewise.
18330         * config/lm32/lm32.c: Likewise.
18331         * config/m32c/m32c.c: Likewise.
18332         * config/m32r/m32r.c: Likewise.
18333         * config/m68k/m68k.c: Likewise.
18334         * config/mcore/mcore.c: Likewise.
18335         * config/mep/mep.c: Likewise.
18336         * config/microblaze/microblaze.c: Likewise.
18337         * config/mips/mips.c: Likewise.
18338         * config/mmix/mmix.c: Likewise.
18339         * config/mn10300/mn10300.c: Likewise.
18340         * config/moxie/moxie.c: Likewise.
18341         * config/msp430/msp430.c: Likewise.
18342         * config/nds32/nds32.c: Likewise.
18343         * config/pa/pa.c: Likewise.
18344         * config/pdp11/pdp11.c: Likewise.
18345         * config/picochip/picochip.c: Likewise.
18346         * config/rl78/rl78.c: Likewise.
18347         * config/rs6000/rs6000.c: Likewise.
18348         * config/rx/rx.c: Likewise.
18349         * config/s390/s390.c: Likewise.
18350         * config/score/score.c: Likewise.
18351         * config/sh/sh.c: Likewise.
18352         * config/sparc/sparc.c: Likewise.
18353         * config/spu/spu.c: Likewise.
18354         * config/stormy16/stormy16.c: Likewise.
18355         * config/tilegx/tilegx.c: Likewise.
18356         * config/tilepro/tilepro.c: Likewise.
18357         * config/v850/v850.c: Likewise.
18358         * config/vax/vax.c: Likewise.
18359         * config/xtensa/xtensa.c: Likewise.
18360
18361 2014-06-02  Jeff Law  <law@redhat.com>
18362
18363         PR rtl-optimization/61094
18364         * ree.c (combine_reaching_defs): Do not reextend an insn if it
18365         was marked as do_no_reextend.  If a copy is needed to eliminate
18366         an extension, then mark it as do_not_reextend.
18367
18368 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18369
18370         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
18371
18372 2014-06-02  Richard Henderson  <rth@redhat.com>
18373
18374         PR target/61336
18375         * config/alpha/alpha.c (print_operand_address): Allow symbolic
18376         addresses inside asms.  Use output_operand_lossage instead of
18377         gcc_unreachable.
18378
18379 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
18380
18381         PR target/61239
18382         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
18383         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
18384
18385 2014-06-02  Tom de Vries  <tom@codesourcery.com>
18386
18387         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
18388         case that x has VOIDmode.
18389
18390 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
18391
18392         * varasm.c (copy_constant): Delete function.
18393         (build_constant_desc): Don't call it.
18394
18395 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18396
18397         PR target/61154
18398         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
18399         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
18400         with immediate_operand.
18401
18402 2014-06-02  Andreas Schwab  <schwab@suse.de>
18403
18404         * config/ia64/ia64.c
18405         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
18406         pending_data_specs first.
18407
18408 2014-06-02  Richard Biener  <rguenther@suse.de>
18409
18410         PR tree-optimization/61378
18411         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
18412         valueized_anything.
18413
18414 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
18415
18416         * config/i386/constraints.md (Bw): Rename from 'w'.
18417         (Bz): Rename from 'z'.
18418         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
18419
18420 2014-06-01  Kai Tietz  <ktietz@redhat.com>
18421
18422         PR target/61377
18423         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
18424         * config/i386/i386.md (sibcall_insn_operand): Use Bs
18425         instead of m constraint.
18426
18427 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
18428
18429         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
18430         a separate alternative where the scratch operand 2 is marked as
18431         early clobber.
18432
18433 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
18434
18435         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
18436         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
18437         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
18438         and __builtins_arm_get_fpscr.
18439         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
18440         __builtins_arm_get_fpscr.
18441         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
18442         __builtins_arm_ldfpscr.
18443         (arm_atomic_assign_expand_fenv): New function.
18444         * config/arm/vfp.md (set_fpscr): New pattern.
18445         (get_fpscr) : Likewise.
18446         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
18447         VUNSPEC_SET_FPSCR.
18448         * doc/extend.texi (AARCH64 Built-in Functions) : Document
18449         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
18450
18451 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
18452
18453         * asan.c (report_error_func): Add SLOW_P argument, use
18454         BUILT_IN_ASAN_*_N if set.
18455         (build_check_stmt): Likewise.
18456         (instrument_derefs): If T has insufficient alignment,
18457         force same handling as for odd sizes.
18458
18459         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
18460         BUILT_IN_ASAN_REPORT_STORE_N): New.
18461         * asan.c (struct asan_mem_ref): Change access_size type to
18462         HOST_WIDE_INT.
18463         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
18464         update_mem_ref_hash_table): Likewise.
18465         (asan_mem_ref_hasher::hash): Hash in a HWI.
18466         (report_error_func): Change size_in_bytes argument to HWI.
18467         Use *_N builtins if size_in_bytes is larger than 16 or not power of
18468         two.
18469         (build_shadow_mem_access): New function.
18470         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
18471         Handle size_in_bytes not power of two or larger than 16.
18472         (instrument_derefs): Don't give up if size_in_bytes is not
18473         power of two or is larger than 16.
18474
18475 2014-05-30  Kai Tietz  <ktietz@redhat.com>
18476
18477         PR target/60104
18478         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
18479         for sibling-tail-calls.
18480         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
18481         to its use.
18482         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
18483         (sibcall_insn_operand): Add check for sibcall_memory_operand.
18484
18485 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
18486
18487         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
18488         * config/avr/avr-tables.opt: Regenerate.
18489         * config/avr/t-multilib: Regenerate.
18490         * doc/avr-mmcu.texi: Regenerate.
18491
18492 2014-05-30  Ian Lance Taylor  <iant@google.com>
18493
18494         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
18495         target("sse").
18496
18497 2014-05-30  Tom de Vries  <tom@codesourcery.com>
18498
18499         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
18500         Redefine as true.
18501
18502 2014-05-30  Tom de Vries  <tom@codesourcery.com>
18503
18504         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
18505         * lra.c (initialize_lra_reg_info_element): Add init of
18506         actual_call_used_reg_set field.
18507         (lra): Call lra_create_live_ranges before lra_inheritance for
18508         -fuse-caller-save.
18509         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
18510         -fuse-caller-save.
18511         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
18512         instead of call_used_reg_set for -fuse-caller-save.
18513         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
18514
18515 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18516
18517         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
18518         to mov_imm.
18519         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
18520
18521 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
18522
18523         * ira.c (ira_get_dup_out_num): Check for output operands at
18524         the start of the loop.  Handle cases where an included alternative
18525         follows an excluded one.
18526
18527 2014-05-29  Mike Stump  <mikestump@comcast.net>
18528
18529         PR debug/61352
18530         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
18531         post ld passes when lto is used.
18532
18533 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
18534
18535         PR rtl-optimization/61325
18536         * lra-constraints.c (process_address): Rename to process_address_1.
18537         (process_address): New function.
18538
18539 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
18540
18541         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
18542         TYPES_BINOPV): New static data.
18543         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
18544         New builtin.
18545         * config/aarch64/aarch64-simd.md (aarch64_ext,
18546         aarch64_im_lane_boundsi): New patterns.
18547         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
18548         patterns for EXT.
18549         (aarch64_evpc_ext): New function.
18550
18551         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
18552
18553         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
18554         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
18555         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
18556         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
18557         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
18558
18559 2014-05-29  Tom de Vries  <tom@codesourcery.com>
18560
18561         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
18562
18563 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
18564             Richard Sandiford  <rdsandiford@googlemail.com>
18565
18566         * arm/iterators.md (shiftable_ops): New code iterator.
18567         (t2_binop0, arith_shift_insn): New code attributes.
18568         * arm/predicates.md (shift_nomul_operator): New predicate.
18569         * arm/arm.md (insn_enabled): Delete.
18570         (enabled): Remove insn_enabled test.
18571         (*arith_shiftsi): Delete.  Replace with ...
18572         (*<arith_shift_insn>_multsi): ... new pattern.
18573         (*<arith_shift_insn>_shiftsi): ... new pattern.
18574         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
18575
18576 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
18577             Tom de Vries  <tom@codesourcery.com>
18578
18579         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
18580         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
18581         clobber.
18582         (mips_split_call): Use POST_CALL_TMP_REG.
18583         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
18584
18585 2014-05-29  Tom de Vries  <tom@codesourcery.com>
18586
18587         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
18588         with #ifdef STACK_REGS.
18589
18590 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
18591
18592         * varasm.c (get_variable_section): Walk aliases.
18593         (place_block_symbol): Walk aliases.
18594
18595 2014-05-28  Tom de Vries  <tom@codesourcery.com>
18596
18597         Revert:
18598         2014-05-28  Tom de Vries  <tom@codesourcery.com>
18599
18600         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
18601         * lra.c (initialize_lra_reg_info_element): Add init of
18602         actual_call_used_reg_set field.
18603         (lra): Call lra_create_live_ranges before lra_inheritance for
18604         -fuse-caller-save.
18605         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
18606         -fuse-caller-save.
18607         * lra-constraints.c (need_for_call_save_p): Use
18608         actual_call_used_reg_set instead of call_used_reg_set for
18609         -fuse-caller-save.
18610         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
18611
18612 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
18613
18614         * doc/md.texi: Document that the % constraint character must
18615         be at the beginning of the string.
18616         * genoutput.c (validate_insn_alternatives): Check that '=',
18617         '+' and '%' only appear at the beginning of a constraint.
18618         * ira.c (commutative_constraint_p): Delete.
18619         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
18620         at the start of the string.
18621         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
18622         duplicate '='s.
18623         * config/arm/neon.md (bicdi3_neon): Likewise.
18624         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
18625         (slt_si, sltu_si): Likewise.
18626         * config/vax/vax.md (sbcdi3): Likewise.
18627         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
18628         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
18629         (mul64): Move '%' to beginning of constraint.
18630         * config/arm/arm.md (*xordi3_insn): Likewise.
18631         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
18632         (xorsi3): Likewise.
18633
18634 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
18635
18636         * doc/md.texi: Document the restrictions on the "enabled" attribute.
18637
18638 2014-05-28  Jason Merrill  <jason@redhat.com>
18639
18640         PR c++/47202
18641         * cgraph.h (symtab_node::get_comdat_group_id): New.
18642         * cgraphunit.c (analyze_functions): Call it.
18643         * symtab.c (dump_symtab_node): Likewise.
18644         * tree.c (decl_comdat_group_id): New.
18645         * tree.h: Declare it.
18646         * lto-streamer-out.c (write_symbol): Use it.
18647         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
18648
18649 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
18650
18651         PR bootstrap/PR61146
18652         * wide-int.cc: Do not include longlong.h when compiling with clang.
18653
18654 2014-05-28  Richard Biener  <rguenther@suse.de>
18655
18656         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
18657         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
18658         (vrp_visit_assignment_or_call): Print less vertical space.
18659         (vrp_visit_stmt): Likewise.
18660         (vrp_visit_phi_node): Likewise.  For a PHI argument with
18661         VR_VARYING range consider recording it as copy.
18662
18663 2014-05-28  Richard Biener  <rguenther@suse.de>
18664
18665         Revert
18666         2014-05-28  Richard Biener  <rguenther@suse.de>
18667
18668         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
18669
18670 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18671
18672         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
18673         sufficiently aligned and an offset is used at the same time.
18674         (expand_expr_real_1): Likewise.
18675
18676 2014-05-28  Richard Biener  <rguenther@suse.de>
18677
18678         PR middle-end/61045
18679         * fold-const.c (fold_comparison): When folding
18680         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
18681         the sign of the remaining constant operand stays the same.
18682
18683 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
18684
18685         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
18686         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
18687         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
18688         to the assembler.
18689         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
18690         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
18691         (m32bit-doubles) Likewise.
18692         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
18693         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
18694         option for RL78.
18695
18696 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18697
18698         * configure.ac ($gcc_cv_ld_clearcap): New test.
18699         * configure: Regenerate.
18700         * config.in: Regenerate.
18701         * config/sol2.opt (mclear-hwcap): New option.
18702         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
18703         * config/sol2-clearcap.map: Moved here from
18704         testsuite/gcc.target/i386/clearcap.map.
18705         * config/sol2-clearcapv2.map: Move here from
18706         gcc.target/i386/clearcapv2.map.
18707         * config/t-sol2 (install): Depend on install-clearcap-map.
18708         (install-clearcap-map): New target.
18709         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
18710         -mclear-hwcap.
18711
18712 2014-05-28  Richard Biener  <rguenther@suse.de>
18713
18714         * hwint.h (*_HALF_WIDE_INT*): Move to ...
18715         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
18716         ... here and remove the rest.
18717         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
18718
18719 2014-05-28  Richard Biener  <rguenther@suse.de>
18720
18721         PR tree-optimization/61335
18722         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
18723         new range fails, drop to varying.
18724
18725 2014-05-28  Olivier Hainque  <hainque@adacore.com>
18726
18727         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
18728         (CPP_SPEC): Add entry for -mcpu=8548.
18729         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
18730         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
18731
18732 2014-05-28  Tom de Vries  <tom@codesourcery.com>
18733
18734         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
18735         * lra.c (initialize_lra_reg_info_element): Add init of
18736         actual_call_used_reg_set field.
18737         (lra): Call lra_create_live_ranges before lra_inheritance for
18738         -fuse-caller-save.
18739         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
18740         -fuse-caller-save.
18741         * lra-constraints.c (need_for_call_save_p): Use
18742         actual_call_used_reg_set instead of call_used_reg_set for
18743         -fuse-caller-save.
18744         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
18745
18746 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18747             Tom de Vries  <tom@codesourcery.com>
18748
18749         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
18750         to gccoptlist.
18751         (@item -fuse-caller-save): New item.
18752
18753 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18754             Tom de Vries  <tom@codesourcery.com>
18755
18756         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
18757         OPT_fuse_caller_save.
18758
18759 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18760             Tom de Vries  <tom@codesourcery.com>
18761
18762         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
18763         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
18764         get_call_reg_set_usage.
18765         * resource.c (mark_set_resources, mark_target_live_regs): Use
18766         get_call_reg_set_usage.
18767         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
18768         field.
18769         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
18770         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
18771         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18772         * ira-build.c (ira_create_allocno): Init
18773         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18774         (create_cap_allocno, propagate_allocno_info)
18775         (propagate_some_info_from_allocno)
18776         (copy_info_to_removed_store_destinations): Handle
18777         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18778         * ira-costs.c (ira_tune_allocno_costs): Use
18779         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
18780
18781 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18782             Tom de Vries  <tom@codesourcery.com>
18783
18784         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
18785         and function_used_regs_valid fields.
18786         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
18787         find_all_hard_reg_sets.
18788         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
18789         (get_call_reg_set_usage): New function.
18790         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
18791         * regs.h (get_call_reg_set_usage): Declare.
18792
18793 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
18794
18795         PR libgcc/61152
18796         * config/dbx.h (License): Add Runtime Library Exception.
18797         * config/newlib-stdint.h (License): Same.
18798         * config/rtems.h (License): Same
18799         * config/initfini-array.h (License): Same
18800         * config/v850/v850.h (License): Same.
18801         * config/v850/v850-opts.h (License): Same
18802         * config/v850/rtems.h (License): Same.
18803
18804 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
18805
18806         PR target/61044
18807         * doc/extend.texi (Local Labels): Note that label differences are
18808         not supported for AVR.
18809
18810 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
18811             Olivier Hainque  <hainque@adacore.com>
18812
18813         * rtl.h (set_for_reg_notes): Declare.
18814         * emit-rtl.c (set_for_reg_notes): New function.
18815         (set_unique_reg_note): Use it.
18816         * optabs.c (add_equal_note): Likewise
18817
18818 2014-05-27  Andrew Pinski  <apinski@cavium.com>
18819
18820         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
18821         Use <w> for the register in assembly template.
18822         (stack_protect_test): Use the mode of operands[0] for the result.
18823         (stack_protect_test_<mode>): Use <w> for the register
18824         in assembly template.
18825
18826 2014-05-27  DJ Delorie  <dj@redhat.com>
18827
18828         * config/rx/rx.c (add_vector_labels): New.
18829         (rx_output_function_prologue): Call it.
18830         (rx_handle_func_attribute): Don't require empty arguments.
18831         (rx_handle_vector_attribute): New.
18832         (rx_attribute_table): Add "vector" attribute.
18833         * doc/extend.texi (interrupt, vector): Document new/changed
18834         RX-specific attributes.
18835
18836         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
18837
18838 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
18839
18840         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
18841         predicate to detect a negative quotient.
18842
18843 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
18844
18845         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
18846         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
18847         Add X - Y CMP 0 to X CMP Y transformation.
18848         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
18849
18850 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
18851
18852         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
18853         before printing.
18854
18855 2014-05-27  Steve Ellcey  <sellcey@mips.com>
18856
18857         * config/mips/mips.c: Add include of cgraph.h.
18858
18859 2014-05-27  Richard Biener  <rguenther@suse.de>
18860
18861         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
18862
18863 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
18864
18865         PR libgcc/61152
18866         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
18867         * config/arm/arm-cores.def (License): Same.
18868         * config/arm/arm-opts.h (License): Same.
18869         * config/arm/aout.h (License): Same.
18870         * config/arm/bpabi.h (License): Same.
18871         * config/arm/elf.h (License): Same.
18872         * config/arm/linux-elf.h (License): Same.
18873         * config/arm/linux-gas.h (License): Same.
18874         * config/arm/netbsd-elf.h (License): Same.
18875         * config/arm/uclinux-eabi.h (License): Same.
18876         * config/arm/uclinux-elf.h (License): Same.
18877         * config/arm/vxworks.h (License): Same.
18878
18879 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18880
18881         * config/arm/neon.md (neon_bswap<mode>): New pattern.
18882         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
18883         (arm_init_neon_builtins): Handle NEON_BSWAP.
18884         Define required type nodes.
18885         (arm_expand_neon_builtin): Handle NEON_BSWAP.
18886         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
18887         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
18888         * config/arm/iterators.md (VDQHSD): New mode iterator.
18889
18890 2014-05-27  Richard Biener  <rguenther@suse.de>
18891
18892         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
18893         Try using literal operands when comparing value-ranges failed.
18894
18895 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
18896
18897         * ira.c (commutative_operand): Adjust for change to recog_data.
18898         [Missing from previous commit.]
18899
18900 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
18901
18902         * system.h (TEST_BIT): New macro.
18903         * recog.h (alternative_mask): New type.
18904         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
18905         (recog_data_d): Replace alternative_enabled_p array with
18906         enabled_alternatives.
18907         (target_recog): New structure.
18908         (default_target_recog, this_target_recog): Declare.
18909         (get_enabled_alternatives, recog_init): Likewise.
18910         * recog.c (default_target_recog, this_target_recog): New variables.
18911         (get_enabled_alternatives): New function.
18912         (extract_insn): Use it.
18913         (recog_init): New function.
18914         (preprocess_constraints, constrain_operands): Adjust for change to
18915         recog_data.
18916         * postreload.c (reload_cse_simplify_operands): Likewise.
18917         * reload.c (find_reloads): Likewise.
18918         * ira-costs.c (record_reg_classes): Likewise.
18919         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
18920         all alternatives after a disabled one would be skipped.
18921         (ira_implicitly_set_insn_hard_regs): Likewise.
18922         * ira.c (ira_setup_alts): Adjust for change to recog_data.
18923         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
18924         with enabled_alternatives.
18925         * lra.c (free_insn_recog_data): Update accordingly.
18926         (lra_update_insn_recog_data): Likewise.
18927         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
18928         * lra-constraints.c (process_alt_operands): Likewise.  Handle
18929         only_alternative as part of the enabled mask.
18930         * target-globals.h (this_target_recog): Declare.
18931         (target_globals): Add a recog field.
18932         (restore_target_globals): Restore this_target_recog.
18933         * target-globals.c: Include recog.h.
18934         (default_target_globals): Initialize recog field.
18935         (save_target_globals): Likewise.
18936         * reginfo.c (reinit_regs): Call recog_init.
18937         * toplev.c (backend_init_target): Likewise.
18938
18939 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
18940
18941         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
18942         rather than any named insn's code.
18943
18944 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
18945
18946         PR libgcc/61152
18947         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
18948         * config/arm/arm-cores.def (License): Same.
18949
18950 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
18951
18952         * tree.h (decl_comdat_group): Declare.
18953         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
18954         * tree.c (decl_comdat_group): Here.
18955
18956 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
18957
18958         PR rtl-optimization/61222
18959         * combine.c (simplify_shift_const_1): When moving a PLUS outside
18960         the shift, truncate the PLUS operand to the result mode.
18961
18962 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
18963
18964         PR target/61271
18965         * config/i386/i386.c (ix86_rtx_costs)
18966         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
18967         Fix condition.
18968
18969 2014-05-26  Martin Jambor  <mjambor@suse.cz>
18970
18971         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
18972         subreg uses.
18973
18974 2014-05-26  Richard Biener  <rguenther@suse.de>
18975
18976         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
18977         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
18978         Provide specializations.
18979         (wi::int_traits <HOST_WIDE_INT>,
18980         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
18981
18982 2014-05-26  Alan Modra  <amodra@gmail.com>
18983
18984         PR target/61098
18985         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
18986         params and return a bool.  Remove dead code.  Update comment.
18987         Assert we have a const_int source.  Remove bogus code from
18988         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
18989         handling of constants > 2G and reg_equal note, from..
18990         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
18991         return value.  Update comment.  If we can, use a new pseudo
18992         for intermediate calculations.
18993         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
18994         prototype.
18995         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
18996         call to rs6000_emit_set_const in splitter.
18997         (movdi_internal64+2, +3): Likewise.
18998
18999 2014-05-26  Richard Biener  <rguenther@suse.de>
19000
19001         * system.h: Define __STDC_FORMAT_MACROS before
19002         including inttypes.h.
19003         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
19004         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
19005         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
19006         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
19007         HOST_WIDEST_INT_C): Remove.
19008         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
19009         if C99 inttypes.h is not available.
19010         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
19011         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
19012         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
19013         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
19014         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
19015         (struct output_info): Likewise.
19016         (print_statistics): Adjust.
19017         (dump_bitmap_statistics): Likewise.
19018         * bt-load.c (migrate_btr_defs): Print with PRId64.
19019         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
19020         (MAX_SAFE_MULTIPLIER): Adjust.
19021         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
19022         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
19023         dump_cgraph_node): Likewise.
19024         * final.c (dump_basic_block_info): Likewise.
19025         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
19026         * gcov.c (format_gcov): Likewise.
19027         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
19028         for calculation.
19029         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
19030         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
19031         (inline_small_functions, dump_overall_stats, dump_inline_stats):
19032         Use PRId64 for dumping.
19033         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
19034         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
19035         (add_allocno_hard_regs): Adjust.
19036         * loop-doloop.c (doloop_modify): Print using PRId64.
19037         * loop-iv.c (inverse): Compute in uint64_t.
19038         (determine_max_iter, iv_number_of_iterations): Likewise.
19039         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
19040         Print using PRId64.
19041         * lto-streamer-out.c (write_symbol): Use uint64_t.
19042         * mcf.c (CAP_INFINITY): Use int64_t maximum.
19043         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
19044         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
19045         * modulo-sched.c (const_iteration_count): Use int64_t.
19046         (sms_schedule): Dump using PRId64.
19047         * predict.c (dump_prediction): Likewise.
19048         * pretty-print.h (pp_widest_integer): Remove.
19049         * profile.c (get_working_sets, is_edge_inconsistent,
19050         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
19051         * tree-pretty-print.c (pp_double_int): Remove case handling
19052         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
19053         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
19054         and adjust users.
19055         (pass_optimize_bswap::execute): Remove restriction on hosts.
19056         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
19057         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
19058         * tree.c (widest_int_cst_value): Remove.
19059         * tree.h (widest_int_cst_value): Likewise.
19060         * value-prof.c (dump_histogram_value): Print using PRId64.
19061         * gengtype.c (main): Also inject int64_t.
19062         * ggc-page.c (struct max_alignment): Use int64_t.
19063         * alloc-pool.c (struct allocation_object_def): Likewise.
19064         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
19065         for computation.
19066         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
19067         * doc/tm.texi: Regenerated.
19068         * gengtype-lex.l (IWORD): Handle [u]int64_t.
19069         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
19070         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
19071         mmix_output_register_setting): Use [u]int64_t in prototypes.
19072         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
19073         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
19074         mmix_output_octa, mmix_output_shifted_value): Adjust.
19075         (mmix_intval): Adjust.  Remove unreachable case.
19076         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
19077
19078 2014-05-26  Richard Biener  <rguenther@suse.de>
19079
19080         * configure.ac: Drop __int64 type check.  Insist that we
19081         found uint64_t and int64_t.
19082         * hwint.h (HOST_BITS_PER___INT64): Remove.
19083         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
19084         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
19085         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
19086         (HOST_WIDEST_FAST_INT): Remove __int64 case.
19087         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
19088         for dst_q_src_df_rms_cdt.
19089         * configure: Regenerate.
19090         * config.in: Likewise.
19091
19092 2014-05-26  Michael Tautschnig  <mt@debian.org>
19093
19094         PR target/61249
19095         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
19096         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
19097
19098 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19099
19100         PR rtl-optimization/61278
19101         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
19102
19103 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19104
19105         PR rtl-optimization/61220
19106         Part of PR rtl-optimization/61225
19107         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
19108         insn; skip split_edge for a block with only one successor.
19109
19110 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19111
19112         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
19113         for variables.
19114
19115 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19116
19117         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
19118         (update_vtable_references): New function.
19119         (function_and_variable_visibility): Rewrite also vtable initializers.
19120         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
19121
19122 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19123
19124         * ggc.h (ggc_grow): New function.
19125         * ggc-none.c (ggc_grow): New function.
19126         * ggc-page.c (ggc_grow): Likewise.
19127
19128 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19129
19130         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
19131         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
19132         comdat_can_be_unshared_p, cgraph_externally_visible_p,
19133         varpool_externally_visible_p, can_replace_by_local_alias,
19134         update_visibility_by_resolution_info, function_and_variable_visibility,
19135         pass_data_ipa_function_and_variable_visibility,
19136         make_pass_ipa_function_and_variable_visibility,
19137         whole_program_function_and_variable_visibility,
19138         pass_data_ipa_whole_program_visibility,
19139         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
19140         * cgraph.h (cgraph_local_node_p): Declare.
19141         * ipa-visibility.c: New file.
19142         * Makefile.in (OBJS): Add ipa-visiblity.o
19143
19144 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19145
19146         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
19147         that var decl is available.
19148
19149 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19150
19151         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
19152         symtab_node pointer.
19153         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
19154         (find_decls_types_r): Do not walk COMDAT_GROUP.
19155         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
19156         * varasm.c (make_decl_one_only): Use set_comdat_group;
19157         create node if needed.
19158         * ipa-inline-transform.c (save_inline_function_body): Update
19159         way we decl->symtab mapping.
19160         * symtab.c (symtab_hash, hash_node, eq_node
19161         symtab_insert_node_to_hashtable): Remove.
19162         (symtab_register_node): Update.
19163         (symtab_unregister_node): Update.
19164         (symtab_get_node): Reimplement as inline function.
19165         (symtab_add_to_same_comdat_group): Update.
19166         (symtab_dissolve_same_comdat_group_list): Update.
19167         (dump_symtab_base): Update.
19168         (verify_symtab_base): Update.
19169         (symtab_make_decl_local): Update.
19170         (fixup_same_cpp_alias_visibility): Update.
19171         (symtab_nonoverwritable_alias): Update.
19172         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
19173         * ipa.c (update_visibility_by_resolution_info): UPdate.
19174         * bb-reorder.c: Include cgraph.h
19175         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
19176         with comdat groups.
19177         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
19178         * cgraph.c (cgraph_get_create_node): Update.
19179         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
19180         and comdat_group_.
19181         (symtab_get_node): Make inline.
19182         (symtab_insert_node_to_hashtable): Remove.
19183         (symtab_can_be_discarded): Update.
19184         (decl_comdat_group): New function.
19185         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
19186         Update.
19187         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
19188         comdat group name.
19189         (read_comdat_group): New function.
19190         (input_node, input_varpool_node): Use it.
19191         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
19192         comdat groups.
19193         * mips.c (mips_start_unique_function): Likewise.
19194         (ix86_code_end): Likewise.
19195         (rs6000_code_end): Likweise.
19196         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
19197
19198 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19199
19200         * gengtype-state.c (fatal_reading_state): Bring offline.
19201         * optabs.c (widening_optab_handler): Bring offline.
19202         * optabs.h (widening_optab_handler): Likewise.
19203         * final.c (get_attr_length_1): Likewise.
19204
19205 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19206
19207         * sched-int.h (sd_iterator_cond): Manually tail recurse.
19208
19209 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19210
19211         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
19212         (ppc440-compare): Include shift with dot.
19213         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
19214         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
19215         without dot.
19216         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
19217         without dot.
19218         (e6500_sfx2): Include it.
19219         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
19220         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
19221         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
19222         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
19223         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
19224         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
19225         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
19226         *lshiftrt_internal1le, *lshiftrt_internal1be,
19227         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
19228         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
19229         *rotldi3_internal10le, *rotldi3_internal10be,
19230         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
19231         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
19232         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
19233         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
19234         define_insns): Use type "shift" in the appropriate alternatives.
19235
19236 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19237
19238         * config/rs6000/rs6000.md (type): Add "logical".  Delete
19239         "fast_compare".
19240         (dot): Adjust comment.
19241         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
19242         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
19243         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
19244         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
19245         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
19246         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
19247         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
19248         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
19249
19250         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
19251         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
19252         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
19253         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
19254         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
19255         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
19256         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
19257         * config/rs6000/8540.md (ppc8540_su): Adjust.
19258         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19259         cell-cmp-microcoded): Adjust.
19260         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
19261         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19262         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
19263         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
19264         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
19265         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
19266         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
19267         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
19268         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
19269         Adjust.
19270         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
19271         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
19272         Adjust.  Adjust comment.
19273         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
19274         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
19275
19276 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19277
19278         * config/rs6000/rs6000.md (type): Add "add".
19279         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
19280         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
19281         define_insns): Use it.
19282         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
19283
19284         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
19285         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
19286         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
19287         * config/rs6000/601.md (ppc601-integer): Adjust.
19288         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
19289         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
19290         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
19291         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
19292         * config/rs6000/8540.md (ppc8540_su): Adjust.
19293         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19294         cell-cmp-microcoded): Adjust.
19295         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
19296         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19297         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
19298         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
19299         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
19300         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
19301         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
19302         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
19303         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
19304         Adjust.
19305         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
19306         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
19307         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
19308         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
19309
19310 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19311
19312         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
19313         "delayed_compare", "var_delayed_compare".
19314         (var_shift): New attribute.
19315         (cell_micro): Adjust.
19316         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
19317         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
19318         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
19319         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
19320         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
19321         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
19322         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
19323         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
19324         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
19325         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
19326         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
19327         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
19328         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
19329         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
19330         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
19331         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
19332         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
19333         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
19334         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
19335         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
19336         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
19337         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
19338         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
19339         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19340         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
19341
19342         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
19343         * config/rs6000/440.md (ppc440-integer): Adjust.
19344         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
19345         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
19346         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
19347         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
19348         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
19349         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
19350         * config/rs6000/8540.md (ppc8540_su): Adjust.
19351         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19352         cell-cmp-microcoded): Adjust.
19353         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
19354         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19355         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
19356         e500mc64_delayed): Adjust.
19357         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
19358         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
19359         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
19360         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
19361         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
19362         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
19363         power6-delayed-compare, power6-var-delayed-compare): Adjust.
19364         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
19365         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
19366         Adjust comment.
19367         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
19368         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
19369
19370 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19371
19372         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
19373         (bits): New mode_attr.
19374         (idiv_ldiv): Delete mode_attr.
19375         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): 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-idiv): Adjust.
19381         * config/rs6000/440.md (ppc440-idiv): Adjust.
19382         * config/rs6000/476.md (ppc476-idiv): Adjust.
19383         * config/rs6000/601.md (ppc601-idiv): Adjust.
19384         * config/rs6000/603.md (ppc603-idiv): Adjust.
19385         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
19386         ppc620-ldiv): Adjust.
19387         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
19388         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
19389         * config/rs6000/8540.md (ppc8540_divide): Adjust.
19390         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
19391         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
19392         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
19393         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
19394         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
19395         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
19396         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
19397         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
19398         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
19399         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
19400         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
19401         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
19402         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
19403         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
19404         * config/rs6000/titan.md (titan_fxu_div): Adjust.
19405
19406 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19407
19408         * config/rs6000/rs6000.md (type): Delete "insert_word",
19409         "insert_dword".  Add "insert".
19410         (size): Update comment.
19411         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19412         insn_must_be_first_in_group): Adjust.
19413         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
19414         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
19415         *insvsi_internal6, insvdi_internal): Adjust.
19416
19417         * config/rs6000/40x.md (ppc403-integer): Adjust.
19418         * config/rs6000/440.md (ppc440-integer): Adjust.
19419         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
19420         * config/rs6000/601.md (ppc601-integer): Adjust.
19421         * config/rs6000/603.md (ppc603-integer): Adjust.
19422         * config/rs6000/6xx.md (ppc604-integer): Adjust.
19423         * config/rs6000/7450.md (ppc7450-integer): Adjust.
19424         * config/rs6000/7xx.md (ppc750-integer): Adjust.
19425         * config/rs6000/8540.md (ppc8540_su): Adjust.
19426         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
19427         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
19428         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19429         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
19430         * config/rs6000/e5500.md (e5500_sfx): Adjust.
19431         * config/rs6000/e6500.md (e6500_sfx): Adjust.
19432         * config/rs6000/mpc.md (mpccore-integer): Adjust.
19433         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
19434         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
19435         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
19436         * config/rs6000/power7.md (power7-integer): Adjust.
19437         * config/rs6000/power8.md (power8-1cyc): Adjust.
19438         * config/rs6000/rs64.md (rs64a-integer): Adjust.
19439         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
19440
19441 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19442
19443         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
19444         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
19445         (size): New attribute.
19446         (dot): New attribute.
19447         (cell_micro): Adjust.
19448         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
19449         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
19450         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
19451         umuldi3_highpart): Adjust.
19452         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19453         rs6000_adjust_priority, is_nonpipeline_insn,
19454         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
19455
19456         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
19457         ppc405-imul3): Adjust.
19458         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
19459         * config/rs6000/476.md (ppc476-imul): Adjust.
19460         * config/rs6000/601.md (ppc601-imul): Adjust.
19461         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
19462         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
19463         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
19464         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
19465         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
19466         Adjust.
19467         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
19468         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
19469         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
19470         cell-imul): Adjust.
19471         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
19472         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
19473         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
19474         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
19475         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
19476         * config/rs6000/mpc.md (mpccore-imul): Adjust.
19477         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
19478         power4-lmul, power4-imul, power4-imul3): Adjust.
19479         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
19480         power5-lmul, power5-imul, power5-imul3): Adjust.
19481         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
19482         power6-lmul, power6-imul, power6-imul3): Adjust.
19483         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
19484         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
19485
19486         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
19487         rs64a-lmul): Adjust.
19488         * config/rs6000/titan.md (titan_imul): Adjust.
19489
19490 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19491
19492         * config/rs6000/rs6000.md (type): Add new value "halfmul".
19493         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
19494         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
19495         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
19496         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
19497         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
19498         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
19499         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
19500         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
19501         * config/rs6000/titan.md: Delete nonsensical comment.
19502         (titan_imul): Add type imul3.
19503         (titan_mulhw): Remove type imul3; add type halfmul.
19504
19505 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19506
19507         * config/rs6000/rs6000.md (type): Reorder, reformat.
19508
19509 2014-05-23  Martin Jambor  <mjambor@suse.cz>
19510
19511         PR tree-optimization/53787
19512         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
19513         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
19514         analysis_done, update all uses.
19515         * ipa-prop.c: Include domwalk.h
19516         (param_analysis_info): Removed.
19517         (param_aa_status): New type.
19518         (ipa_bb_info): Likewise.
19519         (func_body_info): Likewise.
19520         (ipa_get_bb_info): New function.
19521         (aa_overwalked): Likewise.
19522         (find_dominating_aa_status): Likewise.
19523         (parm_bb_aa_status_for_bb): Likewise.
19524         (parm_preserved_before_stmt_p): Changed to use new param AA info.
19525         (load_from_unmodified_param): Accept func_body_info as a parameter
19526         instead of parms_ainfo.
19527         (parm_ref_data_preserved_p): Changed to use new param AA info.
19528         (parm_ref_data_pass_through_p): Likewise.
19529         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
19530         (compute_complex_assign_jump_func): Changed to use new param AA info.
19531         (compute_complex_ancestor_jump_func): Likewise.
19532         (ipa_compute_jump_functions_for_edge): Likewise.
19533         (ipa_compute_jump_functions): Removed.
19534         (ipa_compute_jump_functions_for_bb): New function.
19535         (ipa_analyze_indirect_call_uses): Likewise, moved variable
19536         declarations down.
19537         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
19538         and info, moved variable declarations down.
19539         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
19540         node and info.
19541         (ipa_analyze_stmt_uses): Likewise.
19542         (ipa_analyze_params_uses): Removed.
19543         (ipa_analyze_params_uses_in_bb): New function.
19544         (ipa_analyze_controlled_uses): Likewise.
19545         (free_ipa_bb_info): Likewise.
19546         (analysis_dom_walker): New class.
19547         (ipa_analyze_node): Handle node-specific forbidden analysis,
19548         initialize and free func_body_info, use dominator walker.
19549         (ipcp_modif_dom_walker): New class.
19550         (ipcp_transform_function): Create and free func_body_info, use
19551         ipcp_modif_dom_walker, moved a lot of functionality there.
19552
19553 2014-05-23  Marek Polacek  <polacek@redhat.com>
19554             Jakub Jelinek  <jakub@redhat.com>
19555
19556         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
19557         * gcc.c (sanitize_spec_function): Likewise.
19558         * convert.c (convert_to_integer): Include "ubsan.h".  Add
19559         floating-point to integer instrumentation.
19560         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
19561         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
19562         SANITIZE_NONDEFAULT.
19563         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
19564         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
19565         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
19566         * ubsan.c: Include "realmpfr.h" and "dfp.h".
19567         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
19568         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
19569         float/double/long double.
19570         (ubsan_instrument_float_cast): New function.
19571         * ubsan.h (ubsan_instrument_float_cast): Declare.
19572
19573 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
19574
19575         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
19576         predicate.
19577         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
19578         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
19579         Adjust for tailcalling through registers.
19580         * config/aarch64/aarch64.h (enum reg_class): New caller save
19581         register class.
19582         (REG_CLASS_NAMES): Likewise.
19583         (REG_CLASS_CONTENTS): Likewise.
19584         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
19585         Allow tailcalling without decls.
19586
19587 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
19588
19589         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
19590         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
19591
19592         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
19593         gsi, and variables v_* to v*.
19594
19595 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
19596
19597         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
19598
19599 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
19600
19601         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
19602         * omp-low.c: Update accordingly.
19603
19604         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
19605         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
19606         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
19607         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
19608         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
19609         GF_OMP_TARGET_KIND_UPDATE.
19610
19611         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
19612         Explicitly enumerate the expected region types.
19613
19614 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
19615
19616         PR other/56955
19617         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
19618         documentation; the old documentation didn't clearly state the
19619         constraints on the contents of the pointed-to storage.
19620
19621 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19622
19623         Fix bootstrap error on ia64
19624         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
19625         Return default value.
19626
19627 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19628
19629         PR tree-optimization/54733
19630         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
19631         (CMPNOP): Define.
19632         (find_bswap_or_nop_load): New.
19633         (find_bswap_1): Renamed to ...
19634         (find_bswap_or_nop_1): This. Also add support for memory source.
19635         (find_bswap): Renamed to ...
19636         (find_bswap_or_nop): This. Also add support for memory source and
19637         detection of bitwise operations equivalent to load in target
19638         endianness.
19639         (execute_optimize_bswap): Likewise. Also move its leading comment back
19640         in place and split statement transformation into ...
19641         (bswap_replace): This.
19642
19643 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
19644
19645         PR rtl-optimization/61215
19646         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
19647         simplify_gen_subreg until final substitution.
19648
19649 2014-05-23  Alan Modra  <amodra@gmail.com>
19650
19651         PR target/61231
19652         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
19653         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
19654         Use "Y" constraint rather than "m".
19655
19656 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
19657
19658         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
19659         define.
19660         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
19661         New function declaration.
19662         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
19663         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
19664         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
19665         (aarch64_init_builtins) : Initialize builtins
19666         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
19667         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
19668         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
19669         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
19670         and __builtins_aarch64_set_fpsr.
19671         (aarch64_atomic_assign_expand_fenv): New function.
19672         * config/aarch64/aarch64.md (set_fpcr): New pattern.
19673         (get_fpcr) : Likewise.
19674         (set_fpsr) : Likewise.
19675         (get_fpsr) : Likewise.
19676         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
19677          and UNSPECV_SET_FPSR.
19678         * doc/extend.texi (AARCH64 Built-in Functions) : Document
19679         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
19680         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
19681
19682 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
19683
19684         PR rtl-optimization/60969
19685         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
19686         constraints.  Set up mem cost for NO_REGS case.
19687
19688 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
19689
19690         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
19691
19692 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
19693
19694         * config/darwin.c: Include "lto-section-names.h".
19695         (LTO_SEGMENT_NAME): Don't define.
19696         * config/i386/winnt.c: Include "lto-section-names.h".
19697         * lto-streamer.c: Include "lto-section-names.h".
19698         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
19699         * lto-wrapper.c: Include "lto-section-names.h".
19700         (LTO_SECTION_NAME_PREFIX): Don't define.
19701         * lto-section-names.h: New file.
19702         * cgraphunit.c: Include "lto-section-names.h".
19703
19704 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
19705
19706         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
19707
19708 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
19709
19710         PR target/61208
19711         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
19712
19713 2014-05-22  Nick Clifton  <nickc@redhat.com>
19714
19715         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
19716
19717 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
19718
19719         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
19720         -> (T)A transformation to integer types.
19721
19722 2014-05-22  Teresa Johnson  <tejohnson@google.com>
19723
19724         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
19725         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
19726         (gcov_rewrite): Use gcov_nonruntime_assert.
19727         (gcov_open): Ditto.
19728         (gcov_write_words): Ditto.
19729         (gcov_write_length): Ditto.
19730         (gcov_read_words): Use gcov_nonruntime_assert, and remove
19731         gcc_assert from IN_LIBGCOV code.
19732         (gcov_read_summary): Use gcov_error to flag profile corruption.
19733         (gcov_sync): Use gcov_nonruntime_assert.
19734         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
19735         (gcov_histo_index): Use gcov_nonruntime_assert.
19736         (static void gcov_histogram_merge): Ditto.
19737         (compute_working_sets): Ditto.
19738         * gcov-io.h (gcov_nonruntime_assert): Define.
19739         (gcov_error): Define for !IN_LIBGCOV
19740
19741 2014-05-22  Richard Biener  <rguenther@suse.de>
19742
19743         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
19744         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
19745         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
19746         and deallocation site.
19747         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
19748         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
19749         passing through the incoming points-to set.
19750         (handle_lhs_call): Use flags argument instead of recomputing it.
19751         (find_func_aliases_for_call): Call handle_lhs_call with proper
19752         call return flags.
19753
19754 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
19755
19756         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
19757         all padding bits in REAL_VALUE_TYPE are cleared.
19758
19759 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19760
19761         Cleanup and improve multipass_dfa_lookahead_guard
19762         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
19763         (core2i7_first_cycle_multipass_begin,)
19764         (core2i7_first_cycle_multipass_issue,)
19765         (core2i7_first_cycle_multipass_backtrack): Update signature.
19766         * config/ia64/ia64.c
19767         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
19768         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
19769         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
19770         hook definition.
19771         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
19772         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
19773         values.
19774         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
19775         return values.
19776         * doc/tm.texi: Regenerate.
19777         * doc/tm.texi.in
19778         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
19779         * haifa-sched.c (ready_try): Make signed to allow negative values.
19780         (rebug_ready_list_1): Update.
19781         (choose_ready): Simplify.
19782         (sched_extend_ready_list): Update.
19783
19784 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19785
19786         Remove IA64 speculation tweaking flags
19787         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
19788         speculation tuning flags.
19789         (msched-prefer-non-data-spec-insns,)
19790         (msched-prefer-non-control-spec-insns): Obsolete options.
19791         * haifa-sched.c (choose_ready): Remove handling of
19792         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
19793         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
19794         and PREFER_NON_DATA_SPEC.
19795         * sel-sched.c (process_spec_exprs): Remove handling of
19796         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
19797
19798 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19799
19800         Improve scheduling debug output
19801         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
19802         (advance_one_cycle): Update.
19803         (schedule_insn, queue_to_ready): Add debug printouts.
19804         (debug_ready_list_1): New static function.
19805         (debug_ready_list): Update.
19806         (max_issue): Add debug printouts.
19807         (dump_insn_stream): New static function.
19808         (schedule_block): Use it.  Also better indent printouts.
19809
19810 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19811
19812         Fix sched_insn debug counter
19813         * haifa-sched.c (schedule_insn): Update.
19814         (struct haifa_saved_data): Add nonscheduled_insns_begin.
19815         (save_backtrack_point, restore_backtrack_point): Update.
19816         (first_nonscheduled_insn): New static function.
19817         (queue_to_ready, choose_ready): Use it.
19818         (schedule_block): Init nonscheduled_insns_begin.
19819         (sched_emit_insn): Update.
19820
19821
19822 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
19823
19824         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
19825         to GENERAL_REGS.
19826         (aarch64_secondary_reload) : LikeWise.
19827         (aarch64_class_max_nregs) : Remove CORE_REGS.
19828         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
19829         (REG_CLASS_NAMES) : Likewise.
19830         (REG_CLASS_CONTENTS) : LikeWise.
19831         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
19832
19833 2014-05-21  Guozhi Wei  <carrot@google.com>
19834
19835         PR target/61202
19836         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
19837         constraint.
19838         (vqdmulhq_n_s16): Likewise.
19839
19840 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
19841
19842         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
19843
19844 2014-05-21  Marek Polacek  <polacek@redhat.com>
19845
19846         PR sanitizer/61272
19847         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
19848
19849 2014-05-21  Martin Jambor  <mjambor@suse.cz>
19850
19851         * doc/invoke.texi (Optimize Options): Document parameters
19852         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
19853         ipa-cp-array-index-hint-bonus.
19854
19855 2014-05-21  Mark Wielaard  <mjw@redhat.com>
19856
19857         PR debug/16063
19858         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
19859         version >= 3 or not strict DWARF.
19860         * langhooks.h (struct lang_hooks_for_types): Add
19861         enum_underlying_base_type.
19862         * langhooks.c (lhd_enum_underlying_base_type): New function.
19863         * gcc/langhooks.h (struct lang_hooks_for_types): Add
19864         enum_underlying_base_type.
19865         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
19866         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
19867         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
19868
19869 2014-05-21  Richard Biener  <rguenther@suse.de>
19870
19871         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
19872
19873 2014-05-21  John Marino  <gnugcc@marino.st>
19874
19875         * config.gcc (*-*-dragonfly*): New target.
19876         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
19877         * configure: Regenerate.
19878         * config/dragonfly-stdint.h: New.
19879         * config/dragonfly.h: New.
19880         * config/dragonfly.opt: New.
19881         * config/i386/dragonfly.h: New.
19882         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
19883
19884 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
19885
19886         * tree.def (VOID_CST): New.
19887         * tree-core.h (TI_VOID): New.
19888         * tree.h (void_node): New.
19889         * tree.c (tree_node_structure_for_code, tree_code_size)
19890         (iterative_hash_expr): Handle VOID_CST.
19891         (build_common_tree_nodes): Initialize void_node.
19892
19893 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
19894
19895         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
19896         functions.
19897         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
19898
19899         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
19900         more places.
19901
19902         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
19903         flag_reorder_blocks_and_partition.
19904         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
19905
19906 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
19907
19908         PR target/54236
19909         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
19910         constraints.
19911         (*addc_r_t): Add new insn_and_split.
19912
19913 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
19914
19915         PR middle-end/61252
19916         * omp-low.c (handle_simd_reference): New function.
19917         (lower_rec_input_clauses): Use it.  Defer adding reference
19918         initialization even for reduction without placeholder if in simd,
19919         handle it properly later on.
19920
19921 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
19922
19923         PR tree-optimization/60899
19924         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
19925         assume all static symbols will have definition wile parsing and
19926         check the do have definition later in compilation; check that
19927         variable referring symbol will be output before concluding that
19928         reference is safe; be conservative for referring local statics;
19929         be more precise about when comdat is output in other partition.
19930
19931 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
19932
19933         PR bootstrap/60984
19934         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
19935         parameter.
19936         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
19937         (ipa_inline): Loop inline_to_all_callers until no more aliases
19938         are removed.
19939
19940 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
19941
19942         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
19943         set writeonly flag only for vars actually written to.
19944
19945 2014-05-20  Dehao Chen  <dehao@google.com>
19946
19947         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
19948         and callee count to get clone count.
19949         * tree-inline.c (expand_call_inline): Use callee count instead of bb
19950         count in copy_body.
19951
19952 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
19953
19954         PR rtl-optimization/61243
19955         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
19956
19957 2014-05-20  Xinliang David Li  <davidxl@google.com>
19958
19959         * cgraphunit.c (walk_polymorphic_call_targets): Add
19960         dbgcnt and fopt-info support.
19961         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
19962         * ipa-devirt.c (ipa_devirt): Ditto.
19963         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
19964         * ipa.c (walk_polymorphic_call_targets): Ditto.
19965         * gimple-fold.c (fold_gimple_assign): Ditto.
19966         (gimple_fold_call): Ditto.
19967         * dbgcnt.def: New counter.
19968
19969 2014-05-20  DJ Delorie  <dj@redhat.com>
19970
19971         * config/msp430/msp430.md (split): Don't allow subregs when
19972         splitting SImode adds.
19973         (andneghi): Fix subtraction logic.
19974         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
19975
19976 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
19977
19978         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
19979         symbols.
19980         * except.c (switch_to_exception_section, resolve_unique_section,
19981         get_named_text_section, default_function_rodata_section,
19982         align_variable, get_block_for_decl, default_section_type_flags):
19983         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
19984         * symtab.c (symtab_add_to_same_comdat_group,
19985         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
19986         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
19987         Likewise.
19988         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
19989         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
19990         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
19991         (c6x_function_in_section_p): Likewise.
19992         * config/darwin.c (machopic_select_section): Likewise.
19993         * config/arm/arm.c (arm_function_in_section_p): Likewise.
19994         * config/mips/mips.c (mips_function_rodata_section): Likewise.
19995         * config/mep/mep.c (mep_select_section): LIkewise.
19996         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
19997
19998 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
19999
20000         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
20001         EH region of calls to pure functions that can throw an exception.
20002         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
20003         (copy_reference_ops_from_call): Also copy the EH region of the call if
20004         it can throw an exception.
20005
20006 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20007
20008         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
20009         nested VEC_SELECTs that are inverses of each other.
20010
20011 2014-05-20  Richard Biener  <rguenther@suse.de>
20012
20013         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
20014         (extract_and_process_scc_for_name): not here.
20015         (cond_dom_walker::before_dom_children): Only process
20016         stmts that end the BB in interesting ways.
20017         (run_scc_vn): Mark param uses as visited.
20018
20019 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20020
20021         * config/arm/arm.md (arith_shiftsi): Do not predicate for
20022         arm_restrict_it.
20023
20024 2014-05-20  Nick Clifton  <nickc@redhat.com>
20025
20026         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
20027         (msp430_gimplify_va_arg_expr): New function.
20028         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
20029
20030         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
20031         operand 0 in order to prevent confusion about the number of
20032         registers involved.
20033
20034 2014-05-20  Richard Biener  <rguenther@suse.de>
20035
20036         PR tree-optimization/61221
20037         * tree-ssa-pre.c (el_to_update): Remove.
20038         (eliminate_dom_walker::before_dom_children): Handle released
20039         VDEFs by value-numbering them to the associated VUSE.  Update
20040         stmt immediately for substituted call address.
20041         (eliminate): Remove delayed stmt updating code.
20042         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
20043         possibly late re-numbered vuses.
20044         (vn_reference_lookup_2): Adjust.
20045         (vn_reference_lookup_pieces): Likewise.
20046         (vn_reference_lookup): Likewise.
20047
20048 2014-05-20  Richard Biener  <rguenther@suse.de>
20049
20050         * config.gcc: Remove need_64bit_hwint.
20051         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
20052         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
20053         it to be true.
20054         * config.in: Regenerate.
20055         * configure: Likewise.
20056
20057 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
20058
20059         * doc/extend.texi: Create Label Attributes section,
20060         move all label attributes into it and reference it.
20061
20062 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
20063
20064         * arm.c (thumb1_reorg): When scanning backwards skip anything
20065         that's not a proper insn.
20066
20067 2014-05-19  Richard Biener  <rguenther@suse.de>
20068
20069         PR tree-optimization/61221
20070         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20071         Do nothing for unreachable blocks.
20072         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
20073         Improve unreachability detection.
20074
20075 2014-05-19  Richard Biener  <rguenther@suse.de>
20076
20077         PR tree-optimization/61209
20078         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
20079
20080 2014-05-19  Nick Clifton  <nickc@redhat.com>
20081
20082         * except.c (init_eh): Fix computation of builtin setjmp buffer
20083         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
20084
20085 2014-05-19  Richard Biener  <rguenther@suse.de>
20086
20087         PR tree-optimization/61184
20088         * tree-vrp.c (is_negative_overflow_infinity): Use
20089         TREE_OVERFLOW_P and do that check first.
20090         (is_positive_overflow_infinity): Likewise.
20091         (is_overflow_infinity): Likewise.
20092         (vrp_operand_equal_p): Properly treat operands with
20093         differing overflow as not equal.
20094
20095 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
20096
20097         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
20098         shift simplification where it was intended.
20099
20100 2014-05-19  Christian Bruel  <christian.bruel@st.com>
20101
20102         PR target/61195
20103         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
20104
20105 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
20106
20107         PR target/61084
20108         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
20109         than wide_int.
20110
20111 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
20112
20113         * reg-notes.def (CROSSING_JUMP): Likewise.
20114         * rtl.h (rtx_def): Update comment for jump flag.
20115         (CROSSING_JUMP_P): Define.
20116         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
20117         of a REG_CROSSING_JUMP note.
20118         * cfghooks.c (tidy_fallthru_edges): Likewise.
20119         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
20120         * emit-rtl.c (try_split): Likewise.
20121         * haifa-sched.c (sched_create_recovery_edges): Likewise.
20122         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
20123         * jump.c (redirect_jump_2): Likewise.
20124         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
20125         (relax_delay_slots): Likewise.
20126         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
20127         (bbit_di): Likewise.
20128         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
20129         * config/sh/sh.md (jump_compact): Likewise.
20130         * bb-reorder.c (rotate_loop): Likewise.
20131         (pass_duplicate_computed_gotos::execute): Likewise.
20132         (add_reg_crossing_jump_notes): Rename to...
20133         (update_crossing_jump_flags): ...this.
20134         (pass_partition_blocks::execute): Update accordingly.
20135
20136 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
20137
20138         * tree.h: Remove extraneous template <>.
20139
20140 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20141
20142         * ipa.c (symtab_remove_unreachable_nodes): Remove
20143         symbol from comdat group if its body was eliminated.
20144         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
20145         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
20146         (symtab_unregister_node): ... this one.
20147         (verify_symtab_base): More strict checking of comdats.
20148         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
20149
20150 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20151
20152         * tree-pass.h (make_pass_ipa_comdats): New pass.
20153         * timevar.def (TV_IPA_COMDATS): New timevar.
20154         * passes.def (pass_ipa_comdats): Add.
20155         * Makefile.in (OBJS): Add ipa-comdats.o
20156         * ipa-comdats.c: New file.
20157
20158 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20159
20160         * ipa.c (update_visibility_by_resolution_info): New function.
20161         (function_and_variable_visibility): Use it.
20162
20163 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20164
20165         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
20166         New functions.
20167         (FOR_EACH_DEFINED_SYMBOL): New macro.
20168         (varpool_first_static_initializer, varpool_next_static_initializer,
20169         varpool_first_defined_variable, varpool_next_defined_variable):
20170         Fix comments.
20171         (symtab_in_same_comdat_p): Correctly deal with inline functions.
20172
20173 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20174
20175         * ggc-page.c (ggc_handle_finalizers): Add comment.
20176
20177 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20178
20179         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
20180         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
20181         (ggc_internal_cleared_alloc): Likewise.
20182         * ggc-page.c (finalizer): New class.
20183         (vec_finalizer): Likewise.
20184         (globals::finalizers): New member.
20185         (globals::vec_finalizers): Likewise.
20186         (ggc_internal_alloc): Record the finalizer if any for the block being
20187         allocated.
20188         (ggc_handle_finalizers): New function.
20189         (ggc_collect): Call ggc_handle_finalizers.
20190         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
20191         finalizer.
20192         (ggc_internal_cleared_alloc): Likewise.
20193         (finalize): New function.
20194         (need_finalization_p): Likewise.
20195         (ggc_alloc): Install the type's destructor as the finalizer if it
20196         might do something.
20197         (ggc_cleared_alloc): Likewise.
20198         (ggc_vec_alloc): Likewise.
20199         (ggc_cleared_vec_alloc): Likewise.
20200
20201 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20202
20203         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
20204
20205 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20206
20207         * alias.c (record_alias_subset): Adjust.
20208         * bitmap.c (bitmap_element_allocate): Likewise.
20209         (bitmap_gc_alloc_stat): Likewise.
20210         * cfg.c (init_flow): Likewise.
20211         (alloc_block): Likewise.
20212         (unchecked_make_edge): Likewise.
20213         * cfgloop.c (alloc_loop): Likewise.
20214         (flow_loops_find): Likewise.
20215         (rescan_loop_exit): Likewise.
20216         * cfgrtl.c (init_rtl_bb_info): Likewise.
20217         * cgraph.c (insert_new_cgraph_node_version): Likewise.
20218         (cgraph_allocate_node): Likewise.
20219         (cgraph_create_edge_1): Likewise.
20220         (cgraph_allocate_init_indirect_info): Likewise.
20221         * cgraphclones.c (cgraph_clone_edge): Likewise.
20222         * cgraphunit.c (add_asm_node): Likewise.
20223         (init_lowered_empty_function): Likewise.
20224         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
20225         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
20226         (alpha_use_linkage): Likewise.
20227         * config/arc/arc.c (arc_init_machine_status): Likewise.
20228         * config/arm/arm.c (arm_init_machine_status): Likewise.
20229         * config/avr/avr.c (avr_init_machine_status): Likewise.
20230         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
20231         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
20232         * config/cris/cris.c (cris_init_machine_status): Likewise.
20233         * config/darwin.c (machopic_indirection_name): Likewise.
20234         (darwin_build_constant_cfstring): Likewise.
20235         (darwin_enter_string_into_cfstring_table): Likewise.
20236         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
20237         * config/frv/frv.c (frv_init_machine_status): Likewise.
20238         * config/i386/i386.c (get_dllimport_decl): Likewise.
20239         (ix86_init_machine_status): Likewise.
20240         (assign_386_stack_local): Likewise.
20241         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
20242         (i386_pe_maybe_record_exported_symbol): Likewise.
20243         (i386_pe_record_stub): Likewise.
20244         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
20245         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
20246         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
20247         (m32c_note_pragma_address): Likewise.
20248         * config/mep/mep.c (mep_init_machine_status): Likewise.
20249         (mep_note_pragma_flag): Likewise.
20250         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
20251         (mips16_local_alias): Likewise.
20252         (mips_init_machine_status): Likewise.
20253         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
20254         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
20255         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
20256         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
20257         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
20258         * config/pa/pa.c (pa_init_machine_status): Likewise.
20259         (pa_get_deferred_plabel): Likewise.
20260         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
20261         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
20262         (rs6000_init_machine_status): Likewise.
20263         (output_toc): Likewise.
20264         * config/s390/s390.c (s390_init_machine_status): Likewise.
20265         * config/score/score.c (score_output_external): Likewise.
20266         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
20267         * config/spu/spu.c (spu_init_machine_status): Likewise.
20268         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
20269         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
20270         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
20271         * coverage.c (coverage_end_function): Likewise.
20272         * dbxout.c (dbxout_init): Likewise.
20273         * doc/gty.texi: Don't mention variable_size attribute.
20274         * dwarf2cfi.c (new_cfi): Adjust.
20275         (new_cfi_row): Likewise.
20276         (copy_cfi_row): Likewise.
20277         (create_cie_data): Likewise.
20278         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
20279         (new_loc_descr): Likewise.
20280         (find_AT_string_in_table): Likewise.
20281         (add_addr_table_entry): Likewise.
20282         (new_die): Likewise.
20283         (add_var_loc_to_decl): Likewise.
20284         (clone_die): Likewise.
20285         (clone_as_declaration): Likewise.
20286         (break_out_comdat_types): Likewise.
20287         (new_loc_list): Likewise.
20288         (add_loc_descr_to_each): Likewise.
20289         (add_location_or_const_value_attribute): Likewise.
20290         (add_linkage_name): Likewise.
20291         (lookup_filename): Likewise.
20292         (dwarf2out_var_location): Likewise.
20293         (new_line_info_table): Likewise.
20294         (dwarf2out_init): Likewise.
20295         (mem_loc_descriptor): Likewise.
20296         (loc_descriptor): Likewise.
20297         (add_const_value_attribute): Likewise.
20298         (tree_add_const_value_attribute): Likewise.
20299         (comp_dir_string): Likewise.
20300         (dwarf2out_vms_debug_main_pointer): Likewise.
20301         (string_cst_pool_decl): Likewise.
20302         * emit-rtl.c (set_mem_attrs): Likewise.
20303         (get_reg_attrs): Likewise.
20304         (start_sequence): Likewise.
20305         (init_emit): Likewise.
20306         (init_emit_regs): Likewise.
20307         * except.c (init_eh_for_function): Likewise.
20308         (gen_eh_region): Likewise.
20309         (gen_eh_region_catch): Likewise.
20310         (gen_eh_landing_pad): Likewise.
20311         (add_call_site): Likewise.
20312         * function.c (add_frame_space): Likewise.
20313         (insert_temp_slot_address): Likewise.
20314         (assign_stack_temp_for_type): Likewise.
20315         (get_hard_reg_initial_val): Likewise.
20316         (allocate_struct_function): Likewise.
20317         (prepare_function_start): Likewise.
20318         (types_used_by_var_decl_insert): Likewise.
20319         * gengtype.c (variable_size_p): Remove function.
20320         (enum alloc_quantity): Remove enum.
20321         (write_typed_alloc_def): Remove function.
20322         (write_typed_struct_alloc_def): Likewise.
20323         (write_typed_typedef_alloc_def): Likewise.
20324         (write_typed_alloc_defns): Likewise.
20325         (main): Adjust.
20326         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
20327         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
20328         * ggc.h (ggc_alloc): new function.
20329         (ggc_cleared_alloc): Likewise.
20330         (ggc_vec_alloc): Template on type of vector element, and remove
20331         element size argument.
20332         (ggc_cleared_vec_alloc): Likewise.
20333         * gimple.c (gimple_build_omp_for): Adjust.
20334         (gimple_copy): Likewise.
20335         * ipa-cp.c (get_replacement_map): Likewise.
20336         (find_aggregate_values_for_callers_subset): Likewise.
20337         (known_aggs_to_agg_replacement_list): Likewise.
20338         * ipa-devirt.c (get_odr_type): Likewise.
20339         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
20340         (read_agg_replacement_chain): Likewise.
20341         * loop-iv.c (get_simple_loop_desc): Likewise.
20342         * lto-cgraph.c (input_node_opt_summary): Likewise.
20343         * lto-section-in.c (lto_new_in_decl_state): Likewise.
20344         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
20345         (input_eh_region): Likewise.
20346         (input_eh_lp): Likewise.
20347         (input_cfg): Likewise.
20348         * optabs.c (set_optab_libfunc): Likewise.
20349         (init_tree_optimization_optabs): Likewise.
20350         (set_conv_libfunc): Likewise.
20351         * passes.c (do_per_function_toporder): Likewise.
20352         * rtl.h: Don't use variable_size gty attribute.
20353         * sese.c (if_region_set_false_region): Adjust.
20354         * stringpool.c (gt_pch_save_stringpool): Likewise.
20355         * target-globals.c (save_target_globals): Likewise.
20356         * toplev.c (general_init): Likewise.
20357         * trans-mem.c (record_tm_replacement): Likewise.
20358         (split_bb_make_tm_edge): Likewise.
20359         * tree-cfg.c (move_sese_region_to_fn): Likewise.
20360         * tree-data-ref.h (lambda_vector_new): Likewise.
20361         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
20362         * tree-iterator.c (tsi_link_before): Likewise.
20363         (tsi_link_after): Likewise.
20364         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
20365         * tree-ssa-loop-niter.c (record_estimate): Likewise.
20366         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
20367         * tree-ssa-operands.h: Don't use variable_size gty attribute.
20368         * tree-ssa.c (init_tree_ssa): Adjust.
20369         * tree-ssanames.c (set_range_info): Likewise.
20370         (get_ptr_info): Likewise.
20371         (duplicate_ssa_name_ptr_info): Likewise.
20372         (duplicate_ssa_name_range_info): Likewise.
20373         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
20374         (unpack_ts_fixed_cst_value_fields): Likewise.
20375         * tree.c (build_fixed): Likewise.
20376         (build_real): Likewise.
20377         (build_string): Likewise.
20378         (decl_priority_info): Likewise.
20379         (decl_debug_expr_insert): Likewise.
20380         (decl_value_expr_insert): Likewise.
20381         (decl_debug_args_insert): Likewise.
20382         (type_hash_add): Likewise.
20383         (build_omp_clause): Likewise.
20384         * ubsan.c (decl_for_type_insert): Likewise.
20385         * varasm.c (get_unnamed_section): Likewise.
20386         (get_noswitch_section): Likewise.
20387         (get_section): Likewise.
20388         (get_block_for_section): Likewise.
20389         (create_block_symbol): Likewise.
20390         (build_constant_desc): Likewise.
20391         (create_constant_pool): Likewise.
20392         (force_const_mem): Likewise.
20393         (record_tm_clone_pair): Likewise.
20394         * varpool.c (varpool_create_empty_node): Likewise.
20395
20396 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20397
20398         * dwarf2out.c (tree_add_const_value_attribute): Call
20399         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
20400         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
20401         instead of ggc_internal_<x>alloc_stat.
20402         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
20403         (ggc_realloc): Likewise.
20404         * ggc-none.c (ggc_internal_alloc): Likewise.
20405         (ggc_internal_cleared_alloc): Likewise.
20406         * ggc-page.c: Likewise.
20407         * ggc.h (ggc_internal_alloc_stat): Likewise.
20408         (ggc_internal_alloc): Remove macro.
20409         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
20410         (ggc_internal_cleared_alloc): Remove macro.
20411         (GGC_RESIZEVEC): Adjust.
20412         (ggc_resizevar): Remove macro.
20413         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
20414         (ggc_internal_cleared_vec_alloc_stat): Likewise.
20415         (ggc_internal_vec_cleared_alloc): Remove macro.
20416         (ggc_alloc_atomic_stat): Drop _stat suffix.
20417         (ggc_alloc_atomic): Remove macro.
20418         (ggc_alloc_cleared_atomic): Remove macro.
20419         (ggc_alloc_string_stat): Drop _stat suffix.
20420         (ggc_alloc_string): Remove macro.
20421         (ggc_alloc_rtx_def_stat): Adjust.
20422         (ggc_alloc_tree_node_stat): Likewise.
20423         (ggc_alloc_cleared_tree_node_stat): Likewise.
20424         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
20425         (ggc_alloc_cleared_simd_clone_stat): Likewise.
20426         * gimple.c (gimple_build_omp_for): Likewise.
20427         (gimple_copy): Likewise.
20428         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
20429         * toplev.c (realloc_for_line_map): Adjust.
20430         * tree-data-ref.h (lambda_vector_new): Likewise.
20431         * tree-phinodes.c (allocate_phi_node): Likewise.
20432         * tree.c (grow_tree_vec_stat): Likewise.
20433         * vec.h (va_gc::reserve): Adjust.
20434
20435 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
20436
20437         * config/microblaze/microblaze.c (break_handler): New Declaration.
20438         (microblaze_break_function_p,microblaze_is_break_handler): New.
20439         (compute_frame_size): Use microblaze_break_function_p.
20440         Add the test of break_handler.
20441         (microblaze_function_prologue) : Add the test of variable
20442         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
20443         (microblaze_function_epilogue) : Add the test of break_handler.
20444         (microblaze_globalize_label) : Add the test of break_handler.
20445         Check the name by BREAK_HANDLER_NAME.
20446
20447         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
20448
20449         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
20450         microblaze_is_break_handler test.
20451         (call_internal1,call_value_intern): Use microblaze_break_function_p.
20452         Use SYMBOL_REF_DECL.
20453
20454         * config/microblaze/microblaze-protos.h
20455         (microblaze_break_function_p,microblaze_is_break_handler):
20456         New Declaration.
20457
20458         * doc/extend.texi (MicroBlaze break_handler Functions): Document
20459         new MicroBlaze break_handler functions.
20460
20461 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
20462
20463         * doc/extend.texi (Size of an asm): Move node text according
20464         to its @menu entry position.
20465
20466 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
20467
20468         PR tree-optimization/61140
20469         PR tree-optimization/61150
20470         PR tree-optimization/61197
20471         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
20472
20473 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
20474
20475         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
20476
20477 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
20478
20479         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
20480         __SIZEOF_INT128__ is defined.
20481
20482 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
20483
20484         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
20485         (rs6000_delegitimize_address): Use it.
20486
20487 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
20488
20489         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
20490         inplace argument.  Store the new address in the original MEM when true.
20491         * emit-rtl.c (change_address_1): Likewise.
20492         (adjust_address_1, adjust_automodify_address_1, offset_address):
20493         Update accordingly.
20494         * rtl.h (plus_constant): Add an inplace argument.
20495         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
20496         when true.  Avoid generating (plus X (const_int 0)).
20497         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
20498         in-place.  Pass true to plus_constant.
20499         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
20500
20501 2014-05-16  Dehao Chen  <dehao@google.com>
20502
20503         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
20504
20505 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
20506
20507         PR target/54089
20508         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
20509         patterns.
20510         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
20511
20512 2014-05-16  Dehao Chen  <dehao@google.com>
20513
20514         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
20515         optimize_function_for_size_p.
20516         * regs.h (REG_FREQ_FROM_BB): Likewise.
20517
20518 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
20519
20520         PR target/51244
20521         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
20522         negt_reg_operand cases.
20523         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
20524         predicate.
20525         * config/sh/predicates.md (cbranch_treg_value): Simplify.
20526
20527 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
20528
20529         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
20530         target variants.
20531
20532 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
20533
20534         Revert:
20535         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
20536
20537         * tree-cfg.c (dump_function_to_file): Dump the return type of
20538         functions, in a line to itself before the function body, mimicking
20539         the layout of a C function.
20540
20541 2014-05-16  Dehao Chen  <dehao@google.com>
20542
20543         * cfghooks.c (make_forwarder_block): Use direct computation to
20544         get fall-through edge's count and frequency.
20545
20546 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
20547
20548         * config/arc/arc.c (arc_init): Fix typo in error message.
20549         * config/i386/i386.c (ix86_expand_builtin): Likewise.
20550         (split_stack_prologue_scratch_regno): Likewise.
20551         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
20552         word from error message.
20553
20554 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
20555
20556         * ira-costs.c: Fix typo in comment.
20557
20558 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
20559
20560         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
20561
20562 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
20563
20564         * varpool.c (dump_varpool_node): Dump write-only flag.
20565         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
20566         write-only flag.
20567         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
20568         write-only variables.
20569         * ipa.c (process_references): New function.
20570         (set_readonly_bit): New function.
20571         (set_writeonly_bit): New function.
20572         (clear_addressable_bit): New function.
20573         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
20574         fix handling of aliases.
20575         * cgraph.h (struct varpool_node): Add writeonly flag.
20576
20577 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
20578
20579         PR rtl-optimization/60969
20580         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
20581         Calculate costs for this case.
20582
20583 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
20584
20585         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
20586         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
20587
20588 2014-05-16  Richard Biener  <rguenther@suse.de>
20589
20590         PR tree-optimization/61194
20591         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
20592         bool patterns ending in a COND_EXPR.
20593
20594 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20595
20596         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
20597
20598 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20599
20600         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
20601         where we were unable to cost an RTX.
20602
20603 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20604
20605         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
20606         HIGH, LO_SUM.
20607
20608 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20609             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20610
20611         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
20612
20613 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20614             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20615
20616         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
20617         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
20618
20619 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20620             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20621
20622         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
20623         operators.
20624
20625 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20626             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20627
20628         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
20629         DIV/MOD.
20630
20631 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20632             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20633
20634         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
20635         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
20636
20637 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20638             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20639
20640         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
20641         rotates and shifts.
20642
20643 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20644             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20645
20646         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
20647         ZERO_EXTEND and SIGN_EXTEND better.
20648
20649 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20650             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20651
20652         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
20653         logical operations.
20654
20655 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20656             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20657
20658         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
20659         costs when costing loads and stores to memory.
20660
20661 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20662             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
20663
20664         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
20665         for SET RTX.
20666
20667 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20668
20669         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
20670
20671 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20672             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20673
20674         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
20675         to...
20676         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
20677         well formed.
20678         (aarch64_rtx_mult_cost): New.
20679         (aarch64_rtx_costs): Use it, refactor as appropriate.
20680
20681 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20682             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20683
20684         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
20685         emit instructions, return number of instructions which would
20686         be emitted.
20687         (aarch64_add_constant): Update call to aarch64_build_constant.
20688         (aarch64_output_mi_thunk): Likewise.
20689         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
20690         a CONST_DOUBLE.
20691
20692 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20693
20694         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
20695         (TARGET_RTX_COSTS): Call it.
20696
20697 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20698
20699         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
20700         (cortexa57_vector_cost): Likewise.
20701         (cortexa57_tunings): Use them.
20702
20703 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20704
20705         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
20706         (cpu_addrcost_table): Use it.
20707         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
20708         (aarch64_address_cost): Rewrite using aarch64_classify_address,
20709         move it.
20710
20711 2014-05-16  Richard Biener  <rguenther@suse.de>
20712
20713         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
20714         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
20715         (visit_phi): Ignore edges marked as not executable.
20716         (class cond_dom_walker): New.
20717         (cond_dom_walker::before_dom_children): Value-number
20718         control statements and mark successor edges as not
20719         executable if possible.
20720         (run_scc_vn): First walk all control statements in
20721         dominator order, marking edges as not executable.
20722         * tree-inline.c (copy_edges_for_bb): Be not confused
20723         about random edge flags.
20724
20725 2014-05-16  Richard Biener  <rguenther@suse.de>
20726
20727         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
20728
20729 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
20730
20731         PR target/61193
20732         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
20733         (__TM_simple_begin): Use it.
20734         (__TM_begin): Likewise.
20735
20736 2014-05-15  Martin Jambor  <mjambor@suse.cz>
20737
20738         PR ipa/61085
20739         * ipa-prop.c (update_indirect_edges_after_inlining): Check
20740         type_preserved flag when the indirect edge is polymorphic.
20741
20742 2014-05-15  Martin Jambor  <mjambor@suse.cz>
20743
20744         PR tree-optimization/61090
20745         * tree-sra.c (sra_modify_expr): Pass the current gsi to
20746         build_ref_for_model.
20747
20748 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20749
20750         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
20751         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
20752
20753 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
20754
20755         PR tree-optimization/61158
20756         * fold-const.c (fold_binary_loc): If X is zero-extended and
20757         shiftc >= prec, make sure zerobits is all ones instead of
20758         invoking undefined behavior.
20759
20760 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20761
20762         * regcprop.h: New file.
20763         * regcprop.c (skip_debug_insn_p): New decl.
20764         (replace_oldest_value_reg): Check skip_debug_insn_p.
20765         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
20766         * shrink-wrap.c: Include regcprop.h.
20767         (prepare_shrink_wrap): Call
20768         copyprop_hardreg_forward_bb_without_debug_insn.
20769
20770 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20771
20772         * shrink-wrap.h: Update comment.
20773         * shrink-wrap.c: Update comment.
20774         (next_block_for_reg): Rename to live_edge_for_reg.
20775         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
20776         (move_insn_for_shrink_wrap): Split live_edge.
20777         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
20778
20779 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
20780
20781         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
20782         Delete.
20783         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
20784         * config/sparc/sparc.md (fptype_ut699): New attribute.
20785         (in_branch_delay): Return false if -mfix-ut699 is specified and
20786         fptype_ut699 is set to single.
20787         (truncdfsf2): Add fptype_ut699 attribute.
20788         (fix_truncdfsi2): Likewise.
20789         (floatsisf2): Change fptype attribute.
20790         (fix_truncsfsi2): Likewise.
20791         (negtf2_notv9): Delete.
20792         (negtf2_v9): Likewise.
20793         (negtf2_hq): New instruction.
20794         (negtf2): New instruction and splitter.
20795         (negdf2_notv9): Rewrite.
20796         (abstf2_notv9): Delete.
20797         (abstf2_hq_v9): Likewise.
20798         (abstf2_v9): Likewise.
20799         (abstf2_hq): New instruction.
20800         (abstf2): New instruction and splitter.
20801         (absdf2_notv9): Rewrite.
20802
20803 2014-05-14  Cary Coutant  <ccoutant@google.com>
20804
20805         PR debug/61013
20806         * opts.c (common_handle_option): Don't special-case "-g".
20807         (set_debug_level): Default to at least level 2 with "-g".
20808
20809 2014-05-14  DJ Delorie  <dj@redhat.com>
20810
20811         * config/msp430/msp430.c (msp430_builtin): Add
20812         MSP430_BUILTIN_DELAY_CYCLES.
20813         (msp430_init_builtins): Register void __delay_cycles(long long).
20814         (msp430_builtin_decl): Add it.
20815         (cg_magic_constant): New.
20816         (msp430_expand_delay_cycles): New.
20817         (msp430_expand_builtin): Call it.
20818         (msp430_print_operand_raw): Change integer printing from "int" to
20819         HOST_WIDE_INT.
20820         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
20821         (delay_cycles_start): New.
20822         (delay_cycles_end): New.
20823         (delay_cycles_32): New.
20824         (delay_cycles_32x): New.
20825         (delay_cycles_16): New.
20826         (delay_cycles_16x): New.
20827         (delay_cycles_2): New.
20828         (delay_cycles_1): New.
20829         * doc/extend.texi: Document __delay_cycles().
20830
20831 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
20832
20833         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
20834         length attribute computation.
20835
20836 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
20837
20838         PR debug/61188
20839         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
20840
20841 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
20842
20843         PR target/61084
20844         * config/sparc/sparc.md: Fix types of low and high in DI constant
20845         splitter.  Use gen_int_mode in some other splitters.
20846
20847 2014-05-14  Martin Jambor  <mjambor@suse.cz>
20848
20849         PR ipa/60897
20850         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
20851
20852 2014-05-14  James Norris  <jnorris@codesourcery.com>
20853
20854         * omp-low.c (expand_parallel_call): Remove shadow variable.
20855         (expand_omp_taskreg): Likewise.
20856
20857 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
20858
20859         * common/config/i386/i386-common.c
20860         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
20861         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
20862         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
20863         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
20864         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
20865         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
20866         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
20867         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
20868         xsavecintrin.h, xsavesintrin.h.
20869         (x86_64-*-*): Ditto.
20870         * config/i386/clflushoptintrin.h: New.
20871         * config/i386/xsavecintrin.h: Ditto.
20872         * config/i386/xsavesintrin.h: Ditto.
20873         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
20874         (bit_XSAVES): Ditto.
20875         (bit_XSAVES): Ditto.
20876         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
20877         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
20878         -mno-clflushopt.
20879         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
20880         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
20881         OPTION_MASK_ISA_XSAVES.
20882         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
20883         -mxsavec, -mxsaves.
20884         (PTA_CLFLUSHOPT) Define.
20885         (PTA_XSAVEC): Ditto.
20886         (PTA_XSAVES): Ditto.
20887         (ix86_option_override_internal): Handle new options.
20888         (ix86_valid_target_attribute_inner_p): Ditto.
20889         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
20890         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
20891         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
20892         (bdesc_special_args): Add __builtin_ia32_xsaves,
20893         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
20894         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
20895         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
20896         (ix86_expand_builtin): Handle new builtins.
20897         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
20898         (TARGET_CLFLUSHOPT_P): Ditto.
20899         (TARGET_XSAVEC): Ditto.
20900         (TARGET_XSAVEC_P): Ditto.
20901         (TARGET_XSAVES): Ditto.
20902         (TARGET_XSAVES_P): Ditto.
20903         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
20904         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
20905         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
20906         (ANY_XRSTOR): New.
20907         (ANY_XRSTOR64): Ditto.
20908         (xrstor): Ditto.
20909         (xrstor): Change into <xrstor>.
20910         (xrstor_rex64): Change into <xrstor>_rex64.
20911         (xrstor64): Change into <xrstor>64
20912         (clflushopt): New.
20913         * config/i386/i386.opt (mclflushopt): New.
20914         (mxsavec): Ditto.
20915         (mxsaves): Ditto.
20916         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
20917         xsavecintrin.h.
20918         * doc/invoke.texi: Document new options.
20919
20920 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
20921
20922         PR rtl-optimization/60866
20923         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
20924         Default it to -1.  Pass it down to init_simplejump_data.
20925         (init_simplejump_data): New parameter old_seqno.  Pass it down
20926         to get_seqno_for_a_jump.
20927         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
20928         initializing new jump seqno as a last resort.  Add comment.
20929         (sel_redirect_edge_and_branch): Save old seqno of the conditional
20930         jump and pass it down to sel_init_new_insn.
20931         (sel_redirect_edge_and_branch_force): Likewise.
20932
20933 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
20934
20935         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
20936         shifted values to avoid build warning.
20937
20938 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
20939
20940         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
20941         * cfgrtl.c (rtl_merge_blocks): Fix comment.
20942         (cfg_layout_merge_blocks): Likewise.
20943         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
20944
20945 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
20946
20947         PR rtl-optimization/60901
20948         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
20949         bb predecessor belongs to the same scheduling region.  Adjust comment.
20950
20951 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
20952
20953         * doc/sourcebuild.texi: (dfp_hw): Document.
20954         (p8vector_hw): Likewise.
20955         (powerpc_eabi_ok): Likewise.
20956         (powerpc_elfv2): Likewise.
20957         (powerpc_htm_ok): Likewise.
20958         (ppc_recip_hw): Likewise.
20959         (vsx_hw): Likewise.
20960
20961 2014-05-13  Cary Coutant  <ccoutant@google.com>
20962
20963         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
20964
20965 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
20966
20967         * gengtype-parse.c (require3): Eliminate in favor of...
20968         (require4): New.
20969         (require_template_declaration): Update to support optional single *
20970         on a type.
20971
20972         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
20973         (create_user_defined_type): Handle a single level of explicit
20974         pointerness within template arguments.
20975         (struct write_types_data): Add field "kind".
20976         (filter_type_name): Handle "*" character.
20977         (write_user_func_for_structure_ptr): Require a write_types_data
20978         rather than just a prefix string, so that we can look up the kind
20979         of the wtd and use it as an index into wrote_user_func_for_ptr,
20980         ensuring that such functions are written at most once.  Support
20981         subclasses by invoking the marking function of the ultimate base class.
20982         (write_user_func_for_structure_body): Require a write_types_data
20983         rather than just a prefix string, so that we can pass this to
20984         write_user_func_for_structure_ptr.
20985         (write_func_for_structure): Likewise.
20986         (ggc_wtd): Add initializer of new "kind" field.
20987         (pch_wtd): Likewise.
20988
20989         * gengtype.h (enum write_types_kinds): New.
20990         (struct type): Add field wrote_user_func_for_ptr to the "s"
20991         union member.
20992
20993 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
20994
20995         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
20996         instead of const_binop.
20997         (fold_binary_loc): Likewise.
20998
20999 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
21000
21001         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
21002         calculation to match get_ref_base_and_extent.
21003
21004 2014-05-13  Catherine Moore  <clm@codesourcery.com>
21005             Sandra Loosemore  <sandra@codesourcery.com>
21006
21007         * configure.ac: Fix assembly for explicit JALR relocation check.
21008         * configure: Regenerate.
21009
21010 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21011
21012         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
21013         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
21014         Remove associated type declarations and initialisations.
21015         (arm_expand_neon_builtin): Likewise.
21016         (neon_emit_pair_result_insn): Delete.
21017         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
21018         * config/arm/neon.md (neon_vtrn<mode>): Delete.
21019         (neon_vzip<mode>): Likewise.
21020         (neon_vuzp<mode>): Likewise.
21021
21022 2014-05-13  Richard Biener  <rguenther@suse.de>
21023
21024         PR ipa/60973
21025         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
21026         it needs revisiting whether the call still may be tail-called.
21027
21028 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21029
21030         * rtl.def (SYMBOL_REF): Remove middle "0" field.
21031         * rtl.h (block_symbol): Reduce number of fields to 2.
21032         (rtx_def): Add u2.symbol_ref_flags.
21033         (SYMBOL_REF_FLAGS): Use it.
21034         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
21035         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
21036         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
21037         Lower index of SYMBOL_REF_DATA.
21038         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
21039         Print SYMBOL_REF_FLAGS at the same time.
21040         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
21041
21042 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21043
21044         * rtl.def (VAR_LOCATION): Remove "i" field.
21045         * rtl.h (rtx_def): Add u2.var_location_status.
21046         (PAT_VAR_LOCATION_STATUS): Use it.
21047         (gen_rtx_VAR_LOCATION): Declare.
21048         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
21049         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
21050         * var-tracking.c (emit_note_insn_var_location): Remove casts.
21051
21052 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21053
21054         * rtl.def (scratch): Fix outdated comment and remove "0" field.
21055         * gengtype.c (adjust_field_rtx_def): Update accordingly.
21056
21057 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21058
21059         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
21060         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
21061         * rtl.h (rtx_def): Add insn_uid to u2 field.
21062         (RTX_FLAG_CHECK8): Delete in favor of...
21063         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
21064         (INSN_DELETED_P): Update accordingly.
21065         (INSN_UID): Use u2.insn_uid.
21066         (INSN_CHAIN_CODE_P): Define.
21067         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
21068         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
21069         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
21070         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
21071         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
21072         indices accordingly.
21073         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
21074         Update indices for insn-chain rtxes.
21075         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
21076         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
21077         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
21078         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
21079         * combine.c (try_combine): Likewise.
21080         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21081
21082 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21083
21084         * rtl.def (REG): Remove middle field.
21085         * rtl.h (rtx_def): Add orignal_regno to u2.
21086         (ORIGINAL_REGNO): Use it instead of field 1.
21087         (REG_ATTRS): Lower field index accordingly.
21088         * gengtype.c (adjust_field_rtx_def): Remove handling of
21089         ORIGINAL_REGNO.  Move REG_ATTRS index down.
21090         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
21091         code that prints the REGNO.
21092
21093 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21094
21095         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
21096         GENERATOR_FILE.
21097
21098 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21099
21100         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
21101
21102 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
21103
21104         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
21105         (alloc_iv): Lower base expressions containing ADDR_EXPR.
21106
21107 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
21108
21109         * config/aarch64/aarch64-protos.h
21110         (aarch64_hard_regno_caller_save_mode): New prototype.
21111         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
21112         New function.
21113         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
21114
21115 2014-05-13  Christian Bruel  <christian.bruel@st.com>
21116
21117         * target.def (mode_switching): New hook vector.
21118         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
21119         (mode_exit, modepriority_to_mode): Likewise.
21120         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
21121         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21122         * target.h: Include tm.h and hard-reg-set.h.
21123         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
21124         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
21125         * doc/tm.texi Regenerate.
21126         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
21127         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21128         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
21129         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
21130         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
21131         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21132         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
21133         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
21134         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
21135         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
21136         (ix86_emit_mode_set): Hookify.
21137         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
21138         Delete.
21139         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21140         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
21141         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
21142         (epiphany_mode_priority_to_mode): Remove declaration.
21143         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
21144         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
21145         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
21146         Likewise.
21147         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
21148         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
21149         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
21150
21151 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
21152
21153         PR target/61060
21154         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
21155         is const0_rtx, return immediately.  Don't test count == 0 when
21156         it is always true.
21157
21158 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
21159
21160         * Makefile.in: add shrink-wrap.o.
21161         * config/i386/i386.c: include "shrink-wrap.h"
21162         * function.c: Likewise.
21163         (requires_stack_frame_p, next_block_for_reg,
21164         move_insn_for_shrink_wrap, prepare_shrink_wrap,
21165         dup_block_and_redirect): Move to shrink-wrap.c
21166         (thread_prologue_and_epilogue_insns): Extract three code segments
21167         as functions in shrink-wrap.c
21168         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
21169         shrink-wrap.h
21170         * shrink-wrap.c: New file.
21171         * shrink-wrap.h: New file.
21172
21173 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
21174
21175         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
21176         reference to Solaris.
21177
21178 2014-05-12  Mike Stump  <mikestump@comcast.net>
21179
21180         PR other/31778
21181         * genattrtab.c (filename): Add.
21182         (convert_set_attr_alternative): Improve error message.
21183         (check_defs): Restore read_md_filename for error messages.
21184         (gen_insn): Save filename.
21185
21186 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
21187
21188         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
21189         -fno-local-ivars and -fivar-visibility.
21190         * c-family/c.opt: Make -Wshadow also implicitly enable
21191         -Wshadow-ivar.
21192
21193 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
21194
21195         * doc/tm.texi: Remove reference to deleted macro.
21196         * doc/tm.texi.in: Likewise.
21197
21198 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
21199
21200         PR target/60991
21201         * config/avr/avr.c (avr_out_store_psi): Use correct constant
21202         to restore Y.
21203
21204 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
21205
21206         PR libgcc/61152
21207         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
21208         * config/arm/aout.h (License): Same.
21209         * config/arm/bpabi.h (License): Same.
21210         * config/arm/elf.h (License): Same.
21211         * config/arm/linux-elf.h (License): Same.
21212         * config/arm/linux-gas.h (License): Same.
21213         * config/arm/netbsd-elf.h (License): Same.
21214         * config/arm/uclinux-eabi.h (License): Same.
21215         * config/arm/uclinux-elf.h (License): Same.
21216         * config/arm/vxworks.h (License): Same.
21217
21218 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
21219
21220         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
21221         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
21222         number of operands to 3.
21223         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
21224         * tree-nested.c (convert_nonlocal_omp_clauses,
21225         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
21226         * gimplify.c (gimplify_scan_omp_clauses): Handle
21227         OMP_CLAUSE_LINEAR_STMT.
21228         * omp-low.c (lower_rec_input_clauses): Fix typo.
21229         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
21230         cast between Fortran boolean_type_node and C _Bool if
21231         needed.
21232
21233 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
21234
21235         PR tree-optimization/61136
21236         * wide-int.h (multiple_of_p): Define a version that doesn't return
21237         the quotient.
21238         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
21239         integer_zerop/const_binop pair.
21240         (multiple_of_p): Likewise, converting both operands to widest_int
21241         precision.
21242
21243 2014-05-09  Teresa Johnson  <tejohnson@google.com>
21244
21245         * cgraphunit.c (analyze_functions): Use correct dump file.
21246
21247 2014-05-09  Florian Weimer  <fweimer@redhat.com>
21248
21249         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
21250         expand_used_vars.
21251         (stack_protect_return_slot_p): New function.
21252         (expand_used_vars): Call stack_protect_decl_p and
21253         stack_protect_return_slot_p for -fstack-protector-strong.
21254
21255 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
21256         Andrew Haley <aph@redhat.com>
21257         Richard Sandiford <rdsandiford@googlemail.com>
21258
21259         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
21260         pages.
21261
21262 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
21263
21264         PR middle-end/61111
21265         * fold-const.c (fold_binary_loc): Changed width of mask.
21266
21267 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
21268
21269         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
21270         unsigned int initializers for regno_in, regno_out.
21271
21272 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
21273
21274         PR target/61055
21275         * config/avr/avr.md (cc): Add new attribute set_vzn.
21276         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
21277         Set cc insn attribute to set_vzn instead of set_zn for alternatives
21278         with INC, DEC or NEG.
21279         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
21280         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
21281         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
21282
21283 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21284
21285         Revert:
21286         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21287
21288         * wide-int.cc (UTItype): Define.
21289         (UDWtype): Define for appropriate W_TYPE_SIZE.
21290
21291 2014-05-09  Richard Biener  <rguenther@suse.de>
21292
21293         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
21294         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
21295         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
21296         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
21297         ssa_propagate): Adjust.
21298
21299 2014-05-08  Jeff Law  <law@redhat.com>
21300
21301         PR tree-optimization/61009
21302         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
21303         tri-state rather than a boolean.  When a block is too big to
21304         thread through, inform caller via negative return value.
21305         (thread_across_edge): If a block was too big for normal threading,
21306         then it's too big for a joiner too, so remove temporary equivalences
21307         and return immediately.
21308
21309 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21310             Matthias Klose  <doko@ubuntu.com>
21311
21312         PR driver/61106
21313         * optc-gen.awk: Fix option handling for -Wunused-parameter.
21314
21315 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
21316
21317         PR target/59952
21318         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
21319
21320 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
21321
21322         PR target/61092
21323         * config/alpha/alpha.c: Include gimple-iterator.h.
21324         (alpha_gimple_fold_builtin): New function.  Move
21325         ALPHA_BUILTIN_UMULH folding from ...
21326         (alpha_fold_builtin): ... here.
21327         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
21328
21329 2014-05-08  Wei Mi  <wmi@google.com>
21330
21331         PR target/58066
21332         * config/i386/i386.c (ix86_compute_frame_layout): Update
21333         preferred_stack_boundary for call, expanded from tls descriptor.
21334         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
21335         to depend on SP register.
21336         (*tls_local_dynamic_base_32_gnu): Ditto.
21337         (*tls_local_dynamic_32_once): Ditto.
21338         (tls_global_dynamic_64_<mode>): Set
21339         ix86_tls_descriptor_calls_expanded_in_cfun.
21340         (tls_local_dynamic_base_64_<mode>): Ditto.
21341         (tls_global_dynamic_32): Set
21342         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
21343         to depend on SP register.
21344         (tls_local_dynamic_base_32): Ditto.
21345
21346 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21347
21348         * config/arm/arm_neon.h: Update comment.
21349         * config/arm/neon-docgen.ml: Delete.
21350         * config/arm/neon-gen.ml: Delete.
21351         * doc/arm-neon-intrinsics.texi: Update comment.
21352
21353 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21354
21355         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
21356         and v4sf versions.
21357         (vand, vorr, veor, vorn, vbic): Remove.
21358         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
21359         iterator.
21360         (neon_vsub_unspec): Likewise.
21361         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
21362
21363 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21364
21365         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
21366         (vadd_s16): Likewise.
21367         (vadd_s32): Likewise.
21368         (vadd_f32): Likewise.
21369         (vadd_u8): Likewise.
21370         (vadd_u16): Likewise.
21371         (vadd_u32): Likewise.
21372         (vadd_s64): Likewise.
21373         (vadd_u64): Likewise.
21374         (vaddq_s8): Likewise.
21375         (vaddq_s16): Likewise.
21376         (vaddq_s32): Likewise.
21377         (vaddq_s64): Likewise.
21378         (vaddq_f32): Likewise.
21379         (vaddq_u8): Likewise.
21380         (vaddq_u16): Likewise.
21381         (vaddq_u32): Likewise.
21382         (vaddq_u64): Likewise.
21383         (vmul_s8): Likewise.
21384         (vmul_s16): Likewise.
21385         (vmul_s32): Likewise.
21386         (vmul_f32): Likewise.
21387         (vmul_u8): Likewise.
21388         (vmul_u16): Likewise.
21389         (vmul_u32): Likewise.
21390         (vmul_p8): Likewise.
21391         (vmulq_s8): Likewise.
21392         (vmulq_s16): Likewise.
21393         (vmulq_s32): Likewise.
21394         (vmulq_f32): Likewise.
21395         (vmulq_u8): Likewise.
21396         (vmulq_u16): Likewise.
21397         (vmulq_u32): Likewise.
21398         (vsub_s8): Likewise.
21399         (vsub_s16): Likewise.
21400         (vsub_s32): Likewise.
21401         (vsub_f32): Likewise.
21402         (vsub_u8): Likewise.
21403         (vsub_u16): Likewise.
21404         (vsub_u32): Likewise.
21405         (vsub_s64): Likewise.
21406         (vsub_u64): Likewise.
21407         (vsubq_s8): Likewise.
21408         (vsubq_s16): Likewise.
21409         (vsubq_s32): Likewise.
21410         (vsubq_s64): Likewise.
21411         (vsubq_f32): Likewise.
21412         (vsubq_u8): Likewise.
21413         (vsubq_u16): Likewise.
21414         (vsubq_u32): Likewise.
21415         (vsubq_u64): Likewise.
21416         (vand_s8): Likewise.
21417         (vand_s16): Likewise.
21418         (vand_s32): Likewise.
21419         (vand_u8): Likewise.
21420         (vand_u16): Likewise.
21421         (vand_u32): Likewise.
21422         (vand_s64): Likewise.
21423         (vand_u64): Likewise.
21424         (vandq_s8): Likewise.
21425         (vandq_s16): Likewise.
21426         (vandq_s32): Likewise.
21427         (vandq_s64): Likewise.
21428         (vandq_u8): Likewise.
21429         (vandq_u16): Likewise.
21430         (vandq_u32): Likewise.
21431         (vandq_u64): Likewise.
21432         (vorr_s8): Likewise.
21433         (vorr_s16): Likewise.
21434         (vorr_s32): Likewise.
21435         (vorr_u8): Likewise.
21436         (vorr_u16): Likewise.
21437         (vorr_u32): Likewise.
21438         (vorr_s64): Likewise.
21439         (vorr_u64): Likewise.
21440         (vorrq_s8): Likewise.
21441         (vorrq_s16): Likewise.
21442         (vorrq_s32): Likewise.
21443         (vorrq_s64): Likewise.
21444         (vorrq_u8): Likewise.
21445         (vorrq_u16): Likewise.
21446         (vorrq_u32): Likewise.
21447         (vorrq_u64): Likewise.
21448         (veor_s8): Likewise.
21449         (veor_s16): Likewise.
21450         (veor_s32): Likewise.
21451         (veor_u8): Likewise.
21452         (veor_u16): Likewise.
21453         (veor_u32): Likewise.
21454         (veor_s64): Likewise.
21455         (veor_u64): Likewise.
21456         (veorq_s8): Likewise.
21457         (veorq_s16): Likewise.
21458         (veorq_s32): Likewise.
21459         (veorq_s64): Likewise.
21460         (veorq_u8): Likewise.
21461         (veorq_u16): Likewise.
21462         (veorq_u32): Likewise.
21463         (veorq_u64): Likewise.
21464         (vbic_s8): Likewise.
21465         (vbic_s16): Likewise.
21466         (vbic_s32): Likewise.
21467         (vbic_u8): Likewise.
21468         (vbic_u16): Likewise.
21469         (vbic_u32): Likewise.
21470         (vbic_s64): Likewise.
21471         (vbic_u64): Likewise.
21472         (vbicq_s8): Likewise.
21473         (vbicq_s16): Likewise.
21474         (vbicq_s32): Likewise.
21475         (vbicq_s64): Likewise.
21476         (vbicq_u8): Likewise.
21477         (vbicq_u16): Likewise.
21478         (vbicq_u32): Likewise.
21479         (vbicq_u64): Likewise.
21480         (vorn_s8): Likewise.
21481         (vorn_s16): Likewise.
21482         (vorn_s32): Likewise.
21483         (vorn_u8): Likewise.
21484         (vorn_u16): Likewise.
21485         (vorn_u32): Likewise.
21486         (vorn_s64): Likewise.
21487         (vorn_u64): Likewise.
21488         (vornq_s8): Likewise.
21489         (vornq_s16): Likewise.
21490         (vornq_s32): Likewise.
21491         (vornq_s64): Likewise.
21492         (vornq_u8): Likewise.
21493         (vornq_u16): Likewise.
21494         (vornq_u32): Likewise.
21495         (vornq_u64): Likewise.
21496
21497 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21498
21499         * wide-int.cc (UTItype): Define.
21500         (UDWtype): Define for appropriate W_TYPE_SIZE.
21501
21502 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
21503
21504         PR tree-optimization/59100
21505         * tree-ssa-phiopt.c: Include tree-inline.h.
21506         (neutral_element_p, absorbing_element_p): New functions.
21507         (value_replacement): Handle conditional binary operations with a
21508         neutral or absorbing element.
21509
21510 2014-05-08  Richard Biener  <rguenther@suse.de>
21511
21512         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
21513         folding the expression.
21514         (valueize_expr): Remove.
21515         (visit_reference_op_load): Do not valueize the result of
21516         vn_get_expr_for.
21517         (simplify_binary_expression): Likewise.
21518         (simplify_unary_expression): Likewise.
21519
21520 2014-05-08  Richard Biener  <rguenther@suse.de>
21521
21522         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
21523         looking at TYPE_ARG_TYPES.
21524
21525 2014-05-08  Richard Biener  <rguenther@suse.de>
21526
21527         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
21528         pointer propagation special-case.
21529
21530 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
21531
21532         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
21533         core part of address expressions.
21534
21535 2014-05-08  Alan Modra  <amodra@gmail.com>
21536
21537         PR target/60737
21538         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
21539         loads and stores when -mno-strict-align at any alignment.
21540         (expand_block_clear): Similarly.  Also correct calculation of
21541         instruction count.
21542
21543 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21544
21545         PR middle-end/39246
21546         * tree-complex.c (expand_complex_move): Keep line info when expanding
21547         complex move.
21548         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
21549         of complex expression. Use new argument to display correct location
21550         for values coming from phi statement.
21551         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
21552         (warn_uninitialized_phi): Pass location of phi argument to
21553         warn_uninit.
21554         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
21555         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
21556
21557 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
21558
21559         * config/rs6000/predicates.md (indexed_address_mem): New.
21560         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
21561         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
21562         fpstore_ux, fpstore_u.
21563         (sign_extend, indexed, update): New.
21564         (cell_micro): Adjust.
21565         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
21566         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
21567         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
21568         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
21569         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
21570         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
21571         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
21572         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
21573         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
21574         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
21575         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
21576         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
21577         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
21578         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
21579         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
21580
21581         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
21582         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
21583         *vsx_extract_<mode>_store): Adjust.
21584         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
21585         is_cracked_insn, insn_must_be_first_in_group,
21586         insn_must_be_last_in_group): Adjust.
21587
21588         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
21589         Adjust.
21590         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
21591         ppc440-fpstore): Adjust.
21592         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
21593         ppc476-fpstore): Adjust.
21594         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
21595         ppc601-fpstore): Adjust.
21596         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
21597         Adjust.
21598         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
21599         Adjust.
21600         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
21601         ppc7450-fpstore): Adjust.
21602         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
21603         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
21604         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
21605         Adjust.
21606         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
21607         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
21608         cell-fpstore, cell-fpstore-update): Adjust.
21609         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
21610         ppce300c3_store, ppce300c3_fpstore): Adjust.
21611         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
21612         e500mc_fpstore): Adjust.
21613         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
21614         e500mc64_store, e500mc64_fpstore): Adjust.
21615         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
21616         e5500_fpstore): Adjust.
21617         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
21618         e6500_fpstore): Adjust.
21619         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
21620         Adjust.
21621         * config/rs6000/power4.md (power4-load, power4-load-ext,
21622         power4-load-ext-update, power4-load-ext-update-indexed,
21623         power4-load-update-indexed, power4-load-update, power4-fpload,
21624         power4-fpload-update, power4-store, power4-store-update,
21625         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
21626         Adjust.
21627         * config/rs6000/power5.md (power5-load, power5-load-ext,
21628         power5-load-ext-update, power5-load-ext-update-indexed,
21629         power5-load-update-indexed, power5-load-update, power5-fpload,
21630         power5-fpload-update, power5-store, power5-store-update,
21631         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
21632         Adjust.
21633         * config/rs6000/power6.md (power6-load, power6-load-ext,
21634         power6-load-update, power6-load-update-indexed,
21635         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
21636         power6-fpload-update, power6-store, power6-store-update,
21637         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
21638         Adjust.
21639         * config/rs6000/power7.md (power7-load, power7-load-ext,
21640         power7-load-update, power7-load-update-indexed,
21641         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
21642         power7-fpload-update, power7-store, power7-store-update,
21643         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
21644         Adjust.
21645         * config/rs6000/power8.md (power8-load, power8-load-update,
21646         power8-load-ext, power8-load-ext-update, power8-fpload,
21647         power8-fpload-update, power8-store, power8-store-update-indexed,
21648         power8-fpstore, power8-fpstore-update): Adjust.
21649         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
21650         Adjust.
21651         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
21652         titan_lsu_store, titan_lsu_fpstore): Adjust.
21653         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
21654
21655 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
21656
21657         PR target/60884
21658         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
21659         unrolled byte insns.  Emit address increments after move insns.
21660
21661 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
21662
21663         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
21664         const_gimple, rather than a gimple.
21665         (gimple_call_builtin_p): Likewise, for the three variants.
21666
21667         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
21668         (gimple_call_builtin_p): Likewise, for the three variants.
21669
21670 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
21671
21672         PR tree-optimization/61095
21673         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
21674
21675 2014-05-07  Richard Biener  <rguenther@suse.de>
21676
21677         PR tree-optimization/61034
21678         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
21679         (maybe_skip_until): Use translate to take into account
21680         lattices when trying to do disambiguations.
21681         (get_continuation_for_phi_1): Likewise.
21682         (get_continuation_for_phi): Adjust for added translate arguments.
21683         (walk_non_aliased_vuses): Likewise.
21684         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
21685         (walk_non_aliased_vuses): Likewise.
21686         (call_may_clobber_ref_p_1): Declare.
21687         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
21688         calls.  Stop early if we are only supposed to disambiguate.
21689         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
21690
21691 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
21692
21693         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
21694         Emit an error when the function has arguments.
21695
21696 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
21697
21698         * cfgloop.h (unswitch_loops): Remove.
21699         * doc/passes.texi: Remove references to loop-unswitch.c
21700         * timevar.def (TV_LOOP_UNSWITCH): Remove.
21701
21702 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
21703
21704         * tree-vect-data-refs.c (vect_grouped_load_supported): New
21705         check for loads group of length 3.
21706         (vect_permute_load_chain): New permutations for loads group of
21707         length 3.
21708         * tree-vect-stmts.c (vect_model_load_cost): Change cost
21709         of vec_perm_shuffle for the new permutations.
21710
21711 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
21712
21713         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
21714         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
21715         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
21716         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
21717         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
21718         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
21719         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
21720         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
21721
21722 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
21723
21724         * loop-unswitch.c: Delete.
21725
21726 2014-05-07  Richard Biener  <rguenther@suse.de>
21727
21728         * config.gcc: Always set need_64bit_hwint to yes.
21729
21730 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
21731
21732         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
21733         of using optimize_size.
21734
21735 2014-05-06  Mike Stump  <mikestump@comcast.net>
21736
21737         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
21738
21739 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
21740
21741         * config/i386/sse.md (*mov<mode>_internal)
21742         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
21743         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
21744         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
21745         (*<code><mode>3, *andnot<mode>3<mask_name>)
21746         (<mask_codefor><code><mode>3<mask_name>): Only consider
21747         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
21748
21749 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
21750
21751         Revert:
21752         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
21753
21754         * lra-constraints.c (valid_address_p): Move earlier in file.
21755         Add a constraint argument to the address_info version.
21756         (satisfies_memory_constraint_p): New function.
21757         (satisfies_address_constraint_p): Likewise.
21758         (process_alt_operands, curr_insn_transform): Use them.
21759         (process_address): Pass the constraint to valid_address_p when
21760         checking address operands.
21761
21762 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
21763
21764         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
21765         to their respective blocks.  Fix inadvertent use of "node".
21766
21767 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
21768
21769         * emit-rtl.c (init_derived_machine_modes): New functionm, split
21770         out from...
21771         (init_emit_once): ...here.
21772         * rtl.h (init_derived_machine_modes): Declare.
21773         * toplev.c (do_compile): Call it even if no_backend.
21774
21775 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
21776             Mike Stump  <mikestump@comcast.net>
21777             Richard Sandiford  <rdsandiford@googlemail.com>
21778             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21779
21780         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
21781         (rtx_equal_for_memref_p): Update comment.
21782         (adjust_offset_for_component_ref): Use wide-int interfaces.
21783         * builtins.c (get_object_alignment_2): Likewise.
21784         (c_readstr): Likewise.
21785         (target_char_cast): Add comment.
21786         (determine_block_size): Use wide-int interfaces.
21787         (expand_builtin_signbit): Likewise.
21788         (fold_builtin_int_roundingfn): Likewise.
21789         (fold_builtin_bitop): Likewise.
21790         (fold_builtin_bswap): Likewise.
21791         (fold_builtin_logarithm): Use signop.
21792         (fold_builtin_pow): Likewise.
21793         (fold_builtin_memory_op): Use wide-int interfaces.
21794         (fold_builtin_object_size): Likewise.
21795         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
21796         nb_iterations_estimate.
21797         (record_niter_bound): Use wide-int interfaces.
21798         (get_estimated_loop_iterations_int): Likewise.
21799         (get_estimated_loop_iterations): Likewise.
21800         (get_max_loop_iterations): Likewise.
21801         * cfgloop.h: Include wide-int.h.
21802         (struct nb_iter_bound): Change bound to widest_int.
21803         (struct loop): Change nb_iterations_upper_bound and
21804         nb_iterations_estimate to widest_int.
21805         (record_niter_bound): Switch to use widest_int.
21806         (get_estimated_loop_iterations): Likewise.
21807         (get_max_loop_iterations): Likewise.
21808         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
21809         update for wide-int.
21810         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
21811         * combine.c (try_combine): Likewise.
21812         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
21813         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
21814         interfaces.
21815         (aarch64_float_const_representable_p): Likewise.
21816         * config/arc/arc.c: Include wide-int.h.
21817         (arc_can_use_doloop_p): Use wide-int interfaces.
21818         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
21819         (vfp3_const_double_index): Likewise.
21820         * config/avr/avr.c (avr_out_round): Likewise.
21821         (avr_fold_builtin): Likewise.
21822         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
21823         (bfin_can_use_doloop_p): Likewise.
21824         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
21825         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
21826         * config/i386/i386.c: Include wide-int.h.
21827         (ix86_data_alignment): Use wide-int interfaces.
21828         (ix86_local_alignment): Likewise.
21829         (ix86_emit_swsqrtsf): Update real_from_integer.
21830         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
21831         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
21832         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
21833         (zero_constant): Likewise.
21834         (input_operand): Likewise.
21835         (splat_input_operand): Likewise.
21836         (non_logical_cint_operand): Change const_double to const_wide_int.
21837         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
21838         (easy_altivec_constant): Remove comment.
21839         (paired_expand_vector_init): Use CONSTANT_P.
21840         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
21841         (rs6000_emit_move): Update checks.
21842         (rs6000_aggregate_candidate): Use wide-int interfaces.
21843         (rs6000_expand_ternop_builtin): Likewise.
21844         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
21845         (rs6000_assemble_integer): Likewise.
21846         (rs6000_hash_constant): Likewise.
21847         (output_toc): Likewise.
21848         (rs6000_rtx_costs): Likewise.
21849         (rs6000_emit_swrsqrt); Update call to real_from_integer.
21850         * config/rs6000/rs6000-c.c: Include wide-int.h.
21851         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
21852         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
21853         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
21854         Handle CONST_WIDE_INT.
21855         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
21856         Use tree_fits_uhwi_p.
21857         * config/sparc/sparc.c: Include wide-int.h.
21858         (sparc_fold_builtin): Use wide-int interfaces.
21859         * config/vax/vax.c: Include wide-int.h.
21860         (vax_float_literal): Use real_from_integer.
21861         * coretypes.h (struct hwivec_def): New.
21862         (hwivec): New.
21863         (const_hwivec): New.
21864         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
21865         (equiv_constant): Handle CONST_WIDE_INT.
21866         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
21867         (cselib_hash_rtx): Handle CONST_WIDE_INT.
21868         * dbxout.c (stabstr_U): Use wide-int interfaces.
21869         (dbxout_type): Update to use cst_fits_shwi_p.
21870         * defaults.h (LOG2_BITS_PER_UNIT): Define.
21871         (TARGET_SUPPORTS_WIDE_INT): Add default.
21872         * dfp.c: Include wide-int.h.
21873         (decimal_real_to_integer2): Use wide-int interfaces and rename to
21874         decimal_real_to_integer.
21875         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
21876         decimal_real_to_integer.
21877         * doc/generic.texi (Constant expressions): Update for wide_int.
21878         * doc/rtl.texi (const_double): Likewise.
21879         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
21880         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
21881         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
21882         (REAL_VALUE_FROM_INT): Remove.
21883         (TARGET_SUPPORTS_WIDE_INT): New.
21884         * doc/tm.texi: Regenerate.
21885         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
21886         * double-int.h: Include wide-int.h.
21887         (struct wi::int_traits): New.
21888         * dwarf2out.c (get_full_len): New.
21889         (dw_val_equal_p): Add case dw_val_class_wide_int.
21890         (size_of_loc_descr): Likewise.
21891         (output_loc_operands): Likewise.
21892         (insert_double): Remove.
21893         (insert_wide_int): New.
21894         (add_AT_wide): New.
21895         (print_die): Add case dw_val_class_wide_int.
21896         (attr_checksum): Likewise.
21897         (attr_checksum_ordered): Likewise.
21898         (same_dw_val_p): Likewise.
21899         (size_of_die): Likewise.
21900         (value_format): Likewise.
21901         (output_die): Likewise.
21902         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
21903         Use wide-int.
21904         (clz_loc_descriptor): Use wide-int interfaces.
21905         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
21906         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
21907         (round_up_to_align): Use wide-int interfaces.
21908         (field_byte_offset): Likewise.
21909         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
21910         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
21911         CONST_DOUBLE handling.  Use wide-int interfaces.
21912         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
21913         (gen_enumeration_type_die): Use add_AT_wide.
21914         (hash_loc_operands): Add case dw_val_class_wide_int.
21915         (compare_loc_operands): Likewise.
21916         * dwarf2out.h: Include wide-int.h.
21917         (wide_int_ptr): New.
21918         (enum dw_val_class): Add dw_val_class_wide_int.
21919         (struct dw_val_struct): Add val_wide.
21920         * emit-rtl.c (const_wide_int_htab): New.
21921         (const_wide_int_htab_hash): New.
21922         (const_wide_int_htab_eq): New.
21923         (lookup_const_wide_int): New.
21924         (const_double_htab_hash): Use wide-int interfaces.
21925         (const_double_htab_eq): Likewise.
21926         (rtx_to_double_int): Conditionally compile for wide-int.
21927         (immed_double_int_const): Rename to immed_wide_int_const and
21928         update for wide-int.
21929         (immed_double_const): Conditionally compile for wide-int.
21930         (init_emit_once): Use wide-int interfaces.
21931         * explow.c (plus_constant): Likewise.
21932         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
21933         (lshift_value): Use wide-int interfaces.
21934         (expand_mult): Likewise.
21935         (choose_multiplier): Likewise.
21936         (expand_smod_pow2): Likewise.
21937         (make_tree): Likewise.
21938         * expr.c (convert_modes): Consolidate handling of constants.
21939         Use wide-int interfaces.
21940         (emit_group_load_1): Add note.
21941         (store_expr): Update comment.
21942         (get_inner_reference): Use wide-int interfaces.
21943         (expand_constructor): Update comment.
21944         (expand_expr_real_2): Use wide-int interfaces.
21945         (expand_expr_real_1): Likewise.
21946         (reduce_to_bit_field_precision): Likewise.
21947         (const_vector_from_tree): Likewise.
21948         * final.c: Include wide-int-print.h.
21949         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
21950         * fixed-value.c: Include wide-int.h.
21951         (fixed_from_string): Use wide-int interfaces.
21952         (fixed_to_decimal): Likewise.
21953         (fixed_convert_from_real): Likewise.
21954         (real_convert_from_fixed): Likewise.
21955         * fold-const.h (mem_ref_offset): Return an offset_int.
21956         (div_if_zero_remainder): Remove code parameter.
21957         * fold-const.c (div_if_zero_remainder): Remove code parameter.
21958         Use wide-int interfaces.
21959         (may_negate_without_overflow_p): Use wide-int interfaces.
21960         (negate_expr_p): Likewise.
21961         (fold_negate_expr): Likewise.
21962         (int_const_binop_1): Likewise.
21963         (const_binop): Likewise.
21964         (fold_convert_const_int_from_int): Likewise.
21965         (fold_convert_const_int_from_real): Likewise.
21966         (fold_convert_const_int_from_fixed): Likewise.
21967         (fold_convert_const_fixed_from_int): Likewise.
21968         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
21969         (sign_bit_p): Use wide-int interfaces.
21970         (make_range_step): Likewise.
21971         (build_range_check): Likewise.  Pass an integer of the correct type
21972         instead of using integer_one_node.
21973         (range_predecessor): Pass an integer of the correct type instead
21974         of using integer_one_node.
21975         (range_successor): Likewise.
21976         (merge_ranges): Likewise.
21977         (unextend): Use wide-int interfaces.
21978         (extract_muldiv_1): Likewise.
21979         (fold_div_compare): Likewise.
21980         (fold_single_bit_test): Likewise.
21981         (fold_sign_changed_comparison): Likewise.
21982         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
21983         (fold_plusminus_mult_expr): Use wide-int interfaces.
21984         (native_encode_int): Likewise.
21985         (native_interpret_int): Likewise.
21986         (fold_unary_loc): Likewise.
21987         (pointer_may_wrap_p): Likewise.
21988         (size_low_cst): Likewise.
21989         (mask_with_tz): Likewise.
21990         (fold_binary_loc): Likewise.
21991         (fold_ternary_loc): Likewise.
21992         (multiple_of_p): Likewise.
21993         (tree_call_nonnegative_warnv_p): Update calls to
21994         tree_int_cst_min_precision and real_from_integer.
21995         (fold_negate_const): Use wide-int interfaces.
21996         (fold_abs_const): Likewise.
21997         (fold_relational_const): Use tree_int_cst_lt.
21998         (round_up_loc): Use wide-int interfaces.
21999         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
22000         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
22001         * gengtype.c: Remove include of double-int.h.
22002         (do_typedef): Use wide-int interfaces.
22003         (open_base_files): Add wide-int.h.
22004         (main): Add offset_int and widest_int typedefs.
22005         * gengtype-lex.l: Handle "^".
22006         (CXX_KEYWORD): Add "static".
22007         * gengtype-parse.c (require3): New.
22008         (require_template_declaration): Handle constant template arguments
22009         and nested templates.
22010         * gengtype-state.c: Don't include "double-int.h".
22011         * genpreds.c (write_one_predicate_function): Update comment.
22012         (write_tm_constrs_h): Add check for hval and lval use in
22013         CONST_WIDE_INT.
22014         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
22015         (add_to_sequence): Likewise.
22016         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
22017         and const_double_operand.
22018         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
22019         interfaces.
22020         * gimple-fold.c (get_base_constructor): Likewise.
22021         (fold_array_ctor_reference): Likewise.
22022         (fold_nonarray_ctor_reference): Likewise.
22023         (fold_const_aggregate_ref_1): Likewise.
22024         (gimple_val_nonnegative_real_p): Likewise.
22025         (gimple_fold_indirect_ref): Likewise.
22026         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
22027         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
22028         (struct slsr_cand_d): Change index to be widest_int.
22029         (struct incr_info_d): Change incr to be widest_int.
22030         (alloc_cand_and_find_basis): Use wide-int interfaces.
22031         (slsr_process_phi): Likewise.
22032         (backtrace_base_for_ref): Likewise.  Return a widest_int.
22033         (restructure_reference): Take a widest_int instead of a double_int.
22034         (slsr_process_ref): Use wide-int interfaces.
22035         (create_mul_ssa_cand): Likewise.
22036         (create_mul_imm_cand): Likewise.
22037         (create_add_ssa_cand): Likewise.
22038         (create_add_imm_cand): Take a widest_int instead of a double_int.
22039         (slsr_process_add): Use wide-int interfaces.
22040         (slsr_process_cast): Likewise.
22041         (slsr_process_copy): Likewise.
22042         (dump_candidate): Likewise.
22043         (dump_incr_vec): Likewise.
22044         (replace_ref): Likewise.
22045         (cand_increment): Likewise.  Return a widest_int.
22046         (cand_abs_increment): Likewise.
22047         (replace_mult_candidate): Take a widest_int instead of a double_int.
22048         (replace_unconditional_candidate): Use wide-int interfaces.
22049         (incr_vec_index): Take a widest_int instead of a double_int.
22050         (create_add_on_incoming_edge): Likewise.
22051         (create_phi_basis): Use wide-int interfaces.
22052         (replace_conditional_candidate): Likewise.
22053         (record_increment): Take a widest_int instead of a double_int.
22054         (record_phi_increments): Use wide-int interfaces.
22055         (phi_incr_cost): Take a widest_int instead of a double_int.
22056         (lowest_cost_path): Likewise.
22057         (total_savings): Likewise.
22058         (analyze_increments): Use wide-int interfaces.
22059         (ncd_with_phi): Take a widest_int instead of a double_int.
22060         (ncd_of_cand_and_phis): Likewise.
22061         (nearest_common_dominator_for_cands): Likewise.
22062         (insert_initializers): Use wide-int interfaces.
22063         (all_phi_incrs_profitable): Likewise.
22064         (replace_one_candidate): Likewise.
22065         (replace_profitable_candidates): Likewise.
22066         * godump.c: Include wide-int-print.h.
22067         (go_output_typedef): Use wide-int interfaces.
22068         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
22069         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
22070         (build_loop_iteration_domains): Likewise.
22071         * hooks.h: Include wide-int.h rather than double-int.h.
22072         (hook_bool_dint_dint_uint_bool_true): Delete.
22073         (hook_bool_wint_wint_uint_bool_true): Declare.
22074         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
22075         (hook_bool_wint_wint_uint_bool_true): New.
22076         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
22077         interfaces.
22078         (ubsan_expand_si_overflow_mul_check): Likewise.
22079         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
22080         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
22081         (get_ancestor_addr_info): Likewise.
22082         (ipa_modify_call_arguments): Likewise.
22083         * loop-doloop.c (doloop_modify): Likewise.
22084         (doloop_optimize): Likewise.
22085         * loop-iv.c (iv_number_of_iterations): Likewise.
22086         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
22087         (unroll_loop_constant_iterations): Likewise.
22088         (decide_unroll_runtime_iterations): Likewise.
22089         (unroll_loop_runtime_iterations): Likewise.
22090         (decide_peel_simple): Likewise.
22091         (decide_unroll_stupid): Likewise.
22092         * lto-streamer-in.c (streamer_read_wi): Add.
22093         (input_cfg): Use wide-int interfaces.
22094         (lto_input_tree_1): Likewise.
22095         * lto-streamer-out.c (streamer_write_wi): Add.
22096         (hash_tree): Use wide-int interfaces.
22097         (output_cfg): Likewise.
22098         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
22099         (GTFILES): Add wide-int.h and signop.h.
22100         (TAGS): Look for .cc files too.
22101         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
22102         * optabs.c (expand_subword_shift): Likewise.
22103         (expand_doubleword_shift): Likewise.
22104         (expand_absneg_bit): Likewise.
22105         (expand_copysign_absneg): Likewise.
22106         (expand_copysign_bit): Likewise.
22107         * postreload.c (reload_cse_simplify_set): Likewise.
22108         * predict.c (predict_iv_comparison): Likewise.
22109         * pretty-print.h: Include wide-int-print.h.
22110         (pp_wide_int) New.
22111         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
22112         * print-tree.c: Include wide-int-print.h.
22113         (print_node_brief): Use wide-int interfaces.
22114         (print_node): Likewise.
22115         * read-rtl.c (validate_const_wide_int): New.
22116         (read_rtx_code): Add CONST_WIDE_INT case.
22117         * real.c: Include wide-int.h.
22118         (real_to_integer2): Delete.
22119         (real_to_integer): New function, returning a wide_int.
22120         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
22121         (ten_to_ptwo): Update call to real_from_integer.
22122         (real_digit): Likewise.
22123         * real.h: Include signop.h, wide-int.h and insn-modes.h.
22124         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
22125         (REAL_VALUE_TO_INT): Delete.
22126         (real_to_integer): Declare a wide-int form.
22127         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
22128         * recog.c (const_int_operand): Improve comment.
22129         (const_scalar_int_operand): New.
22130         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
22131         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
22132         (split_double): Likewise.
22133         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
22134         (rtx_size): Likewise.
22135         (rtx_alloc_stat_v): New.
22136         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
22137         (cwi_output_hex): New.
22138         (iterative_hash_rtx): Handle CONST_WIDE_INT.
22139         (cwi_check_failed_bounds): New.
22140         * rtl.def (CONST_WIDE_INT): New.
22141         * rtl.h: Include <utility> and wide-int.h.
22142         (struct hwivec_def): New.
22143         (CWI_GET_NUM_ELEM): New.
22144         (CWI_PUT_NUM_ELEM): New.
22145         (struct rtx_def): Add num_elem and hwiv.
22146         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
22147         (CASE_CONST_UNIQUE): Likewise.
22148         (CASE_CONST_ANY): Likewise.
22149         (CONST_SCALAR_INT_P): Likewise.
22150         (CONST_WIDE_INT_P): New.
22151         (CWI_ELT): New.
22152         (HWIVEC_CHECK): New.
22153         (cwi_check_failed_bounds): New.
22154         (CWI_ELT): New.
22155         (HWIVEC_CHECK): New.
22156         (CONST_WIDE_INT_VEC) New.
22157         (CONST_WIDE_INT_NUNITS) New.
22158         (CONST_WIDE_INT_ELT) New.
22159         (rtx_mode_t): New type.
22160         (wi::int_traits <rtx_mode_t>): New.
22161         (wi::shwi): New.
22162         (wi::min_value): New.
22163         (wi::max_value): New.
22164         (rtx_alloc_v) New.
22165         (const_wide_int_alloc): New.
22166         (immed_wide_int_const): New.
22167         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
22168         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
22169         * signop.h: New file.
22170         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
22171         (simplify_const_unary_operation): Use wide-int interfaces.
22172         (simplify_binary_operation_1): Likewise.
22173         (simplify_const_binary_operation): Likewise.
22174         (simplify_const_relational_operation): Likewise.
22175         (simplify_immed_subreg): Likewise.
22176         * stmt.c (expand_case): Likewise.
22177         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
22178         signop rather than a bool.
22179         * stor-layout.c (layout_type): Use wide-int interfaces.
22180         (initialize_sizetypes): Update calls to
22181         set_min_and_max_values_for_integral_type.
22182         (set_min_and_max_values_for_integral_type): Take a signop rather
22183         than a bool.  Use wide-int interfaces.
22184         (fixup_signed_type): Update accordingly.  Remove
22185         HOST_BITS_PER_DOUBLE_INT limit.
22186         (fixup_unsigned_type): Likewise.
22187         * system.h (STATIC_CONSTANT_P): New.
22188         (STATIC_ASSERT): New.
22189         * target.def (can_use_doloop_p): Take widest_ints rather than
22190         double_ints.
22191         * target.h: Include wide-int.h rather than double-int.h.
22192         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
22193         than double_ints.
22194         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
22195         rather than INT_CST_LT_UNSIGNED.
22196         (can_use_doloop_if_innermost): Take widest_ints rather than
22197         double_ints.
22198         * tree-affine.c: Include wide-int-print.h.
22199         (double_int_ext_for_comb): Delete.
22200         (wide_int_ext_for_comb): New.
22201         (aff_combination_zero): Use wide-int interfaces.
22202         (aff_combination_const): Take a widest_int instead of a double_int.
22203         (aff_combination_elt): Use wide-int interfaces.
22204         (aff_combination_scale): Take a widest_int instead of a double_int.
22205         (aff_combination_add_elt): Likewise.
22206         (aff_combination_add_cst): Likewise.
22207         (aff_combination_add): Use wide-int interfaces.
22208         (aff_combination_convert): Likewise.
22209         (tree_to_aff_combination): Likewise.
22210         (add_elt_to_tree): Take a widest_int instead of a double_int.
22211         (aff_combination_to_tree): Use wide-int interfaces.
22212         (aff_combination_remove_elt): Likewise.
22213         (aff_combination_add_product): Take a widest_int instead of
22214         a double_int.
22215         (aff_combination_mult): Use wide-int interfaces.
22216         (aff_combination_expand): Likewise.
22217         (double_int_constant_multiple_p): Delete.
22218         (wide_int_constant_multiple_p): New.
22219         (aff_combination_constant_multiple_p): Take a widest_int pointer
22220         instead of a double_int pointer.
22221         (print_aff): Use wide-int interfaces.
22222         (get_inner_reference_aff): Take a widest_int pointer
22223         instead of a double_int pointer.
22224         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
22225         * tree-affine.h: Include wide-int.h.
22226         (struct aff_comb_elt): Change type of coef to widest_int.
22227         (struct affine_tree_combination): Change type of offset to widest_int.
22228         (double_int_ext_for_comb): Delete.
22229         (wide_int_ext_for_comb): New.
22230         (aff_combination_const): Use widest_int instead of double_int.
22231         (aff_combination_scale): Likewise.
22232         (aff_combination_add_elt): Likewise.
22233         (aff_combination_constant_multiple_p): Likewise.
22234         (get_inner_reference_aff): Likewise.
22235         (aff_comb_cannot_overlap_p): Likewise.
22236         (aff_combination_zero_p): Use wide-int interfaces.
22237         * tree.c: Include tree.h.
22238         (init_ttree): Use make_int_cst.
22239         (tree_code_size): Removed code for INTEGER_CST case.
22240         (tree_size): Add INTEGER_CST case.
22241         (make_node_stat): Update comment.
22242         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
22243         (build_int_cst_type): Use wide-int interfaces.
22244         (double_int_to_tree): Likewise.
22245         (double_int_fits_to_tree_p): Delete.
22246         (force_fit_type_double): Delete.
22247         (force_fit_type): New.
22248         (int_cst_hash_hash): Use wide-int interfaces.
22249         (int_cst_hash_eq): Likewise.
22250         (build_int_cst_wide): Delete.
22251         (wide_int_to_tree): New.
22252         (cache_integer_cst): Use wide-int interfaces.
22253         (build_low_bits_mask): Likewise.
22254         (cst_and_fits_in_hwi): Likewise.
22255         (real_value_from_int_cst): Likewise.
22256         (make_int_cst_stat): New.
22257         (integer_zerop): Use wide_int interfaces.
22258         (integer_onep): Likewise.
22259         (integer_all_onesp): Likewise.
22260         (integer_pow2p): Likewise.
22261         (integer_nonzerop): Likewise.
22262         (tree_log2): Likewise.
22263         (tree_floor_log2): Likewise.
22264         (tree_ctz): Likewise.
22265         (int_size_in_bytes): Likewise.
22266         (mem_ref_offset): Return an offset_int rather than a double_int.
22267         (build_type_attribute_qual_variant): Use wide_int interfaces.
22268         (type_hash_eq): Likewise
22269         (tree_int_cst_equal): Likewise.
22270         (tree_int_cst_lt): Delete.
22271         (tree_int_cst_compare): Likewise.
22272         (tree_fits_shwi_p): Use wide_int interfaces.
22273         (tree_fits_uhwi_p): Likewise.
22274         (tree_int_cst_sign_bit): Likewise.
22275         (tree_int_cst_sgn): Likewise.
22276         (tree_int_cst_min_precision): Take a signop rather than a bool.
22277         (simple_cst_equal): Use wide_int interfaces.
22278         (compare_tree_int): Likewise.
22279         (iterative_hash_expr): Likewise.
22280         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
22281         INT_CST_LT.
22282         (get_type_static_bounds): Use wide_int interfaces.
22283         (tree_int_cst_elt_check_failed): New.
22284         (build_common_tree_nodes): Reordered to set prec before filling in
22285         value.
22286         (int_cst_value): Check cst_and_fits_in_hwi.
22287         (widest_int_cst_value): Use wide_int interfaces.
22288         (upper_bound_in_type): Likewise.
22289         (lower_bound_in_type): Likewise.
22290         (num_ending_zeros): Likewise.
22291         (drop_tree_overflow): Likewise.
22292         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
22293         (gen_conditions_for_pow_cst_base): Likewise.
22294         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
22295         (group_case_labels_stmt): Use wide-int interfaces.
22296         (verify_gimple_assign_binary): Likewise.
22297         (print_loop): Likewise.
22298         * tree-chrec.c (tree_fold_binomial): Likewise.
22299         * tree-core.h (struct tree_base): Add int_length.
22300         (struct tree_int_cst): Change rep of value.
22301         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
22302         (dr_may_alias_p): Likewise.
22303         (max_stmt_executions_tree): Likewise.
22304         * tree.def (INTEGER_CST): Update comment.
22305         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
22306         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
22307         * tree-dump.c: Include wide-int.h and wide-int-print.h.
22308         (dequeue_and_dump): Use wide-int interfaces.
22309         * tree.h: Include wide-int.h.
22310         (NULL_TREE): Moved to earlier loc in file.
22311         (TREE_INT_CST_ELT_CHECK): New.
22312         (tree_int_cst_elt_check_failed): New.
22313         (TYPE_SIGN): New.
22314         (TREE_INT_CST): Delete.
22315         (TREE_INT_CST_LOW): Use wide-int interfaces.
22316         (TREE_INT_CST_HIGH): Delete.
22317         (TREE_INT_CST_NUNITS): New.
22318         (TREE_INT_CST_EXT_NUNITS): Likewise.
22319         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
22320         (TREE_INT_CST_ELT): Likewise.
22321         (INT_CST_LT): Delete.
22322         (tree_int_cst_elt_check): New (two forms).
22323         (type_code_size): Update comment.
22324         (make_int_cst_stat, make_int_cst): New.
22325         (tree_to_double_int): Delete.
22326         (double_int_fits_to_tree_p): Delete.
22327         (force_fit_type_double): Delete.
22328         (build_int_cstu): Replace with out-of-line function.
22329         (build_int_cst_wide): Delete.
22330         (tree_int_cst_lt): Define inline.
22331         (tree_int_cst_le): New.
22332         (tree_int_cst_compare): Define inline.
22333         (tree_int_cst_min_precision): Take a signop rather than a bool.
22334         (wi::int_traits <const_tree>): New.
22335         (wi::int_traits <tree>): New.
22336         (wi::extended_tree): New.
22337         (wi::int_traits <wi::extended_tree>): New.
22338         (wi::to_widest): New.
22339         (wi::to_offset): New.
22340         (wi::fits_to_tree_p): New.
22341         (wi::min_value): New.
22342         (wi::max_value): New.
22343         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
22344         (copy_tree_body_r): Likewise.
22345         * tree-object-size.c (compute_object_offset): Likewise.
22346         (addr_object_size): Likewise.
22347         * tree-predcom.c: Include wide-int-print.h.
22348         (struct dref_d): Change type of offset to widest_int.
22349         (dump_dref): Call wide-int printer.
22350         (aff_combination_dr_offset): Use wide-int interfaces.
22351         (determine_offset): Take a widest_int pointer rather than a
22352         double_int pointer.
22353         (split_data_refs_to_components): Use wide-int interfaces.
22354         (suitable_component_p): Likewise.
22355         (order_drefs): Likewise.
22356         (add_ref_to_chain): Likewise.
22357         (valid_initializer_p): Likewise.
22358         (determine_roots_comp): Likewise.
22359         * tree-pretty-print.c: Include wide-int-print.h.
22360         (dump_generic_node): Use wide-int interfaces.
22361         * tree-sra.c (sra_ipa_modify_expr): Likewise.
22362         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
22363         (move_fixed_address_to_symbol): Likewise.
22364         (move_hint_to_base): Likewise.
22365         (move_pointer_to_base): Likewise.
22366         (move_variant_to_index): Likewise.
22367         (most_expensive_mult_to_index): Likewise.
22368         (addr_to_parts): Likewise.
22369         (copy_ref_info): Likewise.
22370         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
22371         (indirect_refs_may_alias_p): Likewise.
22372         (stmt_kills_ref_p_1): Likewise.
22373         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
22374         * tree-ssa-ccp.c: Update comment at top of file.  Include
22375         wide-int-print.h.
22376         (struct prop_value_d): Change type of mask to widest_int.
22377         (extend_mask): New function.
22378         (dump_lattice_value): Use wide-int interfaces.
22379         (get_default_value): Likewise.
22380         (set_constant_value): Likewise.
22381         (set_value_varying): Likewise.
22382         (valid_lattice_transition): Likewise.
22383         (set_lattice_value): Likewise.
22384         (value_to_double_int): Delete.
22385         (value_to_wide_int): New.
22386         (get_value_from_alignment): Use wide-int interfaces.
22387         (get_value_for_expr): Likewise.
22388         (do_dbg_cnt): Likewise.
22389         (ccp_finalize): Likewise.
22390         (ccp_lattice_meet): Likewise.
22391         (bit_value_unop_1): Use widest_ints rather than double_ints.
22392         (bit_value_binop_1): Likewise.
22393         (bit_value_unop): Use wide-int interfaces.
22394         (bit_value_binop): Likewise.
22395         (bit_value_assume_aligned): Likewise.
22396         (evaluate_stmt): Likewise.
22397         (ccp_fold_stmt): Likewise.
22398         (visit_cond_stmt): Likewise.
22399         (ccp_visit_stmt): Likewise.
22400         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
22401         (constant_pointer_difference): Likewise.
22402         (associate_pointerplus): Likewise.
22403         (combine_conversions): Likewise.
22404         * tree-ssa-loop.h: Include wide-int.h.
22405         (struct tree_niter_desc): Change type of max to widest_int.
22406         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
22407         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
22408         (remove_redundant_iv_tests): Likewise.
22409         (canonicalize_loop_induction_variables): Likewise.
22410         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
22411         (constant_multiple_of): Take a widest_int pointer instead of
22412         a double_int pointer.
22413         (get_computation_aff): Use wide-int interfaces.
22414         (ptr_difference_cost): Likewise.
22415         (difference_cost): Likewise.
22416         (get_loop_invariant_expr_id): Likewise.
22417         (get_computation_cost_at): Likewise.
22418         (iv_elimination_compare_lt): Likewise.
22419         (may_eliminate_iv): Likewise.
22420         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
22421         instead of double_int.
22422         (max_loop_iterations): Likewise.
22423         (max_stmt_executions): Likewise.
22424         (estimated_stmt_executions): Likewise.
22425         * tree-ssa-loop-niter.c: Include wide-int-print.h.
22426         (split_to_var_and_offset): Use wide-int interfaces.
22427         (determine_value_range): Likewise.
22428         (bound_difference_of_offsetted_base): Likewise.
22429         (bounds_add): Take a widest_int instead of a double_int.
22430         (number_of_iterations_ne_max): Use wide-int interfaces.
22431         (number_of_iterations_ne): Likewise.
22432         (number_of_iterations_lt_to_ne): Likewise.
22433         (assert_loop_rolls_lt): Likewise.
22434         (number_of_iterations_lt): Likewise.
22435         (number_of_iterations_le): Likewise.
22436         (number_of_iterations_cond): Likewise.
22437         (number_of_iterations_exit): Likewise.
22438         (finite_loop_p): Likewise.
22439         (derive_constant_upper_bound_assign): Likewise.
22440         (derive_constant_upper_bound): Return a widest_int.
22441         (derive_constant_upper_bound_ops): Likewise.
22442         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
22443         (record_estimate): Take a widest_int rather than a double_int.
22444         (record_nonwrapping_iv): Use wide-int interfaces.
22445         (double_int_cmp): Delete.
22446         (wide_int_cmp): New.
22447         (bound_index): Take a widest_int rather than a double_int.
22448         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
22449         (maybe_lower_iteration_bound): Likewise.
22450         (estimate_numbers_of_iterations_loop): Likewise.
22451         (estimated_loop_iterations): Take a widest_int pointer than than
22452         a double_int pointer.
22453         (estimated_loop_iterations_int): Use wide-int interfaces.
22454         (max_loop_iterations): Take a widest_int pointer than than
22455         a double_int pointer.
22456         (max_loop_iterations_int): Use wide-int interfaces.
22457         (max_stmt_executions): Take a widest_int pointer than than
22458         a double_int pointer.
22459         (estimated_stmt_executions): Likewise.
22460         (n_of_executions_at_most): Use wide-int interfaces.
22461         (scev_probably_wraps_p): Likewise.
22462         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
22463         to real_to_integer.
22464         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
22465         interfaces.
22466         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
22467         double_ints.  Adjust for trailing_wide_ints <3> representation.
22468         (set_nonzero_bits): Likewise.
22469         (get_range_info): Return wide_ints rather than double_ints.
22470         Adjust for trailing_wide_ints <3> representation.
22471         (get_nonzero_bits): Likewise.
22472         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
22473         representation.
22474         * tree-ssanames.h (struct range_info_def): Replace min, max and
22475         nonzero_bits with a trailing_wide_ints <3>.
22476         (set_range_info): Use wide_int_refs rather than double_ints.
22477         (set_nonzero_bits): Likewise.
22478         (get_range_info): Return wide_ints rather than double_ints.
22479         (get_nonzero_bits): Likewise.
22480         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
22481         * tree-ssa-pre.c (phi_translate_1): Likewise.
22482         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
22483         (acceptable_pow_call): Likewise.
22484         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
22485         interfaces.
22486         (vn_reference_fold_indirect): Likewise.
22487         (vn_reference_maybe_forwprop_address): Likewise.
22488         (valueize_refs_1): Likewise.
22489         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
22490         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
22491         tree_int_cst_lt and tree_int_cst_le.
22492         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
22493         interfaces.
22494         (streamer_alloc_tree): Likewise.
22495         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
22496         (streamer_write_tree_header): Likewise.
22497         (streamer_write_integer_cst): Likewise.
22498         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
22499         (build_constructors): Likewise.
22500         (array_value_type): Likewise.
22501         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
22502         (vect_check_gather): Likewise.
22503         * tree-vect-generic.c (build_replicated_const): Likewise.
22504         (expand_vector_divmod): Likewise.
22505         * tree-vect-loop.c (vect_transform_loop): Likewise.
22506         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
22507         (vect_do_peeling_for_alignment): Likewise.
22508         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
22509         * tree-vrp.c: Include wide-int.h.
22510         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
22511         (extract_range_from_assert): Use wide-int interfaces.
22512         (vrp_int_const_binop): Likewise.
22513         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
22514         double_int pointers.
22515         (ranges_from_anti_range): Use wide-int interfaces.
22516         (quad_int_cmp): Delete.
22517         (quad_int_pair_sort): Likewise.
22518         (extract_range_from_binary_expr_1): Use wide-int interfaces.
22519         (extract_range_from_unary_expr_1): Likewise.
22520         (adjust_range_with_scev): Likewise.
22521         (masked_increment): Take and return wide_ints rather than double_ints.
22522         (register_edge_assert_for_2): Use wide-int interfaces.
22523         (check_array_ref): Likewise.
22524         (search_for_addr_array): Likewise.
22525         (maybe_set_nonzero_bits): Likewise.
22526         (union_ranges): Pass an integer of the correct type instead of
22527         using integer_one_node.
22528         (intersect_ranges): Likewise.
22529         (simplify_truth_ops_using_ranges): Likewise.
22530         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
22531         (range_fits_type_p): Likewise.
22532         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
22533         a bool.
22534         (simplify_conversion_using_ranges): Use wide-int interfaces.
22535         (simplify_float_conversion_using_ranges): Likewise.
22536         (vrp_finalize): Likewise.
22537         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
22538         (gimple_stringops_transform): Likewise.
22539         * varasm.c (decode_addr_const): Likewise.
22540         (const_hash_1): Likewise.
22541         (const_rtx_hash_1): Likewise
22542         (output_constant): Likewise.
22543         (array_size_for_constructor): Likewise.
22544         (output_constructor_regular_field): Likewise.
22545         (output_constructor_bitfield): Likewise.
22546         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
22547         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
22548         GENERATOR_FILEs.
22549         * gencheck.c: Define BITS_PER_UNIT.
22550         * wide-int.cc: New.
22551         * wide-int.h: New.
22552         * wide-int-print.cc: New.
22553         * wide-int-print.h: New.
22554
22555 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22556
22557         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
22558
22559 2014-05-06  Richard Biener  <rguenther@suse.de>
22560
22561         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
22562         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
22563         (TODO_verify_all): Adjust.
22564         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
22565         TODO_verify_stmts and TODO_verify_rtl_sharing.
22566         * bb-reorder.c: Likewise.
22567         * cfgexpand.c: Likewise.
22568         * cprop.c: Likewise.
22569         * cse.c: Likewise.
22570         * function.c: Likewise.
22571         * fwprop.c: Likewise.
22572         * gcse.c: Likewise.
22573         * gimple-ssa-isolate-paths.c: Likewise.
22574         * gimple-ssa-strength-reduction.c: Likewise.
22575         * ipa-split.c: Likewise.
22576         * loop-init.c: Likewise.
22577         * loop-unroll.c: Likewise.
22578         * lower-subreg.c: Likewise.
22579         * modulo-sched.c: Likewise.
22580         * postreload-gcse.c: Likewise.
22581         * predict.c: Likewise.
22582         * recog.c: Likewise.
22583         * sched-rgn.c: Likewise.
22584         * store-motion.c: Likewise.
22585         * tracer.c: Likewise.
22586         * trans-mem.c: Likewise.
22587         * tree-call-cdce.c: Likewise.
22588         * tree-cfg.c: Likewise.
22589         * tree-cfgcleanup.c: Likewise.
22590         * tree-complex.c: Likewise.
22591         * tree-eh.c: Likewise.
22592         * tree-emutls.c: Likewise.
22593         * tree-if-conv.c: Likewise.
22594         * tree-into-ssa.c: Likewise.
22595         * tree-loop-distribution.c: Likewise.
22596         * tree-object-size.c: Likewise.
22597         * tree-parloops.c: Likewise.
22598         * tree-pass.h: Likewise.
22599         * tree-sra.c: Likewise.
22600         * tree-ssa-ccp.c: Likewise.
22601         * tree-ssa-copy.c: Likewise.
22602         * tree-ssa-copyrename.c: Likewise.
22603         * tree-ssa-dce.c: Likewise.
22604         * tree-ssa-dom.c: Likewise.
22605         * tree-ssa-dse.c: Likewise.
22606         * tree-ssa-forwprop.c: Likewise.
22607         * tree-ssa-ifcombine.c: Likewise.
22608         * tree-ssa-loop-ch.c: Likewise.
22609         * tree-ssa-loop-ivcanon.c: Likewise.
22610         * tree-ssa-loop.c: Likewise.
22611         * tree-ssa-math-opts.c: Likewise.
22612         * tree-ssa-phiopt.c: Likewise.
22613         * tree-ssa-phiprop.c: Likewise.
22614         * tree-ssa-pre.c: Likewise.
22615         * tree-ssa-reassoc.c: Likewise.
22616         * tree-ssa-sink.c: Likewise.
22617         * tree-ssa-strlen.c: Likewise.
22618         * tree-ssa-tail-merge.c: Likewise.
22619         * tree-ssa-uncprop.c: Likewise.
22620         * tree-switch-conversion.c: Likewise.
22621         * tree-tailcall.c: Likewise.
22622         * tree-vect-generic.c: Likewise.
22623         * tree-vectorizer.c: Likewise.
22624         * tree-vrp.c: Likewise.
22625         * tsan.c: Likewise.
22626         * var-tracking.c: Likewise.
22627         * bt-load.c: Likewise.
22628         * cfgcleanup.c: Likewise.
22629         * combine-stack-adj.c: Likewise.
22630         * combine.c: Likewise.
22631         * compare-elim.c: Likewise.
22632         * config/epiphany/resolve-sw-modes.c: Likewise.
22633         * config/i386/i386.c: Likewise.
22634         * config/mips/mips.c: Likewise.
22635         * config/s390/s390.c: Likewise.
22636         * config/sh/sh_treg_combine.cc: Likewise.
22637         * config/sparc/sparc.c: Likewise.
22638         * dce.c: Likewise.
22639         * dse.c: Likewise.
22640         * final.c: Likewise.
22641         * ifcvt.c: Likewise.
22642         * mode-switching.c: Likewise.
22643         * passes.c: Likewise.
22644         * postreload.c: Likewise.
22645         * ree.c: Likewise.
22646         * reg-stack.c: Likewise.
22647         * regcprop.c: Likewise.
22648         * regrename.c: Likewise.
22649         * web.c: Likewise.
22650
22651 2014-05-06  Richard Biener  <rguenther@suse.de>
22652
22653         PR middle-end/61070
22654         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
22655         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
22656
22657 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
22658
22659         PR ipa/60965
22660         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
22661
22662 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
22663             Tom de Vries  <tom@codesourcery.com>
22664
22665         * target.def (call_fusage_contains_non_callee_clobbers): New
22666         DEFHOOKPOD.
22667         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
22668         Hooks to @menu.
22669         (@node Miscellaneous Register Hooks): New node.
22670         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
22671         * doc/tm.texi: Regenerate.
22672
22673 2014-05-05  Marek Polacek  <polacek@redhat.com>
22674
22675         PR driver/61065
22676         * opts.c (common_handle_option): Call error_at instead of warning_at.
22677
22678 2014-05-05  Richard Biener  <rguenther@suse.de>
22679
22680         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
22681         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
22682         under the TODO_verify_il umbrella.
22683
22684 2014-05-05  Richard Biener  <rguenther@suse.de>
22685
22686         * passes.c (execute_function_todo): Move TODO_verify_flow under
22687         the TODO_verify_ul umbrella.
22688
22689 2014-05-05  Richard Biener  <rguenther@suse.de>
22690
22691         PR middle-end/61010
22692         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
22693         X & CST away from a CST that is the mask of a mode.
22694
22695 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22696
22697         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
22698         int argument to enum machine_mode.
22699         (picochip_class_max_nregs): Ditto.
22700         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
22701         (picochip_class_max_nregs): Ditto.
22702
22703 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22704
22705         * target.def: Add new target hook.
22706         * doc/tm.texi: Regenerate.
22707         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
22708         * targhooks.c (default_keep_leaf_when_profiled): New function.
22709
22710         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
22711         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
22712
22713 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
22714
22715         PR tree-optimization/60363
22716         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
22717         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
22718         (update_destination_phis): New parameter.
22719         (create_edge_and_update_destination_phis): Ditto.
22720         (ssa_fix_duplicate_block_edges): Pass new arguments.
22721         (thread_single_edge): Ditto.
22722
22723 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
22724
22725         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
22726         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
22727         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
22728         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
22729         Use RS6000_BTM_HARD_FLOAT.
22730         (BU_MISC_2): Likewise.
22731         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
22732         RS6000_BTM_HARD_FLOAT.
22733         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
22734         is explicitly used.
22735         (rs6000_invalid_builtin): Add hard floating builtin support.
22736         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
22737         hard float builtins.
22738         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
22739
22740 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22741
22742         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
22743         Add missing function* argument.
22744
22745 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
22746
22747         * lra-constraints.c (valid_address_p): Move earlier in file.
22748         Add a constraint argument to the address_info version.
22749         (satisfies_memory_constraint_p): New function.
22750         (satisfies_address_constraint_p): Likewise.
22751         (process_alt_operands, curr_insn_transform): Use them.
22752         (process_address): Pass the constraint to valid_address_p when
22753         checking address operands.
22754
22755 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
22756
22757         * config/mips/mips.c (mips_isa_rev): New variable.
22758         (mips_set_architecture): Set it.
22759         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
22760         from mips_isa_rev.
22761         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
22762         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
22763         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
22764         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
22765         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
22766         conditions in terms of mips_isa_rev.
22767         (mips_isa_rev): Declare.
22768
22769 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22770
22771         * config/sh/sh-mem.cc: Use tabs instead of spaces.
22772         (prob_unlikely, prob_likely): Make variables const.
22773
22774 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
22775
22776         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
22777
22778 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22779
22780         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
22781
22782 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22783
22784         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
22785         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
22786         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
22787         functions.
22788         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
22789         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
22790         sh_pass_in_reg_p.
22791         Replace usage of ROUND_REG with sh_round_reg.
22792         Use CEIL instead of ROUND_ADVANCE.
22793
22794 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22795
22796         PR target/61026
22797         * config/sh/sh.c: Include stdlib headers before everything else.
22798
22799 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
22800
22801         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
22802         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
22803         (gimplify_adjust_omp_clauses): Simd region is never
22804         directly nested in combined parallel.  Instead, for linear
22805         with copyin/copyout, if in combined for simd loop, make decl
22806         firstprivate/lastprivate on OMP_FOR.
22807         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
22808         expand_omp_for_static_chunk): When setting endvar, also set
22809         fd->loop.v to the same value.
22810
22811 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
22812
22813         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
22814
22815 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
22816
22817         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
22818         expression.
22819
22820 2014-05-02  Marek Polacek  <polacek@redhat.com>
22821
22822         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
22823
22824 2014-05-02  Kito Cheng  <kito@0xlab.org>
22825
22826         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
22827         to a C expression marco.
22828         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
22829         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
22830         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
22831         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
22832         HONOR_REG_ALLOC_ORDER.
22833         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
22834
22835 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22836
22837         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
22838
22839 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22840
22841         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
22842
22843 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
22844
22845         * tree-if-conv.c (is_cond_scalar_reduction): New function.
22846         (convert_scalar_cond_reduction): Likewise.
22847         (predicate_scalar_phi): Add recognition and transformation
22848         of simple conditioanl reduction to be vectorizable.
22849
22850 2014-05-01  Marek Polacek  <polacek@redhat.com>
22851
22852         PR c/43245
22853         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
22854
22855 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
22856
22857         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
22858         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
22859         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
22860         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
22861         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
22862         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
22863         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
22864         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
22865
22866 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
22867
22868         * config/arc/arc.opt (mlra): Move comment above option name
22869         to avoid mis-parsing as language options.
22870
22871 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22872
22873         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
22874         * config/sol2.h: ... here.
22875         * config/sol2-10.h: Remove.
22876
22877         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
22878         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
22879         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
22880         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
22881         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
22882         * config/sol2.h: ... here.
22883         (SECTION_NAME_FORMAT): Don't redefine.
22884         (STARTFILE_ARCH32_SPEC): Rename to ...
22885         (STARTFILE_ARCH_SPEC): ... this.
22886         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
22887         * config/sparc/sol2.h: ... here.
22888         (SECTION_NAME_FORMAT): Don't undef.
22889         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
22890         (SUBTARGET_EXTRA_SPECS): Remove.
22891         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
22892
22893         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
22894         (MD_STARTFILE_PREFIX): Remove.
22895         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
22896         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
22897         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
22898         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
22899         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
22900         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
22901         * config/i386/sol2.h: ... here.
22902         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
22903         * config/i386/sol2-bi.h: Remove.
22904         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
22905         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
22906
22907         * config/i386/t-sol2-64: Rename to ...
22908         * config/i386/t-sol2: ... this.
22909         * config/sparc/t-sol2-64: Rename to ...
22910         * config/sparc/t-sol2: ... this.
22911
22912         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
22913         sol2_tm_file_head, sol2_tm_file_tail.
22914         Include ${cpu_type}/sol2.h before sol2.h.
22915         Remove sol2-10.h.
22916         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
22917         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
22918         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
22919         Reflect i386/t-sol2-64 renaming.
22920         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
22921         Reflect sparc/t-sol2-64 renaming.
22922
22923 2014-04-30  Richard Biener  <rguenther@suse.de>
22924
22925         * passes.c (execute_function_todo): Move TODO_verify_stmts
22926         and TODO_verify_ssa under the TODO_verify_il umbrella.
22927         * tree-ssa.h (verify_ssa): Adjust prototype.
22928         * tree-ssa.c (verify_ssa): Add parameter to tell whether
22929         we should verify SSA operands.
22930         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
22931         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
22932         whether we should verify whether not throwing stmts have EH info.
22933         * graphite-scop-detection.c (create_sese_edges): Adjust.
22934         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
22935         * tree-eh.c (lower_try_finally_switch): Do not add the
22936         default case label twice.
22937
22938 2014-04-30  Marek Polacek  <polacek@redhat.com>
22939
22940         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
22941         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
22942         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
22943         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
22944
22945 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
22946
22947         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
22948         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
22949         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
22950         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
22951         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
22952         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
22953         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
22954         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
22955
22956 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
22957
22958         * tree-cfg.c (dump_function_to_file): Dump the return type of
22959         functions, in a line to itself before the function body, mimicking
22960         the layout of a C function.
22961
22962 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
22963
22964         PR tree-optimization/60971
22965         * tree-tailcall.c (process_assignment): Reject conversions which
22966         reduce precision.
22967
22968 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
22969
22970         * calls.c (initialize_argument_information): Always treat
22971         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
22972         (expand_call): Likewise.
22973         (emit_library_call_calue_1): Likewise.
22974         * expr.c (PUSH_ARGS_REVERSED): Do not define.
22975         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
22976         code accordingly.
22977
22978 2014-04-29  Nick Clifton  <nickc@redhat.com>
22979
22980         * config/msp430/msp430.md (umulsidi): Fix typo.
22981         (mulhisi3): Enable even inside interrupt handlers.
22982         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
22983         bigger return address pushed in large mode.
22984
22985 2014-04-29  Nick Clifton  <nickc@redhat.com>
22986
22987         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
22988         (arc_init_reg_tables): Use a machine_mode enum to iterate over
22989         available modes.
22990         * config/m32r/m32r.c (init_reg_tables): Likewise.
22991         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
22992         enum to hold the modes.
22993
22994 2014-04-29  Richard Biener  <rguenther@suse.de>
22995
22996         * dominance.c (free_dominance_info): Add overload with
22997         function parameter.
22998         (dom_info_state): Likewise.
22999         (dom_info_available_p): Likewise.
23000         * basic-block.h (free_dominance_info, dom_info_state,
23001         dom_info_available_p): Declare overloads.
23002         * passes.c (execute_function_todo): Verify that verifiers
23003         don't change dominator info state.  Drop dominator info
23004         for IPA pass invocations.
23005         * cgraph.c (release_function_body): Restore asserts that
23006         dominator information is released.
23007
23008 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
23009
23010         * doc/invoke.texi: Fix typo.
23011         * tree-vrp.c: Fix typos.
23012         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
23013
23014 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
23015
23016         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
23017
23018 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
23019
23020         * config/aarch64/aarch64-builtins.c
23021         (aarch64_types_storestruct_lane_qualifiers): New.
23022         (TYPES_STORESTRUCT_LANE): Likewise.
23023         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
23024         (st3_lane): Likewise.
23025         (st4_lane): Likewise.
23026         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
23027         (vec_store_lanesci_lane<mode>): Likewise.
23028         (vec_store_lanesxi_lane<mode>): Likewise.
23029         (aarch64_st2_lane<VQ:mode>): Likewise.
23030         (aarch64_st3_lane<VQ:mode>): Likewise.
23031         (aarch64_st4_lane<VQ:mode>): Likewise.
23032         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
23033         * config/aarch64/arm_neon.h
23034         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
23035         use new macro arguments.
23036         (__ST3_LANE_FUNC): Likewise.
23037         (__ST4_LANE_FUNC): Likewise.
23038         * config/aarch64/iterators.md (V_TWO_ELEM): New.
23039         (V_THREE_ELEM): Likewise.
23040         (V_FOUR_ELEM): Likewise.
23041
23042 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
23043
23044         * doc/gimple.texi: Replace the description of the now-defunct
23045         union gimple_statement_d with a diagram showing the
23046         gimple_statement_base class hierarchy and its relationships to
23047         the GSS_ and GIMPLE_ enums.
23048
23049 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
23050
23051         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
23052         * config/aarch64/aarch64.c
23053         (aarch64_cannot_change_mode_class): Weaken conditions.
23054         (aarch64_modes_tieable_p): New.
23055         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
23056
23057 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
23058
23059         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
23060         (loadsync_<mode>): Change mode.
23061         (load_quadpti, store_quadpti): New.
23062         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
23063         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
23064
23065 2014-04-28  Martin Jambor  <mjambor@suse.cz>
23066
23067         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
23068         same alias type as the original statement.
23069         (subreplacement_assignment_data): New type.
23070         (handle_unscalarized_data_in_subtree): New type of parameter,
23071         generate new memory accesses with same alias type as the original
23072         statement.
23073         (load_assign_lhs_subreplacements): Likewise.
23074         (sra_modify_constructor_assign): Generate new memory accesses with
23075         same alias type as the original statement.
23076
23077 2014-04-28  Richard Biener  <rguenther@suse.de>
23078
23079         * tree-pass.h (TODO_verify_il): Define.
23080         (TODO_verify_all): Complete properly.
23081         * passes.c (execute_function_todo): Move existing loop-closed
23082         SSA verification under TODO_verify_il.
23083         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
23084         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
23085         Fix tree sharing issue.
23086
23087 2014-04-28  Richard Biener  <rguenther@suse.de>
23088
23089         PR middle-end/60092
23090         * builtins.def (DEF_C11_BUILTIN): Add.
23091         (BUILT_IN_ALIGNED_ALLOC): Likewise.
23092         * coretypes.h (enum function_class): Add function_c11_misc.
23093         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
23094         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
23095         (call_may_clobber_ref_p_1): Likewise.
23096         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
23097         (mark_all_reaching_defs_necessary_1): Likewise.
23098         (propagate_necessity): Likewise.
23099         (eliminate_unnecessary_stmts): Likewise.
23100         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
23101
23102 2014-04-28  Richard Biener  <rguenther@suse.de>
23103
23104         * tree-vrp.c (vrp_var_may_overflow): Remove.
23105         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
23106         with overflow immediately bump to one before that value and
23107         let iteration figure out overflow status.
23108
23109 2014-04-28  Richard Biener  <rguenther@suse.de>
23110
23111         * configure.ac: Do valgrind header checks unconditionally.
23112         Add --enable-valgrind-annotations.
23113         * system.h: Guard valgrind header inclusion with
23114         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
23115         * alloc-pool.c (pool_alloc, pool_free): Use
23116         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
23117         to guard possibly dead code.
23118         * config.in: Regenerated.
23119         * configure: Likewise.
23120
23121 2014-04-28  Jeff Law  <law@redhat.com>
23122
23123         PR tree-optimization/60902
23124         * tree-ssa-threadedge.c
23125         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
23126         over real defs when invalidating outputs from statements that do not
23127         produce useful outputs for threading.
23128
23129 2014-04-28  Richard Biener  <rguenther@suse.de>
23130
23131         PR tree-optimization/60979
23132         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
23133         SCOPs that end in a block with a successor with abnormal
23134         predecessors.
23135
23136 2014-04-28  Richard Biener  <rguenther@suse.de>
23137
23138         * tree-pass.h (execute_pass_list): Adjust prototype.
23139         * passes.c (pass_manager::execute_early_local_passes): Adjust.
23140         (do_per_function): Change callback signature, push all actual
23141         work to the callbals.
23142         (do_per_function_toporder): Likewise.
23143         (execute_function_dump): Adjust.
23144         (execute_function_todo): Likewise.
23145         (clear_last_verified): Likewise.
23146         (verify_curr_properties): Likewise.
23147         (update_properties_after_pass): Likewise.
23148         (execute_pass_list_1): Split out from ...
23149         (execute_pass_list): ... here.  Adjust.
23150         (execute_ipa_pass_list): Likewise.
23151         * cgraphunit.c (cgraph_add_new_function): Adjust.
23152         (analyze_function): Likewise.
23153         (expand_function): Likewise.
23154         * cgraph.c (release_function_body): Free dominance info
23155         here instead of asserting it was magically freed elsewhere.
23156
23157 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
23158
23159         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
23160         * configure: Regenerate.
23161         * config/sparc/sparc.opt (muser-mode): New option.
23162         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
23163         for LEON3.
23164         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
23165         * doc/invoke.texi (SPARC options): Document -muser-mode.
23166
23167 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
23168
23169         * cselib.c (find_slot_memmode): Delete.
23170         (cselib_hasher): Change compare_type to a struct.
23171         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
23172         constants.
23173         (preserve_constants_and_equivs): Adjust for new compare_type.
23174         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
23175         (wrap_constant): Delete.
23176         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
23177
23178 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
23179
23180         * doc/install.texi (Building with profile feedback): Remove
23181         outdated sentence.
23182
23183 2014-04-26  Tom de Vries  <tom@codesourcery.com>
23184
23185         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
23186         array accesses.
23187
23188 2014-04-25  Cary Coutant  <ccoutant@google.com>
23189
23190         PR debug/60929
23191         * dwarf2out.c (should_move_die_to_comdat): A type definition
23192         can contain a subprogram definition, but don't move it to a
23193         comdat unit.
23194         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
23195         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
23196         from original DIE.
23197         (clone_tree_hash): Rename to...
23198         (clone_tree_partial): ...this; change callers.  Copy
23199         DW_TAG_subprogram DIEs as declarations.
23200         (copy_decls_walk): Don't copy children of a declaration into a
23201         type unit.
23202
23203 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
23204
23205         PR target/60969
23206         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
23207         alternative 12.
23208
23209 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
23210
23211         * config/arm/predicates.md (call_insn_operand): Add long_call check.
23212         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
23213         reg for long_call.
23214         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
23215         restriction.
23216
23217 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23218
23219         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
23220
23221 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23222
23223         PR tree-optimization/60930
23224         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
23225         creating a multiply candidate by folding two constant
23226         multiplicands when the result overflows.
23227
23228 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
23229
23230         PR tree-optimization/60960
23231         * tree-vect-generic.c (expand_vector_operation): Only call
23232         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
23233
23234 2014-04-25  Tom de Vries  <tom@codesourcery.com>
23235
23236         * expr.c (clobber_reg_mode): New function.
23237         * expr.h (clobber_reg): New function.
23238
23239 2014-04-25  Tom de Vries  <tom@codesourcery.com>
23240
23241         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
23242         clobbers.
23243
23244 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
23245             Tom de Vries  <tom@codesourcery.com>
23246
23247         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
23248         handle.
23249         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
23250         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
23251         new argument to find_all_hard_reg_sets call.
23252
23253 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23254
23255         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
23256         Use HOST_WIDE_INT_C for mask literal.
23257         (aarch_rev16_shleft_mask_imm_p): Likewise.
23258
23259 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
23260
23261         PR target/60941
23262         * config/sparc/sparc.md (ashlsi3_extend): Delete.
23263
23264 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
23265
23266         PR preprocessor/56540
23267         * config/i386/i386-c.c (ix86_target_macros): Define
23268         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
23269
23270 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23271
23272         * configure.ac (tga_func): Remove.
23273         (LIB_TLS_SPEC): Remove.
23274         * configure: Regenerate.
23275         * config.in: Regenerate.
23276         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
23277
23278 2014-04-25  Richard Biener  <rguenther@suse.de>
23279
23280         PR ipa/60912
23281         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
23282         call stmt use/clobber sets during stmt walk instead of
23283         walking the possibly incomplete set of caller edges.
23284
23285 2014-04-25  Richard Biener  <rguenther@suse.de>
23286
23287         PR ipa/60911
23288         * passes.c (apply_ipa_transforms): Inline into only caller ...
23289         (execute_one_pass): ... here.  Properly bring in function
23290         bodies for nodes we want to apply IPA transforms to.
23291
23292 2014-04-24  Cong Hou  <congh@google.com>
23293
23294         PR tree-optimization/60896
23295         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
23296         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
23297         (vect_mark_pattern_stmts): Set the def type of all statements in
23298         PATTERN_DEF_SEQ as vect_internal_def.
23299
23300 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
23301
23302         * doc/extend.texi (PowerPC Built-in Functions): Document new
23303         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
23304         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
23305
23306         * config/rs6000/predicates.md (const_0_to_3_operand): New
23307         predicate to match 0..3 integer constants.
23308
23309         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
23310         to support adding miscellaneous builtin functions.
23311         (BU_DFP_MISC_2): Likewise.
23312         (BU_P7_MISC_1): Likewise.
23313         (BU_P7_MISC_2): Likewise.
23314         (BU_P8V_MISC_3): Likewise.
23315         (BU_MISC_1): Likewise.
23316         (BU_MISC_2): Likewise.
23317         (DIVWE): Add extended divide builtin functions.
23318         (DIVWEO): Likewise.
23319         (DIVWEU): Likewise.
23320         (DIVWEUO): Likewise.
23321         (DIVDE): Likewise.
23322         (DIVDEO): Likewise.
23323         (DIVDEU): Likewise.
23324         (DIVDEUO): Likewise.
23325         (DXEX): Add decimal floating-point builtin functions.
23326         (DXEXQ): Likewise.
23327         (DDEDPD): Likewise.
23328         (DDEDPDQ): Likewise.
23329         (DENBCD): Likewise.
23330         (DENBCDQ): Likewise.
23331         (DIEX): Likewise.
23332         (DIEXQ): Likewise.
23333         (DSCLI): Likewise.
23334         (DSCLIQ): Likewise.
23335         (DSCRI): Likewise.
23336         (DSCRIQ): Likewise.
23337         (CDTBCD): Add new BCD builtin functions.
23338         (CBCDTD): Likewise.
23339         (ADDG6S): Likewise.
23340         (BCDADD): Likewise.
23341         (BCDADD_LT): Likewise.
23342         (BCDADD_EQ): Likewise.
23343         (BCDADD_GT): Likewise.
23344         (BCDADD_OV): Likewise.
23345         (BCDSUB): Likewise.
23346         (BCDSUB_LT): Likewise.
23347         (BCDSUB_EQ): Likewise.
23348         (BCDSUB_GT): Likewise.
23349         (BCDSUB_OV): Likewise.
23350         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
23351         (UNPACK_TD): Likewise.
23352         (PACK_TF): Likewise.
23353         (UNPACK_TF): Likewise.
23354         (UNPACK_TF_0): Likewise.
23355         (UNPACK_TF_1): Likewise.
23356         (PACK_V1TI): Likewise.
23357         (UNPACK_V1TI): Likewise.
23358
23359         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
23360         support for decimal floating point builtin functions.
23361         (rs6000_expand_ternop_builtin): Add checks for the new builtin
23362         functions that take constant arguments.
23363         (rs6000_invalid_builtin): Add decimal floating point builtin support.
23364         (rs6000_init_builtins): Setup long double, _Decimal64, and
23365         _Decimal128 types for new builtin functions.
23366         (builtin_function_type): Set the unsigned flags appropriately for
23367         the new builtin functions.
23368         (rs6000_opt_masks): Add support for decimal floating point builtin
23369         functions.
23370
23371         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
23372         floating point builtin functions.
23373         (RS6000_BTM_COMMON): Likewise.
23374         (RS6000_BTI_long_double): Likewise.
23375         (RS6000_BTI_dfloat64): Likewise.
23376         (RS6000_BTI_dfloat128): Likewise.
23377         (long_double_type_internal_node): Likewise.
23378         (dfloat64_type_internal_node): Likewise.
23379         (dfloat128_type_internal_node): Likewise.
23380
23381         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
23382         2.07 bcd arithmetic instructions.
23383         (UNSPEC_BCDSUB): Likewise.
23384         (UNSPEC_BCD_OVERFLOW): Likewise.
23385         (UNSPEC_BCD_ADD_SUB): Likewise.
23386         (bcd_add_sub): Likewise.
23387         (BCD_TEST): Likewise.
23388         (bcd<bcd_add_sub>): Likewise.
23389         (bcd<bcd_add_sub>_test): Likewise.
23390         (bcd<bcd_add_sub>_test2): Likewise.
23391         (bcd<bcd_add_sub>_<code>): Likewise.
23392         (peephole2 for combined bcd ops): Likewise.
23393
23394         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
23395         decimal floating point builtin functions.
23396         (UNSPEC_DENBCD): Likewise.
23397         (UNSPEC_DXEX): Likewise.
23398         (UNSPEC_DIEX): Likewise.
23399         (UNSPEC_DSCLI): Likewise.
23400         (UNSPEC_DSCRI): Likewise.
23401         (D64_D128): Likewise.
23402         (dfp_suffix): Likewise.
23403         (dfp_ddedpd_<mode>): Likewise.
23404         (dfp_denbcd_<mode>): Likewise.
23405         (dfp_dxex_<mode>): Likewise.
23406         (dfp_diex_<mode>): Likewise.
23407         (dfp_dscli_<mode>): Likewise.
23408         (dfp_dscri_<mode>): Likewise.
23409
23410         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
23411         builtin functions.
23412         (UNSPEC_CDTBCD): Likewise.
23413         (UNSPEC_CBCDTD): Likewise.
23414         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
23415         (UNSPEC_DIVEO): Likewise.
23416         (UNSPEC_DIVEU): Likewise.
23417         (UNSPEC_DIVEUO): Likewise.
23418         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
23419         pack/unpack 128-bit types.
23420         (UNSPEC_PACK_128BIT): Likewise.
23421         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
23422         (udiv<mode>3): Use idiv_ldiv mode attribute.
23423         (div<mode>3): Likewise.
23424         (addg6s): Add new BCD builtin functions.
23425         (cdtbcd): Likewise.
23426         (cbcdtd): Likewise.
23427         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
23428         (div_extend): Likewise.
23429         (div<div_extend>_<mode>"): Likewise.
23430         (FP128_64): Add support for new builtin functions to pack/unpack
23431         128-bit types.
23432         (unpack<mode>): Likewise.
23433         (unpacktf_0): Likewise.
23434         (unpacktf_1): Likewise.
23435         (unpack<mode>_dm): Likewise.
23436         (unpack<mode>_nodm): Likewise.
23437         (pack<mode>): Likewise.
23438         (unpackv1ti): Likewise.
23439         (packv1ti): Likewise.
23440
23441 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
23442
23443         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
23444         is disabled.
23445
23446 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
23447
23448         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
23449         * gimplify.c (omp_is_private): Change last argument's type to int.
23450         Only diagnose lastprivate if the simd argument is 1, only diagnose
23451         linear if the simd argument is 2.
23452         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
23453         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
23454         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
23455         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
23456         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
23457         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
23458         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
23459         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
23460         * tree-nested.c (convert_nonlocal_omp_clauses,
23461         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
23462
23463 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
23464
23465         PR target/60822
23466         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
23467         operand 1.
23468
23469 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
23470
23471         * flag-types.h (enum ivar_visibility): Add.
23472
23473 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
23474
23475         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
23476         function * argument.
23477
23478 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
23479
23480         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
23481
23482 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
23483             Tom de Vries  <tom@codesourcery.com>
23484
23485         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
23486         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
23487         reg-note.
23488         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
23489         * emit-rtl.c (try_split): Same.
23490
23491 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
23492             Tom de Vries  <tom@codesourcery.com>
23493
23494         * common.opt (fuse-caller-save): New option.
23495
23496 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
23497
23498         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
23499         elements for big-endian.
23500
23501 2014-04-24  Richard Biener  <rguenther@suse.de>
23502
23503         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
23504         during TER and instead use the sepops interface for expanding
23505         non-GIMPLE_SINGLE_RHS.
23506
23507 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23508
23509         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
23510         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
23511
23512 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23513
23514         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
23515         assembler 64-bit option.
23516         * configure: Regenerate.
23517
23518 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23519
23520         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
23521         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
23522         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
23523         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
23524         (TARGET_CRYPTO): Take TARGET_SIMD into account.
23525
23526 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23527
23528         * config/aarch64/aarch64-builtins.c
23529         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
23530         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
23531         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
23532         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
23533         builtins.
23534         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
23535         (Vrevsuff): New mode attribute.
23536
23537 2014-04-24  Terry Guo  <terry.guo@arm.com>
23538
23539         * config/arm/arm.h (machine_function): Define variable
23540         after_arm_reorg here.
23541         * config/arm/arm.c (after_arm_reorg): Remove the definition.
23542         (arm_split_constant): Update the way to access variable
23543         after_arm_reorg.
23544         (arm_reorg): Ditto.
23545         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
23546
23547 2014-04-23  Tom de Vries  <tom@codesourcery.com>
23548
23549         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
23550
23551 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
23552
23553         * is-a.h: Update comments to reflect the following changes to the
23554         "pointerness" of the API, making the template parameter match the
23555         return type, allowing use of is-a.h with typedefs of pointers.
23556         (is_a_helper::cast): Return a T rather then a pointer to a T, so
23557         that the return type matches the parameter to the is_a_helper.
23558         (as_a): Likewise.
23559         (dyn_cast): Likewise.
23560
23561         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
23562         pointer from the is-a.h API.
23563
23564         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
23565         (is_a_helper <cgraph_node *>::test): ...this, matching change to
23566         is-a.h API.
23567         (is_a_helper <varpool_node>::test): Likewise, convert to...
23568         (is_a_helper <varpool_node *>::test): ...this.
23569
23570         (varpool_first_variable): Update for removal of implicit pointer
23571         from the is-a.h API.
23572         (varpool_next_variable): Likewise.
23573         (varpool_first_static_initializer): Likewise.
23574         (varpool_next_static_initializer): Likewise.
23575         (varpool_first_defined_variable): Likewise.
23576         (varpool_next_defined_variable): Likewise.
23577         (cgraph_first_defined_function): Likewise.
23578         (cgraph_next_defined_function): Likewise.
23579         (cgraph_first_function): Likewise.
23580         (cgraph_next_function): Likewise.
23581         (cgraph_first_function_with_gimple_body): Likewise.
23582         (cgraph_next_function_with_gimple_body): Likewise.
23583         (cgraph_alias_target): Likewise.
23584         (varpool_alias_target): Likewise.
23585         (cgraph_function_or_thunk_node): Likewise.
23586         (varpool_variable_node): Likewise.
23587         (symtab_real_symbol_p): Likewise.
23588         * cgraphunit.c (referred_to_p): Likewise.
23589         (analyze_functions): Likewise.
23590         (handle_alias_pairs): Likewise.
23591         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
23592         * gimple-ssa.h (gimple_vuse_op): Likewise.
23593         (gimple_vdef_op): Likewise.
23594         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
23595         * gimple.c (gimple_build_asm_1): Likewise.
23596         (gimple_build_try): Likewise.
23597         (gimple_build_resx): Likewise.
23598         (gimple_build_eh_dispatch): Likewise.
23599         (gimple_build_omp_for): Likewise.
23600         (gimple_omp_for_set_clauses): Likewise.
23601
23602         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
23603         (is_a_helper <gimple_statement_asm *>::test): ...this.
23604         (is_a_helper <gimple_statement_bind>::test): Convert to...
23605         (is_a_helper <gimple_statement_bind *>::test): ...this.
23606         (is_a_helper <gimple_statement_call>::test): Convert to...
23607         (is_a_helper <gimple_statement_call *>::test): ...this.
23608         (is_a_helper <gimple_statement_catch>::test): Convert to...
23609         (is_a_helper <gimple_statement_catch *>::test): ...this.
23610         (is_a_helper <gimple_statement_resx>::test): Convert to...
23611         (is_a_helper <gimple_statement_resx *>::test): ...this.
23612         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
23613         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
23614         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
23615         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
23616         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
23617         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
23618         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
23619         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
23620         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
23621         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
23622         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
23623         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
23624         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
23625         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
23626         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
23627         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
23628         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
23629         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
23630         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
23631         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
23632         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
23633         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
23634         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
23635         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
23636         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
23637         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
23638         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
23639         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
23640         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
23641         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
23642         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
23643         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
23644         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
23645         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
23646         (is_a_helper <gimple_statement_phi>::test): Convert to...
23647         (is_a_helper <gimple_statement_phi *>::test): ...this.
23648         (is_a_helper <gimple_statement_transaction>::test): Convert to...
23649         (is_a_helper <gimple_statement_transaction *>::test): ...this.
23650         (is_a_helper <gimple_statement_try>::test): Convert to...
23651         (is_a_helper <gimple_statement_try *>::test): ...this.
23652         (is_a_helper <gimple_statement_wce>::test): Convert to...
23653         (is_a_helper <gimple_statement_wce *>::test): ...this.
23654         (is_a_helper <const gimple_statement_asm>::test): Convert to...
23655         (is_a_helper <const gimple_statement_asm *>::test): ...this.
23656         (is_a_helper <const gimple_statement_bind>::test): Convert to...
23657         (is_a_helper <const gimple_statement_bind *>::test): ...this.
23658         (is_a_helper <const gimple_statement_call>::test): Convert to...
23659         (is_a_helper <const gimple_statement_call *>::test): ...this.
23660         (is_a_helper <const gimple_statement_catch>::test): Convert to...
23661         (is_a_helper <const gimple_statement_catch *>::test): ...this.
23662         (is_a_helper <const gimple_statement_resx>::test): Convert to...
23663         (is_a_helper <const gimple_statement_resx *>::test): ...this.
23664         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
23665         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
23666         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
23667         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
23668         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
23669         Convert to...
23670         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
23671         ...this.
23672         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
23673         Convert to...
23674         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
23675         ...this.
23676         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
23677         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
23678         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
23679         to...
23680         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
23681         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
23682         to...
23683         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
23684         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
23685         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
23686         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
23687         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
23688         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
23689         to...
23690         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
23691         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
23692         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
23693         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
23694         to...
23695         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
23696         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
23697         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
23698         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
23699         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
23700         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
23701         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
23702         (is_a_helper <const gimple_statement_phi>::test): Convert to...
23703         (is_a_helper <const gimple_statement_phi *>::test): ...this.
23704         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
23705         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
23706         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
23707         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
23708         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
23709         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
23710         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
23711         to...
23712         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
23713         ...this.
23714         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
23715         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
23716
23717         (gimple_use_ops): Update for removal of implicit pointer from the
23718         is-a.h API.
23719         (gimple_set_use_ops): Likewise.
23720         (gimple_vuse): Likewise.
23721         (gimple_vdef): Likewise.
23722         (gimple_vuse_ptr): Likewise.
23723         (gimple_vdef_ptr): Likewise.
23724         (gimple_set_vuse): Likewise.
23725         (gimple_set_vdef): Likewise.
23726         (gimple_omp_return_set_lhs): Likewise.
23727         (gimple_omp_return_lhs): Likewise.
23728         (gimple_omp_return_lhs_ptr): Likewise.
23729         (gimple_call_fntype): Likewise.
23730         (gimple_call_set_fntype): Likewise.
23731         (gimple_call_set_internal_fn): Likewise.
23732         (gimple_call_use_set): Likewise.
23733         (gimple_call_clobber_set): Likewise.
23734         (gimple_bind_vars): Likewise.
23735         (gimple_bind_set_vars): Likewise.
23736         (gimple_bind_body_ptr): Likewise.
23737         (gimple_bind_set_body): Likewise.
23738         (gimple_bind_add_stmt): Likewise.
23739         (gimple_bind_block): Likewise.
23740         (gimple_bind_set_block): Likewise.
23741         (gimple_asm_ninputs): Likewise.
23742         (gimple_asm_noutputs): Likewise.
23743         (gimple_asm_nclobbers): Likewise.
23744         (gimple_asm_nlabels): Likewise.
23745         (gimple_asm_input_op): Likewise.
23746         (gimple_asm_input_op_ptr): Likewise.
23747         (gimple_asm_output_op): Likewise.
23748         (gimple_asm_output_op_ptr): Likewise.
23749         (gimple_asm_set_output_op): Likewise.
23750         (gimple_asm_clobber_op): Likewise.
23751         (gimple_asm_set_clobber_op): Likewise.
23752         (gimple_asm_label_op): Likewise.
23753         (gimple_asm_set_label_op): Likewise.
23754         (gimple_asm_string): Likewise.
23755         (gimple_catch_types): Likewise.
23756         (gimple_catch_types_ptr): Likewise.
23757         (gimple_catch_handler_ptr): Likewise.
23758         (gimple_catch_set_types): Likewise.
23759         (gimple_catch_set_handler): Likewise.
23760         (gimple_eh_filter_types): Likewise.
23761         (gimple_eh_filter_types_ptr): Likewise.
23762         (gimple_eh_filter_failure_ptr): Likewise.
23763         (gimple_eh_filter_set_types): Likewise.
23764         (gimple_eh_filter_set_failure): Likewise.
23765         (gimple_eh_must_not_throw_fndecl): Likewise.
23766         (gimple_eh_must_not_throw_set_fndecl): Likewise.
23767         (gimple_eh_else_n_body_ptr): Likewise.
23768         (gimple_eh_else_e_body_ptr): Likewise.
23769         (gimple_eh_else_set_n_body): Likewise.
23770         (gimple_eh_else_set_e_body): Likewise.
23771         (gimple_try_eval_ptr): Likewise.
23772         (gimple_try_cleanup_ptr): Likewise.
23773         (gimple_try_set_eval): Likewise.
23774         (gimple_try_set_cleanup): Likewise.
23775         (gimple_wce_cleanup_ptr): Likewise.
23776         (gimple_wce_set_cleanup): Likewise.
23777         (gimple_phi_capacity): Likewise.
23778         (gimple_phi_num_args): Likewise.
23779         (gimple_phi_result): Likewise.
23780         (gimple_phi_result_ptr): Likewise.
23781         (gimple_phi_set_result): Likewise.
23782         (gimple_phi_arg): Likewise.
23783         (gimple_phi_set_arg): Likewise.
23784         (gimple_resx_region): Likewise.
23785         (gimple_resx_set_region): Likewise.
23786         (gimple_eh_dispatch_region): Likewise.
23787         (gimple_eh_dispatch_set_region): Likewise.
23788         (gimple_omp_critical_name): Likewise.
23789         (gimple_omp_critical_name_ptr): Likewise.
23790         (gimple_omp_critical_set_name): Likewise.
23791         (gimple_omp_for_clauses): Likewise.
23792         (gimple_omp_for_clauses_ptr): Likewise.
23793         (gimple_omp_for_set_clauses): Likewise.
23794         (gimple_omp_for_collapse): Likewise.
23795         (gimple_omp_for_index): Likewise.
23796         (gimple_omp_for_index_ptr): Likewise.
23797         (gimple_omp_for_set_index): Likewise.
23798         (gimple_omp_for_initial): Likewise.
23799         (gimple_omp_for_initial_ptr): Likewise.
23800         (gimple_omp_for_set_initial): Likewise.
23801         (gimple_omp_for_final): Likewise.
23802         (gimple_omp_for_final_ptr): Likewise.
23803         (gimple_omp_for_set_final): Likewise.
23804         (gimple_omp_for_incr): Likewise.
23805         (gimple_omp_for_incr_ptr): Likewise.
23806         (gimple_omp_for_set_incr): Likewise.
23807         (gimple_omp_for_pre_body_ptr): Likewise.
23808         (gimple_omp_for_set_pre_body): Likewise.
23809         (gimple_omp_parallel_clauses): Likewise.
23810         (gimple_omp_parallel_clauses_ptr): Likewise.
23811         (gimple_omp_parallel_set_clauses): Likewise.
23812         (gimple_omp_parallel_child_fn): Likewise.
23813         (gimple_omp_parallel_child_fn_ptr): Likewise.
23814         (gimple_omp_parallel_set_child_fn): Likewise.
23815         (gimple_omp_parallel_data_arg): Likewise.
23816         (gimple_omp_parallel_data_arg_ptr): Likewise.
23817         (gimple_omp_parallel_set_data_arg): Likewise.
23818         (gimple_omp_task_clauses): Likewise.
23819         (gimple_omp_task_clauses_ptr): Likewise.
23820         (gimple_omp_task_set_clauses): Likewise.
23821         (gimple_omp_task_child_fn): Likewise.
23822         (gimple_omp_task_child_fn_ptr): Likewise.
23823         (gimple_omp_task_set_child_fn): Likewise.
23824         (gimple_omp_task_data_arg): Likewise.
23825         (gimple_omp_task_data_arg_ptr): Likewise.
23826         (gimple_omp_task_set_data_arg): Likewise.
23827         (gimple_omp_taskreg_clauses): Likewise.
23828         (gimple_omp_taskreg_clauses_ptr): Likewise.
23829         (gimple_omp_taskreg_set_clauses): Likewise.
23830         (gimple_omp_taskreg_child_fn): Likewise.
23831         (gimple_omp_taskreg_child_fn_ptr): Likewise.
23832         (gimple_omp_taskreg_set_child_fn): Likewise.
23833         (gimple_omp_taskreg_data_arg): Likewise.
23834         (gimple_omp_taskreg_data_arg_ptr): Likewise.
23835         (gimple_omp_taskreg_set_data_arg): Likewise.
23836         (gimple_omp_task_copy_fn): Likewise.
23837         (gimple_omp_task_copy_fn_ptr): Likewise.
23838         (gimple_omp_task_set_copy_fn): Likewise.
23839         (gimple_omp_task_arg_size): Likewise.
23840         (gimple_omp_task_arg_size_ptr): Likewise.
23841         (gimple_omp_task_set_arg_size): Likewise.
23842         (gimple_omp_task_arg_align): Likewise.
23843         (gimple_omp_task_arg_align_ptr): Likewise.
23844         (gimple_omp_task_set_arg_align): Likewise.
23845         (gimple_omp_single_clauses): Likewise.
23846         (gimple_omp_single_clauses_ptr): Likewise.
23847         (gimple_omp_single_set_clauses): Likewise.
23848         (gimple_omp_target_clauses): Likewise.
23849         (gimple_omp_target_clauses_ptr): Likewise.
23850         (gimple_omp_target_set_clauses): Likewise.
23851         (gimple_omp_target_child_fn): Likewise.
23852         (gimple_omp_target_child_fn_ptr): Likewise.
23853         (gimple_omp_target_set_child_fn): Likewise.
23854         (gimple_omp_target_data_arg): Likewise.
23855         (gimple_omp_target_data_arg_ptr): Likewise.
23856         (gimple_omp_target_set_data_arg): Likewise.
23857         (gimple_omp_teams_clauses): Likewise.
23858         (gimple_omp_teams_clauses_ptr): Likewise.
23859         (gimple_omp_teams_set_clauses): Likewise.
23860         (gimple_omp_sections_clauses): Likewise.
23861         (gimple_omp_sections_clauses_ptr): Likewise.
23862         (gimple_omp_sections_set_clauses): Likewise.
23863         (gimple_omp_sections_control): Likewise.
23864         (gimple_omp_sections_control_ptr): Likewise.
23865         (gimple_omp_sections_set_control): Likewise.
23866         (gimple_omp_for_set_cond): Likewise.
23867         (gimple_omp_for_cond): Likewise.
23868         (gimple_omp_atomic_store_set_val): Likewise.
23869         (gimple_omp_atomic_store_val): Likewise.
23870         (gimple_omp_atomic_store_val_ptr): Likewise.
23871         (gimple_omp_atomic_load_set_lhs): Likewise.
23872         (gimple_omp_atomic_load_lhs): Likewise.
23873         (gimple_omp_atomic_load_lhs_ptr): Likewise.
23874         (gimple_omp_atomic_load_set_rhs): Likewise.
23875         (gimple_omp_atomic_load_rhs): Likewise.
23876         (gimple_omp_atomic_load_rhs_ptr): Likewise.
23877         (gimple_omp_continue_control_def): Likewise.
23878         (gimple_omp_continue_control_def_ptr): Likewise.
23879         (gimple_omp_continue_set_control_def): Likewise.
23880         (gimple_omp_continue_control_use): Likewise.
23881         (gimple_omp_continue_control_use_ptr): Likewise.
23882         (gimple_omp_continue_set_control_use): Likewise.
23883         (gimple_transaction_body_ptr): Likewise.
23884         (gimple_transaction_label): Likewise.
23885         (gimple_transaction_label_ptr): Likewise.
23886         (gimple_transaction_set_body): Likewise.
23887         (gimple_transaction_set_label): Likewise.
23888
23889         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
23890         * ipa-inline-analysis.c (inline_write_summary): Likewise.
23891         * ipa-ref.c (ipa_record_reference): Likewise.
23892         * ipa-reference.c (analyze_function): Likewise.
23893         (ipa_reference_write_optimization_summary): Likewise.
23894         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
23895         (address_taken_from_non_vtable_p): Likewise.
23896         (comdat_can_be_unshared_p_1): Likewise.
23897         * lto-cgraph.c (lto_output_ref): Likewise.
23898         (add_references): Likewise.
23899         (compute_ltrans_boundary): Likewise.
23900         (output_symtab): Likewise.
23901         (input_ref): Likewise.
23902         (input_cgraph_1): Likewise.
23903         (output_cgraph_opt_summary): Likewise.
23904         * lto-streamer-out.c (lto_output): Likewise.
23905         (output_symbol_p): Likewise.
23906         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
23907         (lsei_start_function_in_partition): Likewise.
23908         (lsei_next_variable_in_partition): Likewise.
23909         (lsei_start_variable_in_partition): Likewise.
23910         * symtab.c (insert_to_assembler_name_hash): Likewise.
23911         (unlink_from_assembler_name_hash): Likewise.
23912         (symtab_unregister_node): Likewise.
23913         (symtab_remove_node): Likewise.
23914         (dump_symtab_node): Likewise.
23915         (verify_symtab_base): Likewise.
23916         (verify_symtab_node): Likewise.
23917         (symtab_make_decl_local): Likewise.
23918         (symtab_alias_ultimate_target): Likewise.
23919         (symtab_resolve_alias): Likewise.
23920         (symtab_get_symbol_partitioning_class): Likewise.
23921         * tree-phinodes.c (allocate_phi_node): Likewise.
23922         (reserve_phi_args_for_new_edge): Likewise.
23923         (remove_phi_args): Likewise.
23924         * varpool.c (varpool_node_for_asm): Likewise.
23925         (varpool_remove_unreferenced_decls): Likewise.
23926
23927 2014-04-23  Jeff Law  <law@redhat.com>
23928
23929         PR tree-optimization/60902
23930         * tree-ssa-threadedge.c
23931         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
23932         invalidate outputs from statements that do not produce useful
23933         outputs for threading.
23934
23935 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
23936
23937         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
23938         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
23939         machine descriptions for Stack Smashing Protector.
23940
23941 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
23942
23943         * aarch64.md (<optab>_rol<mode>3): New pattern.
23944         (<optab>_rolsi3_uxtw): Likewise.
23945         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
23946
23947 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
23948
23949         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
23950         (arm_cortex_a12_tune): Likewise.
23951
23952 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23953
23954         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
23955
23956 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23957
23958         * config/arm/arm.md (arm_rev16si2): New pattern.
23959         (arm_rev16si2_alt): Likewise.
23960         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
23961
23962 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23963
23964         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
23965         (rev16<mode>2_alt): Likewise.
23966         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
23967         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
23968         (aarch_rev16_shleft_mask_imm_p): Likewise.
23969         (aarch_rev16_p_1): Likewise.
23970         (aarch_rev16_p): Likewise.
23971         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
23972         (aarch_rev16_shright_mask_imm_p): Likewise.
23973         (aarch_rev16_shleft_mask_imm_p): Likewise.
23974
23975 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23976
23977         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
23978         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
23979         rev cost.
23980         (cortex_a53_extra_costs): Likewise.
23981         (cortex_a57_extra_costs): Likewise.
23982         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
23983         (cortexa7_extra_costs): Likewise.
23984         (cortexa8_extra_costs): Likewise.
23985         (cortexa12_extra_costs): Likewise.
23986         (cortexa15_extra_costs): Likewise.
23987         (v7m_extra_costs): Likewise.
23988         (arm_new_rtx_costs): Handle BSWAP.
23989
23990 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23991
23992         * config/arm/arm.c (cortexa8_extra_costs): New table.
23993         (arm_cortex_a8_tune): New tuning struct.
23994         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
23995
23996 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23997
23998         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
23999
24000 2014-04-23  Richard Biener  <rguenther@suse.de>
24001
24002         * Makefile.in (OBJS): Remove loop-unswitch.o.
24003         * tree-pass.h (make_pass_rtl_unswitch): Remove.
24004         * passes.def (pass_rtl_unswitch): Likewise.
24005         * loop-init.c (gate_rtl_unswitch): Likewise.
24006         (rtl_unswitch): Likewise.
24007         (pass_data_rtl_unswitch): Likewise.
24008         (pass_rtl_unswitch): Likewise.
24009         (make_pass_rtl_unswitch): Likewise.
24010         * rtl.h (reversed_condition): Likewise.
24011         (compare_and_jump_seq): Likewise.
24012         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
24013         and make static.
24014         * loop-unroll.c (compare_and_jump_seq): Likewise.
24015
24016 2014-04-23  Richard Biener  <rguenther@suse.de>
24017
24018         PR tree-optimization/60903
24019         * tree-ssa-loop-im.c (analyze_memory_references): Remove
24020         commented code block.
24021         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
24022         loop flags to newly created BBs and edges.
24023
24024 2014-04-23  Nick Clifton  <nickc@redhat.com>
24025
24026         * config/msp430/msp430.c (msp430_handle_option): Move function
24027         to msp430-common.c
24028         (msp430_option_override): Simplify mcu and mcpu option handling.
24029         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
24030         support for -mhwmult command line option.
24031         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
24032         -mhwmult command line option.
24033         (msp430_hwmult_enabled): Delete.
24034         (msp43o_output_labelref): Add support for -mhwmult command line option.
24035         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
24036         (umulsidi3): Likewise.
24037         * config/msp430/msp430.opt (mmcu): Add Report attribute.
24038         (mcpu, mlarge, msmall): Likewise.
24039         (mhwmult): New option.
24040         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
24041         prototype.
24042         (msp430_is_f5_mcu): Remove prototype.
24043         (msp430_use_f5_series_hwmult): Add prototype.
24044         * config/msp430/msp430-opts.h: New file.
24045         * common/config/msp430: New directory.
24046         * common/config/msp430/msp430-common.c: New file.
24047         * config.gcc (msp430): Remove target_has_targetm_common.
24048         * doc/invoke.texi: Document -mhwmult command line option.
24049
24050 2014-04-23  Nick Clifton  <nickc@redhat.com>
24051
24052         * config/i386/cygwin.h (ENDFILE_SPEC): Include
24053         default-manifest.o if it can be found in the search path.
24054         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
24055
24056 2014-04-23  Terry Guo  <terry.guo@arm.com>
24057
24058         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
24059
24060 2014-04-23  Richard Biener  <rguenther@suse.de>
24061
24062         PR middle-end/60895
24063         * tree-inline.c (declare_return_variable): Use mark_addressable.
24064
24065 2014-04-23  Richard Biener  <rguenther@suse.de>
24066
24067         PR middle-end/60891
24068         * loop-init.c (loop_optimizer_init): Make sure to apply
24069         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
24070
24071 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
24072
24073         PR sanitizer/60275
24074         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
24075         New options.
24076         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
24077         if flag_sanitize_undefined_trap_on_error.
24078         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
24079         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
24080         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
24081         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
24082         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
24083         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
24084         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
24085         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
24086         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
24087         * ubsan.c (ubsan_instrument_unreachable): Return
24088         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
24089         (ubsan_expand_null_ifn): Emit __builtin_trap ()
24090         if flag_sanitize_undefined_trap_on_error and
24091         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
24092         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
24093         instrument_bool_enum_load): Emit __builtin_trap () if
24094         flag_sanitize_undefined_trap_on_error and
24095         __builtin_handle_*_abort () if !flag_sanitize_recover.
24096         * doc/invoke.texi (-fsanitize-recover,
24097         -fsanitize-undefined-trap-on-error): Document.
24098
24099 2014-04-22  Christian Bruel  <christian.bruel@st.com>
24100
24101         * config/sh/sh.md (mov<mode>): Replace movQIHI.
24102          Force immediates to SImode.
24103
24104 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
24105
24106         * config/nios2/nios2.md (UNSPEC_ROUND): New.
24107         (lroundsfsi2): New.
24108         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
24109         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
24110         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
24111         (nios2_fpu_insn): Add entry for round.
24112         (N2FPU_NO_ERRNO_P): Define.
24113         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
24114         flag_errno_math.
24115         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
24116
24117 2014-04-22  Richard Henderson  <rth@redhat.com>
24118
24119         * config/aarch64/aarch64 (addti3, subti3): New expanders.
24120         (add<GPI>3_compare0): Remove leading * from name.
24121         (add<GPI>3_carryin): Likewise.
24122         (sub<GPI>3_compare0): Likewise.
24123         (sub<GPI>3_carryin): Likewise.
24124         (<su_optab>mulditi3): New expander.
24125         (multi3): New expander.
24126         (madd<GPI>): Remove leading * from name.
24127
24128 2014-04-22  Martin Jambor  <mjambor@suse.cz>
24129
24130         * cgraphclones.c (cgraph_function_versioning): Copy
24131         ipa_transforms_to_apply instead of asserting it is empty.
24132
24133 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
24134
24135         PR target/60868
24136         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
24137         on count_exp to get mode.
24138
24139 2014-04-22  Andrew Pinski  <apinski@cavium.com>
24140
24141         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
24142         Handle TLS for ILP32.
24143         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
24144         (tlsie_small_<mode>): this and handle PTR.
24145         (tlsie_small_sidi): New pattern.
24146         (tlsle_small): Change to an expand to handle ILP32.
24147         (tlsle_small_<mode>): New pattern.
24148         (tlsdesc_small): Rename to ...
24149         (tlsdesc_small_<mode>): this and handle PTR.
24150
24151 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24152
24153         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
24154
24155 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24156
24157         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
24158         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
24159         (aarch64_types_signed_poly_qualifiers): Likewise.
24160         (aarch64_types_unsigned_signed_qualifiers): Likewise.
24161         (aarch64_types_poly_signed_qualifiers): Likewise.
24162         (TYPES_REINTERP_SS): Type macro added.
24163         (TYPES_REINTERP_SU): Likewise.
24164         (TYPES_REINTERP_SP): Likewise.
24165         (TYPES_REINTERP_US): Likewise.
24166         (TYPES_REINTERP_PS): Likewise.
24167         (aarch64_fold_builtin): New expression folding added.
24168         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
24169         Declarations removed.
24170         (REINTERP_SS): Declarations added.
24171         (REINTERP_US): Likewise.
24172         (REINTERP_PS): Likewise.
24173         (REINTERP_SU): Likewise.
24174         (REINTERP_SP): Likewise.
24175         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
24176         (vreinterpretq_p8_f64): Likewise.
24177         (vreinterpret_p16_f64): Likewise.
24178         (vreinterpretq_p16_f64): Likewise.
24179         (vreinterpret_f32_f64): Likewise.
24180         (vreinterpretq_f32_f64): Likewise.
24181         (vreinterpret_f64_f32): Likewise.
24182         (vreinterpret_f64_p8): Likewise.
24183         (vreinterpret_f64_p16): Likewise.
24184         (vreinterpret_f64_s8): Likewise.
24185         (vreinterpret_f64_s16): Likewise.
24186         (vreinterpret_f64_s32): Likewise.
24187         (vreinterpret_f64_s64): Likewise.
24188         (vreinterpret_f64_u8): Likewise.
24189         (vreinterpret_f64_u16): Likewise.
24190         (vreinterpret_f64_u32): Likewise.
24191         (vreinterpret_f64_u64): Likewise.
24192         (vreinterpretq_f64_f32): Likewise.
24193         (vreinterpretq_f64_p8): Likewise.
24194         (vreinterpretq_f64_p16): Likewise.
24195         (vreinterpretq_f64_s8): Likewise.
24196         (vreinterpretq_f64_s16): Likewise.
24197         (vreinterpretq_f64_s32): Likewise.
24198         (vreinterpretq_f64_s64): Likewise.
24199         (vreinterpretq_f64_u8): Likewise.
24200         (vreinterpretq_f64_u16): Likewise.
24201         (vreinterpretq_f64_u32): Likewise.
24202         (vreinterpretq_f64_u64): Likewise.
24203         (vreinterpret_s64_f64): Likewise.
24204         (vreinterpretq_s64_f64): Likewise.
24205         (vreinterpret_u64_f64): Likewise.
24206         (vreinterpretq_u64_f64): Likewise.
24207         (vreinterpret_s8_f64): Likewise.
24208         (vreinterpretq_s8_f64): Likewise.
24209         (vreinterpret_s16_f64): Likewise.
24210         (vreinterpretq_s16_f64): Likewise.
24211         (vreinterpret_s32_f64): Likewise.
24212         (vreinterpretq_s32_f64): Likewise.
24213         (vreinterpret_u8_f64): Likewise.
24214         (vreinterpretq_u8_f64): Likewise.
24215         (vreinterpret_u16_f64): Likewise.
24216         (vreinterpretq_u16_f64): Likewise.
24217         (vreinterpret_u32_f64): Likewise.
24218         (vreinterpretq_u32_f64): Likewise.
24219
24220 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24221
24222         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
24223         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
24224         (vreinterpret_p8_s8): Likewise.
24225         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
24226         (vreinterpret_p8_s16): Likewise.
24227         (vreinterpret_p8_s32): Likewise.
24228         (vreinterpret_p8_s64): Likewise.
24229         (vreinterpret_p8_f32): Likewise.
24230         (vreinterpret_p8_u8): Likewise.
24231         (vreinterpret_p8_u16): Likewise.
24232         (vreinterpret_p8_u32): Likewise.
24233         (vreinterpret_p8_u64): Likewise.
24234         (vreinterpret_p8_p16): Likewise.
24235         (vreinterpretq_p8_s8): Likewise.
24236         (vreinterpretq_p8_s16): Likewise.
24237         (vreinterpretq_p8_s32): Likewise.
24238         (vreinterpretq_p8_s64): Likewise.
24239         (vreinterpretq_p8_f32): Likewise.
24240         (vreinterpretq_p8_u8): Likewise.
24241         (vreinterpretq_p8_u16): Likewise.
24242         (vreinterpretq_p8_u32): Likewise.
24243         (vreinterpretq_p8_u64): Likewise.
24244         (vreinterpretq_p8_p16): Likewise.
24245         (vreinterpret_p16_s8): Likewise.
24246         (vreinterpret_p16_s16): Likewise.
24247         (vreinterpret_p16_s32): Likewise.
24248         (vreinterpret_p16_s64): Likewise.
24249         (vreinterpret_p16_f32): Likewise.
24250         (vreinterpret_p16_u8): Likewise.
24251         (vreinterpret_p16_u16): Likewise.
24252         (vreinterpret_p16_u32): Likewise.
24253         (vreinterpret_p16_u64): Likewise.
24254         (vreinterpret_p16_p8): Likewise.
24255         (vreinterpretq_p16_s8): Likewise.
24256         (vreinterpretq_p16_s16): Likewise.
24257         (vreinterpretq_p16_s32): Likewise.
24258         (vreinterpretq_p16_s64): Likewise.
24259         (vreinterpretq_p16_f32): Likewise.
24260         (vreinterpretq_p16_u8): Likewise.
24261         (vreinterpretq_p16_u16): Likewise.
24262         (vreinterpretq_p16_u32): Likewise.
24263         (vreinterpretq_p16_u64): Likewise.
24264         (vreinterpretq_p16_p8): Likewise.
24265         (vreinterpret_f32_s8): Likewise.
24266         (vreinterpret_f32_s16): Likewise.
24267         (vreinterpret_f32_s32): Likewise.
24268         (vreinterpret_f32_s64): Likewise.
24269         (vreinterpret_f32_u8): Likewise.
24270         (vreinterpret_f32_u16): Likewise.
24271         (vreinterpret_f32_u32): Likewise.
24272         (vreinterpret_f32_u64): Likewise.
24273         (vreinterpret_f32_p8): Likewise.
24274         (vreinterpret_f32_p16): Likewise.
24275         (vreinterpretq_f32_s8): Likewise.
24276         (vreinterpretq_f32_s16): Likewise.
24277         (vreinterpretq_f32_s32): Likewise.
24278         (vreinterpretq_f32_s64): Likewise.
24279         (vreinterpretq_f32_u8): Likewise.
24280         (vreinterpretq_f32_u16): Likewise.
24281         (vreinterpretq_f32_u32): Likewise.
24282         (vreinterpretq_f32_u64): Likewise.
24283         (vreinterpretq_f32_p8): Likewise.
24284         (vreinterpretq_f32_p16): Likewise.
24285         (vreinterpret_s64_s8): Likewise.
24286         (vreinterpret_s64_s16): Likewise.
24287         (vreinterpret_s64_s32): Likewise.
24288         (vreinterpret_s64_f32): Likewise.
24289         (vreinterpret_s64_u8): Likewise.
24290         (vreinterpret_s64_u16): Likewise.
24291         (vreinterpret_s64_u32): Likewise.
24292         (vreinterpret_s64_u64): Likewise.
24293         (vreinterpret_s64_p8): Likewise.
24294         (vreinterpret_s64_p16): Likewise.
24295         (vreinterpretq_s64_s8): Likewise.
24296         (vreinterpretq_s64_s16): Likewise.
24297         (vreinterpretq_s64_s32): Likewise.
24298         (vreinterpretq_s64_f32): Likewise.
24299         (vreinterpretq_s64_u8): Likewise.
24300         (vreinterpretq_s64_u16): Likewise.
24301         (vreinterpretq_s64_u32): Likewise.
24302         (vreinterpretq_s64_u64): Likewise.
24303         (vreinterpretq_s64_p8): Likewise.
24304         (vreinterpretq_s64_p16): Likewise.
24305         (vreinterpret_u64_s8): Likewise.
24306         (vreinterpret_u64_s16): Likewise.
24307         (vreinterpret_u64_s32): Likewise.
24308         (vreinterpret_u64_s64): Likewise.
24309         (vreinterpret_u64_f32): Likewise.
24310         (vreinterpret_u64_u8): Likewise.
24311         (vreinterpret_u64_u16): Likewise.
24312         (vreinterpret_u64_u32): Likewise.
24313         (vreinterpret_u64_p8): Likewise.
24314         (vreinterpret_u64_p16): Likewise.
24315         (vreinterpretq_u64_s8): Likewise.
24316         (vreinterpretq_u64_s16): Likewise.
24317         (vreinterpretq_u64_s32): Likewise.
24318         (vreinterpretq_u64_s64): Likewise.
24319         (vreinterpretq_u64_f32): Likewise.
24320         (vreinterpretq_u64_u8): Likewise.
24321         (vreinterpretq_u64_u16): Likewise.
24322         (vreinterpretq_u64_u32): Likewise.
24323         (vreinterpretq_u64_p8): Likewise.
24324         (vreinterpretq_u64_p16): Likewise.
24325         (vreinterpret_s8_s16): Likewise.
24326         (vreinterpret_s8_s32): Likewise.
24327         (vreinterpret_s8_s64): Likewise.
24328         (vreinterpret_s8_f32): Likewise.
24329         (vreinterpret_s8_u8): Likewise.
24330         (vreinterpret_s8_u16): Likewise.
24331         (vreinterpret_s8_u32): Likewise.
24332         (vreinterpret_s8_u64): Likewise.
24333         (vreinterpret_s8_p8): Likewise.
24334         (vreinterpret_s8_p16): Likewise.
24335         (vreinterpretq_s8_s16): Likewise.
24336         (vreinterpretq_s8_s32): Likewise.
24337         (vreinterpretq_s8_s64): Likewise.
24338         (vreinterpretq_s8_f32): Likewise.
24339         (vreinterpretq_s8_u8): Likewise.
24340         (vreinterpretq_s8_u16): Likewise.
24341         (vreinterpretq_s8_u32): Likewise.
24342         (vreinterpretq_s8_u64): Likewise.
24343         (vreinterpretq_s8_p8): Likewise.
24344         (vreinterpretq_s8_p16): Likewise.
24345         (vreinterpret_s16_s8): Likewise.
24346         (vreinterpret_s16_s32): Likewise.
24347         (vreinterpret_s16_s64): Likewise.
24348         (vreinterpret_s16_f32): Likewise.
24349         (vreinterpret_s16_u8): Likewise.
24350         (vreinterpret_s16_u16): Likewise.
24351         (vreinterpret_s16_u32): Likewise.
24352         (vreinterpret_s16_u64): Likewise.
24353         (vreinterpret_s16_p8): Likewise.
24354         (vreinterpret_s16_p16): Likewise.
24355         (vreinterpretq_s16_s8): Likewise.
24356         (vreinterpretq_s16_s32): Likewise.
24357         (vreinterpretq_s16_s64): Likewise.
24358         (vreinterpretq_s16_f32): Likewise.
24359         (vreinterpretq_s16_u8): Likewise.
24360         (vreinterpretq_s16_u16): Likewise.
24361         (vreinterpretq_s16_u32): Likewise.
24362         (vreinterpretq_s16_u64): Likewise.
24363         (vreinterpretq_s16_p8): Likewise.
24364         (vreinterpretq_s16_p16): Likewise.
24365         (vreinterpret_s32_s8): Likewise.
24366         (vreinterpret_s32_s16): Likewise.
24367         (vreinterpret_s32_s64): Likewise.
24368         (vreinterpret_s32_f32): Likewise.
24369         (vreinterpret_s32_u8): Likewise.
24370         (vreinterpret_s32_u16): Likewise.
24371         (vreinterpret_s32_u32): Likewise.
24372         (vreinterpret_s32_u64): Likewise.
24373         (vreinterpret_s32_p8): Likewise.
24374         (vreinterpret_s32_p16): Likewise.
24375         (vreinterpretq_s32_s8): Likewise.
24376         (vreinterpretq_s32_s16): Likewise.
24377         (vreinterpretq_s32_s64): Likewise.
24378         (vreinterpretq_s32_f32): Likewise.
24379         (vreinterpretq_s32_u8): Likewise.
24380         (vreinterpretq_s32_u16): Likewise.
24381         (vreinterpretq_s32_u32): Likewise.
24382         (vreinterpretq_s32_u64): Likewise.
24383         (vreinterpretq_s32_p8): Likewise.
24384         (vreinterpretq_s32_p16): Likewise.
24385         (vreinterpret_u8_s8): Likewise.
24386         (vreinterpret_u8_s16): Likewise.
24387         (vreinterpret_u8_s32): Likewise.
24388         (vreinterpret_u8_s64): Likewise.
24389         (vreinterpret_u8_f32): Likewise.
24390         (vreinterpret_u8_u16): Likewise.
24391         (vreinterpret_u8_u32): Likewise.
24392         (vreinterpret_u8_u64): Likewise.
24393         (vreinterpret_u8_p8): Likewise.
24394         (vreinterpret_u8_p16): Likewise.
24395         (vreinterpretq_u8_s8): Likewise.
24396         (vreinterpretq_u8_s16): Likewise.
24397         (vreinterpretq_u8_s32): Likewise.
24398         (vreinterpretq_u8_s64): Likewise.
24399         (vreinterpretq_u8_f32): Likewise.
24400         (vreinterpretq_u8_u16): Likewise.
24401         (vreinterpretq_u8_u32): Likewise.
24402         (vreinterpretq_u8_u64): Likewise.
24403         (vreinterpretq_u8_p8): Likewise.
24404         (vreinterpretq_u8_p16): Likewise.
24405         (vreinterpret_u16_s8): Likewise.
24406         (vreinterpret_u16_s16): Likewise.
24407         (vreinterpret_u16_s32): Likewise.
24408         (vreinterpret_u16_s64): Likewise.
24409         (vreinterpret_u16_f32): Likewise.
24410         (vreinterpret_u16_u8): Likewise.
24411         (vreinterpret_u16_u32): Likewise.
24412         (vreinterpret_u16_u64): Likewise.
24413         (vreinterpret_u16_p8): Likewise.
24414         (vreinterpret_u16_p16): Likewise.
24415         (vreinterpretq_u16_s8): Likewise.
24416         (vreinterpretq_u16_s16): Likewise.
24417         (vreinterpretq_u16_s32): Likewise.
24418         (vreinterpretq_u16_s64): Likewise.
24419         (vreinterpretq_u16_f32): Likewise.
24420         (vreinterpretq_u16_u8): Likewise.
24421         (vreinterpretq_u16_u32): Likewise.
24422         (vreinterpretq_u16_u64): Likewise.
24423         (vreinterpretq_u16_p8): Likewise.
24424         (vreinterpretq_u16_p16): Likewise.
24425         (vreinterpret_u32_s8): Likewise.
24426         (vreinterpret_u32_s16): Likewise.
24427         (vreinterpret_u32_s32): Likewise.
24428         (vreinterpret_u32_s64): Likewise.
24429         (vreinterpret_u32_f32): Likewise.
24430         (vreinterpret_u32_u8): Likewise.
24431         (vreinterpret_u32_u16): Likewise.
24432         (vreinterpret_u32_u64): Likewise.
24433         (vreinterpret_u32_p8): Likewise.
24434         (vreinterpret_u32_p16): Likewise.
24435         (vreinterpretq_u32_s8): Likewise.
24436         (vreinterpretq_u32_s16): Likewise.
24437         (vreinterpretq_u32_s32): Likewise.
24438         (vreinterpretq_u32_s64): Likewise.
24439         (vreinterpretq_u32_f32): Likewise.
24440         (vreinterpretq_u32_u8): Likewise.
24441         (vreinterpretq_u32_u16): Likewise.
24442         (vreinterpretq_u32_u64): Likewise.
24443         (vreinterpretq_u32_p8): Likewise.
24444         (vreinterpretq_u32_p16): Likewise.
24445
24446 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24447
24448         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
24449         Pattern extended.
24450         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
24451         (sqabs): Likewise.
24452         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
24453         (vqnegd_s64): Likewise.
24454         (vqabs_s64): Likewise.
24455         (vqabsd_s64): Likewise.
24456
24457 2014-04-22  Richard Henderson  <rth@redhat.com>
24458
24459         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
24460         computation to the top of the loop.
24461
24462 2014-04-22  Renlin  <renlin.li@arm.com>
24463             Jiong Wang  <jiong.wang@arm.com>
24464
24465         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
24466         * config/aarch64/aarch64.c (aarch64_layout_frame)
24467         (aarch64_initial_elimination_offset): Likewise.
24468
24469 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
24470
24471         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
24472         Fix indentation.
24473
24474 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
24475
24476         * machmode.h (bitwise_mode_for_mode): Declare.
24477         * stor-layout.h (bitwise_type_for_mode): Likewise.
24478         * stor-layout.c (bitwise_mode_for_mode): New function.
24479         (bitwise_type_for_mode): Likewise.
24480         * builtins.c (fold_builtin_memory_op): Use it instead of
24481         int_mode_for_mode and build_nonstandard_integer_type.
24482
24483 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24484
24485         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
24486         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
24487         (*-*-solaris2*): Simplify.
24488         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
24489         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
24490         *-*-solaris2.9* handling.
24491
24492         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
24493         as bug.
24494         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
24495         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
24496         handling, simplify.
24497         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
24498         * configure: Regenerate.
24499
24500         * config/i386/sol2-9.h: Remove.
24501
24502         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
24503         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
24504         Remove Solaris 9 references.
24505
24506 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
24507
24508         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
24509         (floatuns<GPI:mode><GPF:mode>2): Remove.
24510         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
24511         and floatuns conversions.
24512         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
24513         and floatuns conversions.
24514         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
24515         (w1,w2): New mode attributes for inequal width conversions.
24516
24517 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
24518
24519         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
24520         the output asm format.
24521
24522 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
24523
24524         * config/aarch64/aarch64-simd.md
24525         (aarch64_cm<optab>di): Always split.
24526         (*aarch64_cm<optab>di): New.
24527         (aarch64_cmtstdi): Always split.
24528         (*aarch64_cmtstdi): New.
24529
24530 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
24531
24532         PR tree-optimization/60823
24533         * omp-low.c (ipa_simd_modify_function_body): Go through
24534         all SSA_NAMEs and for those refering to vector arguments
24535         which are going to be replaced adjust SSA_NAME_VAR and,
24536         if it is a default definition, change it into a non-default
24537         definition assigned at the beginning of function from new_decl.
24538         (ipa_simd_modify_stmt_ops): Rewritten.
24539         * tree-dfa.c (set_ssa_default_def): When removing default def,
24540         check for NULL loc instead of NULL *loc.
24541
24542 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24543
24544         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
24545         restrictions on core registers for DImode values in Thumb2.
24546
24547 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
24548
24549         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
24550         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
24551
24552 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
24553
24554         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
24555         (*iordi_notzesidi_di): Likewise.
24556         (*iordi_notsesidi_di): Likewise.
24557
24558 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
24559
24560         * config/arm/arm-protos.h (tune_params): New struct members.
24561         * config/arm/arm.c: Initialise tune_params per processor.
24562         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
24563         for speed, based on new tune_params.
24564
24565 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24566
24567         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
24568         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
24569         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
24570         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
24571         * config/aarch64/arm_neon.h (vrnd_f64): Added.
24572         (vrnda_f64): Likewise.
24573         (vrndi_f64): Likewise.
24574         (vrndm_f64): Likewise.
24575         (vrndn_f64): Likewise.
24576         (vrndp_f64): Likewise.
24577         (vrndx_f64): Likewise.
24578
24579 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24580
24581         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
24582         GET_MODE_SIZE argument is enum machine_mode.
24583
24584 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
24585
24586         PR target/60910
24587         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
24588         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
24589
24590 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
24591
24592         PR middle-end/60281
24593         * asan.c (asan_emit_stack_protection): Force the base to align to
24594         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
24595         appropriate bits if STRICT_ALIGNMENT.
24596         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
24597         when asan is on.
24598         (expand_used_vars): Leave a space in the stack frame for alignment
24599         if STRICT_ALIGNMENT.
24600
24601 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
24602
24603         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
24604         than a gimple.
24605         (gimple_store_p): Likewise.
24606         (gimple_assign_load_p): Likewise.
24607         (gimple_assign_cast_p): Likewise.
24608         (gimple_clobber_p): Likewise.
24609
24610         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
24611         rather than a gimple.
24612         (gimple_assign_cast_p): Likewise.
24613
24614 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
24615
24616         PR target/60735
24617         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
24618         If mode is DDmode and TARGET_E500_DOUBLE allow move.
24619
24620         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
24621         more debug information for E500 if -mdebug=reg.
24622
24623 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
24624
24625         PR target/60909
24626         * config/i386/i386.c (ix86_expand_builtin)
24627         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
24628         register for target RTX.
24629         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
24630
24631 2014-04-18  Cong Hou  <congh@google.com>
24632
24633         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
24634         the widen-mult pattern by handling two operands with different sizes,
24635         and operands whose size is smaller than half of the result type.
24636
24637 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
24638
24639         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
24640         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
24641         (do_estimate_edge_time): Compute it.
24642         * ipa-inline.c (want_inline_small_function_p): Bypass
24643         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
24644
24645 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
24646
24647         * ipa-inline.c (spec_rem): New static variable.
24648         (dump_overall_stats): New function.
24649         (dump_inline_stats): New function.
24650
24651 2014-04-18  Richard Henderson  <rth@redhat.com>
24652
24653         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
24654         to GET_MODE_SIZE, not a reg_class_t.
24655
24656 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24657
24658         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
24659         (vsx_xxmrglw_<mode>): Likewise.
24660
24661 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
24662
24663         PR target/60876
24664         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
24665         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
24666         (rs6000_init_hard_regno_mode_ok): Likewise.
24667
24668 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
24669
24670         * ipa-inline.c (inline_small_functions): Account only non-cold
24671         functions.
24672         * doc/invoke.texi (inline-unit-growth): Update documentation.
24673
24674 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
24675
24676         * config/rs6000/rs6000.md (addti3, subti3): New.
24677
24678 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
24679
24680         PR target/60863
24681         * config/i386/i386.c (ix86_expand_clear): Remove outdated
24682         comment.  Check optimize_insn_for_size_p instead of
24683         optimize_insn_for_speed_p.
24684
24685 2014-04-17  Martin Jambor  <mjambor@suse.cz>
24686
24687         * gimple-iterator.c (gsi_start_edge): New function.
24688         * gimple-iterator.h (gsi_start_edge): Declare.
24689         * tree-sra.c (single_non_eh_succ): New function.
24690         (disqualify_ops_if_throwing_stmt): Renamed to
24691         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
24692         having one non-EH successor BB.
24693         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
24694         generate loads into replacements.
24695         (sra_modify_assign): Likewise and and also use the simple path for
24696         such statements.
24697         (sra_modify_function_body): Commit statements on edges.
24698
24699 2014-04-17  Richard Biener  <rguenther@suse.de>
24700
24701         PR middle-end/60849
24702         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
24703         comparison results and add clarifying comment.
24704
24705 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
24706
24707         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
24708         (blank_mode): Initialize it.
24709         (emit_mode_size_inline, emit_mode_nunits_inline,
24710         emit_mode_inner_inline): New functions.
24711         (emit_insn_modes_h): Call them and surround their output with
24712         #if GCC_VERSION >= 4001 ... #endif.
24713         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
24714         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
24715         mode_* arrays if the argument is __builtin_constant_p.
24716         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
24717         is enum machine_mode.
24718
24719 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24720
24721         * passes.c (opt_pass::execute): Adjust.
24722         (pass_manager::execute_pass_mode_switching): Likewise.
24723         (early_local_passes::execute): Likewise.
24724         (execute_one_pass): Pass cfun to the pass's execute method.
24725         * tree-pass.h (opt_pass::execute): Add function * argument.
24726         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
24727         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
24728         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
24729         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
24730         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
24731         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
24732         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
24733         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
24734         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
24735         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
24736         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
24737         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
24738         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
24739         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
24740         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
24741         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
24742         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
24743         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
24744         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
24745         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
24746         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
24747         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
24748         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
24749         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
24750         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
24751         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
24752         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
24753         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
24754         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
24755         Adjust.
24756
24757 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24758
24759         * passes.c (opt_pass::gate): Take function * argument.
24760         (gate_all_early_local_passes): Merge into
24761         (early_local_passes::gate): this.
24762         (gate_all_early_optimizations): Merge into
24763         (all_early_optimizations::gate): this.
24764         (gate_all_optimizations): Mege into
24765         (all_optimizations::gate): this.
24766         (gate_all_optimizations_g): Merge into
24767         (all_optimizations_g::gate): this.
24768         (gate_rest_of_compilation): Mege into
24769         (rest_of_compilation::gate): this.
24770         (gate_postreload): Merge into
24771         (postreload::gate): this.
24772         (dump_one_pass): Pass cfun to the pass's gate method.
24773         (execute_ipa_summary_passes): Likewise.
24774         (execute_one_pass): Likewise.
24775         (ipa_write_summaries_2): Likewise.
24776         (ipa_write_optimization_summaries_1): Likewise.
24777         (ipa_read_summaries_1): Likewise.
24778         (ipa_read_optimization_summaries_1): Likewise.
24779         (execute_ipa_stmt_fixups): Likewise.
24780         * tree-pass.h (opt_pass::gate): Add function * argument.
24781         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
24782         combine-stack-adj.c, combine.c, compare-elim.c,
24783         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
24784         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
24785         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
24786         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
24787         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
24788         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
24789         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
24790         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
24791         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
24792         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
24793         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
24794         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
24795         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
24796         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
24797         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
24798         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
24799         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
24800         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
24801         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
24802         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
24803         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
24804         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
24805         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
24806         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
24807         var-tracking.c, vtable-verify.c, web.c: Adjust.
24808
24809 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24810
24811         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
24812         * configure: Regenerate.
24813
24814 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24815
24816         * passes.c (dump_one_pass): don't check pass->has_gate.
24817         (execute_ipa_summary_passes): Likewise.
24818         (execute_one_pass): Likewise.
24819         (ipa_write_summaries_2): Likewise.
24820         (ipa_write_optimization_summaries_1): Likewise.
24821         (ipa_read_optimization_summaries_1): Likewise.
24822         (execute_ipa_stmt_fixups): Likewise.
24823         * tree-pass.h (pass_data::has_gate): Remove.
24824         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
24825         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
24826         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
24827         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
24828         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
24829         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
24830         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
24831         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
24832         gimple-low.c, gimple-ssa-isolate-paths.c,
24833         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
24834         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
24835         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
24836         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
24837         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
24838         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
24839         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
24840         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
24841         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
24842         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
24843         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
24844         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
24845         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
24846         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
24847         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
24848         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
24849         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
24850         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
24851         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
24852         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
24853         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
24854         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
24855         Adjust.
24856
24857 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24858
24859         * pass_manager.h (pass_manager::register_dump_files_1): Remove
24860         declaration.
24861         * passes.c (pass_manager::register_dump_files_1): Merge into
24862         (pass_manager::register_dump_files): this, and remove its handling of
24863         properties since the pass always has the properties anyway.
24864         (pass_manager::pass_manager): Adjust.
24865
24866 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24867
24868         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
24869         * passes.c (pass_manager::register_dump_files_1): Remove dead code
24870         dealing with properties.
24871         (pass_manager::register_dump_files): Adjust.
24872
24873 2014-03-20  Mark Wielaard  <mjw@redhat.com>
24874
24875         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
24876         then represent the bound as normal constant value.
24877
24878 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
24879
24880         PR target/60847
24881         Forward port from 4.8 branch
24882         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
24883
24884         * config/i386/bmiintrin.h (_blsi_u32): New.
24885         (_blsi_u64): Ditto.
24886         (_blsr_u32): Ditto.
24887         (_blsr_u64): Ditto.
24888         (_blsmsk_u32): Ditto.
24889         (_blsmsk_u64): Ditto.
24890         (_tzcnt_u32): Ditto.
24891         (_tzcnt_u64): Ditto.
24892
24893 2014-04-17  Kito Cheng  <kito@0xlab.org>
24894
24895         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
24896
24897 2014-04-17  Richard Biener  <rguenther@suse.de>
24898
24899         PR middle-end/60849
24900         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
24901         boolean results for comparisons.
24902
24903 2014-04-17  Richard Biener  <rguenther@suse.de>
24904
24905         PR tree-optimization/60836
24906         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
24907         initial PHI args to be gimple values.
24908
24909 2014-04-17  Richard Biener  <rguenther@suse.de>
24910
24911         PR tree-optimization/60841
24912         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
24913         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
24914         of stmts to SLP build.
24915         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
24916         (vect_analyze_slp): Likewise.
24917         (vect_analyze_slp_instance): Likewise.
24918         (vect_build_slp_tree): Limit overall SLP tree growth.
24919         * tree-vectorizer.h (vect_analyze_data_refs,
24920         vect_analyze_slp): Adjust prototypes.
24921
24922 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
24923
24924         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
24925         Silvermont.
24926
24927 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
24928
24929         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
24930         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
24931         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
24932         for TARGET_SLOW_PSHUFB
24933
24934 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
24935
24936         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
24937         * config/i386/i386.c (intel_cost): Ditto.
24938
24939 2014-04-17  Joey Ye  <joey.ye@arm.com>
24940
24941         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
24942
24943 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
24944
24945         * opts.c (common_handle_option): Disable -fipa-reference coorectly
24946         with -fuse-profile.
24947
24948 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
24949
24950         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
24951         (type_all_derivations_known_p): New predicate.
24952         (type_all_ctors_visible_p): New predicate.
24953         (type_possibly_instantiated_p): New predicate.
24954         (get_odr_type): Compute all_derivations_known.
24955         (dump_odr_type): Dump the flag.
24956         (maybe_record_type): Cleanup.
24957         (record_target_from_binfo): Add bases_to_consider array;
24958         record bases for types w/o instances and skip CXX destructor.
24959         (possible_polymorphic_call_targets_1): Add bases_to_consider
24960         and consider_construction parameters; check if type may have instance.
24961         (get_polymorphic_call_info): Set maybe_in_construction to true
24962         when we know nothing.
24963         (record_targets_from_bases): Skip CXX destructors; they are
24964         never called for types in construction.
24965         (possible_polymorphic_call_targets): Do not record target when
24966         type may not have instance.
24967
24968 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
24969
24970         PR ipa/60854
24971         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
24972         external aliases alive, too.
24973
24974 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
24975
24976         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
24977         definition.
24978
24979 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
24980
24981         * final.c (compute_alignments): Do not apply loop alignment to a block
24982         falling through to the exit.
24983
24984 2014-04-16  Catherine Moore  <clm@codesourcery.com>
24985
24986         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
24987         Adjust constraints for microMIPS store patterns.
24988
24989 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
24990
24991         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
24992
24993 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
24994
24995         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
24996         (append_use): Run at -O0.
24997         (append_vdef): Likewise.
24998         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
24999         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
25000
25001 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
25002
25003         PR tree-optimization/60844
25004         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
25005         (propagate_op_to_single_use, remove_visited_stmt_chain,
25006         linearize_expr, repropagate_negates, reassociate_bb): Use it
25007         instead of gsi_remove.
25008
25009 2014-04-16  Martin Jambor  <mjambor@suse.cz>
25010
25011         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
25012         ipa_transforms_to_apply.
25013         (cgraph_function_versioning): Assert that old_node has empty
25014         ipa_transforms_to_apply.
25015         * trans-mem.c (ipa_tm_create_version): Likewise.
25016         * tree-inline.c (tree_function_versioning): Do not duplicate
25017         ipa_transforms_to_apply.
25018
25019 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25020
25021         PR target/60817
25022         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
25023         x86_64-*-* cases.
25024         Pass necessary as flags on 64-bit Solaris/x86.
25025         Use lowercase relocs for x86_64-*-*.
25026         * configure: Regenerate.
25027
25028 2014-04-15  Jan Hubicka  <jh@suse.cz>
25029
25030         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
25031         (maybe_record_node, likely_target_p): Use it.
25032
25033 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25034
25035         PR target/60839
25036         Revert following patch
25037
25038         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25039
25040         PR target/60735
25041         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
25042         software floating point or no floating point registers, do not
25043         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
25044         in GPRs that occurs after we tested for GPRs that would never be
25045         true.
25046
25047         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
25048         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
25049         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
25050         specifically allow DDmode, since that does not use the SPE SIMD
25051         instructions.
25052
25053 2014-03-21  Mark Wielaard  <mjw@redhat.com>
25054
25055         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
25056         as unsigned or int depending on type and value used.
25057
25058 2014-04-15  Richard Biener  <rguenther@suse.de>
25059
25060         PR rtl-optimization/56965
25061         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
25062         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
25063         ... here.
25064         * alias.c (true_dependence_1): Do not call
25065         nonoverlapping_component_refs_p.
25066         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
25067         nonoverlapping_component_refs_p.
25068         (indirect_refs_may_alias_p): Likewise.
25069
25070 2014-04-15  Teresa Johnson  <tejohnson@google.com>
25071
25072         * cfg.c (dump_bb_info): Fix flags check.
25073         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
25074
25075 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25076
25077         PR rtl-optimization/60663
25078         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
25079         avoid 0 cost.
25080
25081 2014-04-15  Richard Biener  <rguenther@suse.de>
25082
25083         * lto-streamer.h (LTO_major_version): Bump to 4.
25084
25085 2014-04-15  Richard Biener  <rguenther@suse.de>
25086
25087         * common.opt (lto_partition_model): New enum.
25088         (flto-partition=): Merge separate options with a single with argument,
25089         add -flto-partition=one support.
25090         * flag-types.h (enum lto_partition_model): Declare.
25091         * opts.c (finish_options): Remove duplicate -flto-partition=
25092         option check.
25093         * lto-wrapper.c (run_gcc): Adjust.
25094
25095 2014-04-15  Richard Biener  <rguenther@suse.de>
25096
25097         * alias.c (ncr_compar): New function.
25098         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
25099
25100 2014-04-15  Richard Biener  <rguenther@suse.de>
25101
25102         * alias.c (record_component_aliases): Do not walk BINFOs.
25103
25104 2014-04-15  Richard Biener  <rguenther@suse.de>
25105
25106         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
25107         Add struct function argument and adjust.
25108         (find_func_aliases_for_call): Likewise.
25109         (find_func_aliases): Likewise.
25110         (find_func_clobbers): Likewise.
25111         (intra_create_variable_infos): Likewise.
25112         (compute_points_to_sets): Likewise.
25113         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
25114
25115 2014-04-15  Richard Biener  <rguenther@suse.de>
25116
25117         * tree.c (iterative_hash_expr): Use enum tree_code_class
25118         to store TREE_CODE_CLASS.
25119         (tree_block): Likewise.
25120         (tree_set_block): Likewise.
25121         * tree.h (fold_build_pointer_plus_loc): Use
25122         convert_to_ptrofftype_loc.
25123
25124 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
25125
25126         PR plugins/59335
25127         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
25128         added in 4.9.
25129
25130 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
25131
25132         * cfgloop.h (struct loop): Move force_vectorize down.
25133         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
25134         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
25135         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
25136         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
25137         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
25138         * tree-core.h (enum annot_expr_kind): Add new kind values.
25139         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
25140         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
25141         kinds.
25142         * tree.def (ANNOTATE_EXPR): Tweak comment.
25143
25144 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
25145
25146         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
25147         cxa_pure_virtual).
25148
25149 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
25150
25151         * tree.h (TYPE_IDENTIFIER): Declare.
25152         * tree.c (subrange_type_for_debug_p): Use it.
25153         * godump.c (go_format_type): Likewise.
25154         * dwarf2out.c (is_cxx_auto, modified_type_die,
25155         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
25156         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
25157
25158 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
25159
25160         PR lto/60820
25161         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
25162
25163 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
25164
25165         * config/i386/i386.c (examine_argument): Return bool.  Return true if
25166         parameter should be passed in memory.
25167         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
25168         (construct_container): Update calls to examine_argument.
25169         (function_arg_advance_64): Ditto.
25170         (return_in_memory_32): Merge with ix86_return_in_memory.
25171         (return_in_memory_64): Ditto.
25172         (return_in_memory_ms_64): Ditto.
25173
25174 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
25175
25176         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
25177         * coverage.c (coverage_compute_profile_id): Handle externally visible
25178         symbols.
25179
25180 2014-04-14  Martin Jambor  <mjambor@suse.cz>
25181
25182         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
25183         DECL_DISREGARD_INLINE_LIMITS functions.
25184
25185 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
25186
25187         PR target/60827
25188         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
25189
25190 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
25191
25192         PR target/60827
25193         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
25194         optimize_insn_for_speed_p instead of
25195         optimize_function_for_speed_p.
25196
25197 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
25198
25199         * doc/invoke.texi (free): Document AArch64.
25200
25201 2014-04-14  Richard Biener  <rguenther@suse.de>
25202
25203         PR tree-optimization/60042
25204         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
25205         (insert_into_preds_of_block): Do not prevent PHI insertion
25206         for REFERENCE exprs here ...
25207         (eliminate_dom_walker::before_dom_children): ... but prevent
25208         their use here under similar conditions when applied to the
25209         IL after PRE optimizations.
25210
25211 2014-04-14  Richard Biener  <rguenther@suse.de>
25212
25213         * passes.def: Move early points-to after early SRA.
25214
25215 2014-04-14  Richard Biener  <rguenther@suse.de>
25216
25217         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
25218         check for which sign-changes we allow when forwarding
25219         a converted value into a switch.
25220
25221 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
25222
25223         * stor-layout.c (place_field): Finalize non-constant offset for the
25224         field, if any.
25225
25226 2014-04-14  Richard Biener  <rguenther@suse.de>
25227
25228         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
25229         as argument.
25230         (expand_switch_using_bit_tests_p): Likewise.
25231         (process_switch): Compute and pass on speed_p based on the
25232         switch stmt.
25233         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
25234         optimize_bb_for_speed_p.
25235
25236 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
25237
25238         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
25239         * function.h (struct function): Rename has_force_vect_loops into
25240         has_force_vectorize_loops.
25241         * lto-streamer-in.c (input_cfg): Adjust for renaming.
25242         (input_struct_function_base): Likewise.
25243         * lto-streamer-out.c (output_cfg): Likewise.
25244         (output_struct_function_base): Likewise.
25245         * omp-low.c (expand_omp_simd): Likewise.
25246         * tree-cfg.c (move_sese_region_to_fn): Likewise.
25247         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
25248         (version_loop_for_if_conversion): Likewise.
25249         (tree_if_conversion): Likewise.
25250         (main_tree_if_conversion): Likewise.
25251         (gate_tree_if_conversion): Likewise.
25252         * tree-inline.c (copy_loops): Likewise.
25253         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
25254         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
25255         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
25256         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
25257         * tree-vectorizer.c (vectorize_loops): Likewise.
25258         * tree-vectorizer.h (unlimited_cost_model): Likewise.
25259
25260 2014-04-14  Richard Biener  <rguenther@suse.de>
25261
25262         PR lto/60720
25263         * lto-streamer-out.c (wrap_refs): New function.
25264         (lto_output): Wrap symbol references in global initializes in
25265         type-preserving MEM_REFs.
25266
25267 2014-04-14  Christian Bruel  <christian.bruel@st.com>
25268
25269         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
25270
25271 2014-04-14  Christian Bruel  <christian.bruel@st.com>
25272
25273         * config/sh/sh.md (setmemqi): New expand pattern.
25274         * config/sh/sh.h (CLEAR_RATIO): Define.
25275         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
25276         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
25277
25278 2014-04-14  Richard Biener  <rguenther@suse.de>
25279
25280         PR middle-end/55022
25281         * fold-const.c (negate_expr_p): Don't negate directional rounding
25282         division.
25283         (fold_negate_expr): Likewise.
25284
25285 2014-04-14  Richard Biener  <rguenther@suse.de>
25286
25287         PR tree-optimization/59817
25288         PR tree-optimization/60453
25289         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
25290         recursion to catch all CHRECs in the scalar evolution and restrict
25291         the predicate for the remains appropriately.
25292
25293 2014-04-12  Catherine Moore  <clm@codesourcery.com>
25294
25295         * config/mips/constraints.md: Add new register constraint "kb".
25296         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
25297         (*movhi_internal): Likewise.
25298         (*movqi_internal): Likewise.
25299         * config/mips/mips.h (M16_STORE_REGS): New register class.
25300         (REG_CLASS_NAMES): Add M16_STORE_REGS.
25301         (REG_CLASS_CONTENTS): Likewise.
25302         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
25303
25304 2014-04-11  Tobias Burnus  <burnus@net-b.de>
25305
25306         PR c/60194
25307         * doc/invoke.texi (-Wformat-signedness): Document it.
25308         (Wformat=2): Mention that this enables -Wformat-signedness.
25309
25310 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25311
25312         * common/config/epiphany/epiphany-common.c
25313         (epiphany_option_optimization_table): Enable section anchors by
25314         default at -O1 or higher.
25315         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
25316         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
25317         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
25318         carries no extra cost.
25319         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
25320         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
25321         * config/epiphany/predicates.md (memclob_operand): New predicate.
25322         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
25323         Use memclob_operand predicate and X constraint for operand 3.
25324
25325 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25326
25327         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
25328         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
25329         its operands.
25330
25331 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25332
25333         PR rtl-optimization/60651
25334         * mode-switching.c (optimize_mode_switching): Make sure to emit
25335         sets of a lower numbered entity before sets of a higher numbered
25336         entity to a mode of the same or lower priority.
25337         When creating a seginfo for a basic block that starts with a code
25338         label, move the insertion point past the code label.
25339         (new_seginfo): Document and enforce requirement that
25340         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
25341         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
25342         * doc/tm.texi: Regenerate.
25343
25344 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25345
25346         PR target/60811
25347         * config/arc/arc.c (arc_save_restore): Fix assert typo.
25348
25349 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
25350
25351         * BASE-VER: Set to 4.10.0.
25352
25353 2014-04-11  Tobias Burnus  <burnus@net-b.de>
25354
25355         PR other/59055
25356         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
25357         * doc/gcc.texi (Service): Update description in the @menu
25358         * doc/invoke.texi (Option Summary): Remove misplaced and
25359         duplicated @menu.
25360
25361 2014-04-11  Steve Ellcey  <sellcey@mips.com>
25362             Jakub Jelinek  <jakub@redhat.com>
25363
25364         PR middle-end/60556
25365         * expr.c (convert_move): Use emit_store_flag_force instead of
25366         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
25367         argument to it.
25368
25369 2014-04-11  Richard Biener  <rguenther@suse.de>
25370
25371         PR middle-end/60797
25372         * varasm.c (assemble_alias): Avoid endless error reporting
25373         recursion by setting TREE_ASM_WRITTEN.
25374
25375 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25376
25377         * config/s390/s390.md: Add a splitter for NOT rtx.
25378
25379 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
25380
25381         PR rtl-optimization/60663
25382         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
25383
25384 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
25385             Jakub Jelinek  <jakub@redhat.com>
25386
25387         PR lto/60567
25388         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
25389         flag from decl_node to node.
25390
25391 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25392
25393         PR debug/60655
25394         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
25395         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
25396         ameliorating the cases where it can be.
25397
25398 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
25399
25400         Revert
25401         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
25402
25403         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
25404         (loadsync_<mode>): Change mode.
25405         (load_quadpti, store_quadpti): New.
25406         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
25407         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
25408         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
25409
25410 2014-04-09  Cong Hou  <congh@google.com>
25411
25412         PR testsuite/60773
25413         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
25414         documentation.
25415
25416 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25417
25418         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
25419         instead of vnor to exploit possible fusion opportunity in the
25420         future.
25421         (altivec_expand_vec_perm_const_le): Likewise.
25422
25423 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
25424
25425         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
25426         (loadsync_<mode>): Change mode.
25427         (load_quadpti, store_quadpti): New.
25428         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
25429         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
25430
25431 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
25432
25433         PR target/60763
25434         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
25435         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
25436         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
25437
25438 2014-04-08  Richard Biener  <rguenther@suse.de>
25439
25440         PR middle-end/60706
25441         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
25442         a 64bit widest int print double-int similar to on HWI64 hosts.
25443
25444 2014-04-08  Richard Biener  <rguenther@suse.de>
25445
25446         PR tree-optimization/60785
25447         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
25448         default defs properly.
25449
25450 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
25451
25452         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
25453         (Weffc++): Likewise.
25454
25455 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
25456
25457         * ipa-devirt.c (maybe_record_node): When node is not recorded,
25458         set completep to false rather than true.
25459
25460 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
25461
25462         PR target/60504
25463         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
25464         ARM_TARGET2_DWARF_FORMAT.
25465
25466 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
25467
25468         PR target/60609
25469         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
25470         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
25471         ADDR_DIFF_VEC.
25472
25473 2014-04-07  Richard Biener  <rguenther@suse.de>
25474
25475         PR tree-optimization/60766
25476         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
25477         (may_eliminate_iv): Convert cand_value_at result to desired type.
25478
25479 2014-04-07  Jason Merrill  <jason@redhat.com>
25480
25481         PR c++/60731
25482         * common.opt (-fno-gnu-unique): Add.
25483         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
25484
25485 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25486
25487         * haifa-sched.c: Fix outdated function reference and minor
25488         grammar errors in introductory comment.
25489
25490 2014-04-07  Richard Biener  <rguenther@suse.de>
25491
25492         PR middle-end/60750
25493         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
25494         for noreturn calls.
25495         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
25496
25497 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
25498
25499         PR debug/55794
25500         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
25501         size accounting for thunks.
25502         (pa_asm_output_mi_thunk): Use final_start_function() and
25503         final_end_function() to output function start and end directives.
25504
25505 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
25506
25507         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
25508         device specific ISA/ feature information. Remove short_sp and
25509         errata_skip ds.  Add avr_device_specific_features enum to have device
25510         specific info.
25511         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
25512         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
25513         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
25514         updated device specific info.
25515         * config/avr/avr-mcus.def: Merge device specific details to
25516         dev_attribute field.
25517         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
25518         errata_skip.
25519         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
25520         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
25521         assembler if RMW isa supported by current device.
25522         * config/avr/genmultilib.awk: Update as device info structure changed.
25523         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
25524
25525 2014-04-04  Cong Hou  <congh@google.com>
25526
25527         PR tree-optimization/60656
25528         * tree-vect-stmts.c (supportable_widening_operation):
25529         Fix a bug that elements in a vector with vect_used_by_reduction
25530         property are incorrectly reordered when the operation on it is not
25531         consistant with the one in reduction operation.
25532
25533 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
25534
25535         PR rtl-optimization/60155
25536         * gcse.c (record_set_data): New function.
25537         (single_set_gcse): New function.
25538         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
25539         (hoist_code): Likewise.
25540         (get_pressure_class_and_nregs): Likewise.
25541
25542 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
25543
25544         * explow.c (probe_stack_range): Emit a final optimization blockage.
25545
25546 2014-04-04  Anthony Green  <green@moxielogic.com>
25547
25548         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
25549         typos.
25550
25551 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
25552
25553         PR ipa/59626
25554         * lto-cgraph.c (input_overwrite_node): Check that partitioning
25555         flags are set only during streaming.
25556         * ipa.c (process_references, walk_polymorphic_call_targets,
25557         symtab_remove_unreachable_nodes): Drop bodies of always inline
25558         after early inlining.
25559         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
25560
25561 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
25562         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25563
25564         PR debug/60655
25565         * dwarf2out.c (const_ok_for_output_1): Reject expressions
25566         containing a NOT.
25567
25568 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25569
25570         PR bootstrap/60743
25571         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
25572         duration.
25573         (cortex_a53_fdivd): Likewise.
25574
25575 2014-04-04  Martin Jambor  <mjambor@suse.cz>
25576
25577         PR ipa/60640
25578         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
25579         Adjust all callers.
25580         * cgraph.c (clone_of_p): Also return true if thunks match.
25581         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
25582         cgraph_function_or_thunk_node and an obsolete comment.
25583         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
25584         file.
25585         (build_function_decl_skip_args): Likewise.
25586         (set_new_clone_decl_and_node_flags): New function.
25587         (duplicate_thunk_for_node): Likewise.
25588         (redirect_edge_duplicating_thunks): Likewise.
25589         (cgraph_clone_node): New parameter args_to_skip, pass it to
25590         redirect_edge_duplicating_thunks which is called instead of
25591         cgraph_redirect_edge_callee.
25592         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
25593         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
25594
25595 2014-04-04  Jeff Law  <law@redhat.com>
25596
25597         PR target/60657
25598         * config/arm/predicates.md (const_int_I_operand): New predicate.
25599         (const_int_M_operand): Similarly.
25600         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
25601         const_int_operand.
25602         (insv_t2, extv_reg, extzv_t2): Likewise.
25603         (load_multiple_with_writeback): Similarly for const_int_I_operand.
25604         (pop_multiple_with_writeback_and_return): Likewise.
25605         (vfp_pop_multiple_with_writeback): Likewise
25606
25607 2014-04-04  Richard Biener  <rguenther@suse.de>
25608
25609         PR ipa/60746
25610         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
25611         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
25612         non-GIMPLE_LABELs.
25613         * gimplify.h (gimple_add_tmp_var_fn): Declare.
25614         * gimplify.c (gimple_add_tmp_var_fn): New function.
25615         * gimple-expr.h (create_tmp_reg_fn): Declare.
25616         * gimple-expr.c (create_tmp_reg_fn): New function.
25617         * gimple-low.c (record_vars_into): Don't change cfun.
25618         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
25619         code generation without cfun.
25620
25621 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
25622
25623         PR bootstrap/60719
25624         * Makefile.in (install-driver): Fix shell scripting.
25625
25626 2014-04-03  Cong Hou  <congh@google.com>
25627
25628         PR tree-optimization/60505
25629         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
25630         threshold of number of iterations below which no vectorization
25631         will be done.
25632         * tree-vect-loop.c (new_loop_vec_info):
25633         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
25634         * tree-vect-loop.c (vect_analyze_loop_operations):
25635         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
25636         * tree-vect-loop.c (vect_transform_loop):
25637         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
25638         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
25639         of iterations of the loop and see if we should build the epilogue.
25640
25641 2014-04-03  Richard Biener  <rguenther@suse.de>
25642
25643         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
25644         (streamer_tree_cache_create): Adjust.
25645         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
25646         to allow optional nodes array.
25647         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
25648         (streamer_tree_cache_append): Likewise.
25649         (streamer_tree_cache_create): Create nodes array optionally
25650         as specified by parameter.
25651         * lto-streamer-out.c (create_output_block): Avoid maintaining
25652         the node array in the writer cache.
25653         (DFS_write_tree): Remove assertion.
25654         (produce_asm_for_decls): Free the out decl state hash table early.
25655         * lto-streamer-in.c (lto_data_in_create): Adjust for
25656         streamer_tree_cache_create prototype change.
25657
25658 2014-04-03  Richard Biener  <rguenther@suse.de>
25659
25660         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
25661         set TREE_CHAIN to NULL_TREE.
25662
25663 2014-04-03  Richard Biener  <rguenther@suse.de>
25664
25665         PR tree-optimization/60740
25666         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
25667         over all GIMPLE_COND operands.
25668
25669 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
25670
25671         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
25672         (Weffc++): Remove Scott's numbering, merge lists and reference
25673         Wnon-virtual-dtor.
25674
25675 2014-04-03  Nick Clifton  <nickc@redhat.com>
25676
25677         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
25678         properly.
25679
25680 2014-04-03  Martin Jambor  <mjambor@suse.cz>
25681
25682         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
25683         mention gcc_unreachable before failing.
25684         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
25685         removed symbols.
25686
25687 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
25688
25689         PR ipa/60659
25690         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
25691         inconsistent code and instead mark the context inconsistent.
25692         (possible_polymorphic_call_targets): For inconsistent contexts
25693         return empty complete list.
25694
25695 2014-04-02  Anthony Green  <green@moxielogic.com>
25696
25697         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
25698         (extendqisi2, extendhisi2): Define.
25699         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
25700         (WCHAR_TYPE): Change to unsigned int.
25701
25702 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25703
25704         PR tree-optimization/60733
25705         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
25706         insertion point for PHI candidates to be the end of the feeding
25707         block for the PHI argument.
25708
25709 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
25710
25711         PR rtl-optimization/60650
25712         * lra-constraints.c (process_alt_operands): Decrease reject for
25713         earlyclobber matching.
25714
25715 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25716
25717         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
25718
25719 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25720
25721         * config/spu/spu.c (pad_bb): Do not crash when the last
25722         insn is CODE_FOR_blockage.
25723
25724 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25725
25726         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
25727         lies outside the target mode.
25728
25729 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25730
25731         PR target/60735
25732         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
25733         software floating point or no floating point registers, do not
25734         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
25735         in GPRs that occurs after we tested for GPRs that would never be
25736         true.
25737
25738         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
25739         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
25740         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
25741         specifically allow DDmode, since that does not use the SPE SIMD
25742         instructions.
25743
25744 2014-04-02  Richard Biener  <rguenther@suse.de>
25745
25746         PR middle-end/60729
25747         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
25748         MODE_INTs.  Properly use negv_optab.
25749         (expand_abs): Likewise.
25750
25751 2014-04-02  Richard Biener  <rguenther@suse.de>
25752
25753         PR bootstrap/60719
25754         * Makefile.in (install-driver): Guard extra installs with special
25755         names properly.
25756
25757 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
25758
25759         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25760         Document vec_vgbbd.
25761
25762 2014-04-01  Richard Henderson  <rth@redhat.com>
25763
25764         PR target/60704
25765         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
25766         alternative enabled before register allocation.
25767
25768 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
25769
25770         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
25771         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
25772         typo.
25773         (nios2_large_got_address): Remove unneeded 'sym' parameter.
25774         (nios2_got_address): Update nios2_large_got_address call site.
25775         (nios2_delegitimize_address): New function.
25776         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
25777         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
25778         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
25779
25780 2014-04-01  Martin Husemann  <martin@duskware.de>
25781
25782         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
25783         for -mabi=32.
25784
25785 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
25786
25787         PR rtl-optimization/60604
25788         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
25789         check from register_operand.
25790         (register_operand): Redefine in terms of general_operand.
25791         (nonmemory_operand): Use register_operand for the non-constant cases.
25792
25793 2014-04-01  Richard Biener  <rguenther@suse.de>
25794
25795         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
25796
25797 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25798
25799         * doc/invoke.texi (mapp-regs): Clarify.
25800
25801 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
25802
25803         * config/i386/avx512fintrin.h (__v32hi): Define type.
25804         (__v64qi): Likewise.
25805         (_mm512_set1_epi8): Define.
25806         (_mm512_set1_epi16): Define.
25807         (_mm512_set4_epi32): Define.
25808         (_mm512_set4_epi64): Define.
25809         (_mm512_set4_pd): Define.
25810         (_mm512_set4_ps): Define.
25811         (_mm512_setr4_epi64): Define.
25812         (_mm512_setr4_epi32): Define.
25813         (_mm512_setr4_pd): Define.
25814         (_mm512_setr4_ps): Define.
25815         (_mm512_setzero_epi32): Define.
25816
25817 2014-03-31  Martin Jambor  <mjambor@suse.cz>
25818
25819         PR middle-end/60647
25820         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
25821         callsite_arguments_match_p.  Updated all callers.  Also check types of
25822         corresponding formal parameters and actual arguments.
25823         (not_all_callers_have_enough_arguments_p) Renamed to
25824         some_callers_have_mismatched_arguments_p.
25825
25826 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
25827
25828         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
25829
25830 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
25831
25832         PR target/60034
25833         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
25834         section anchor.
25835
25836 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
25837
25838         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
25839         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
25840         Split out
25841         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
25842         Use FMAMODE_NOVF512 mode iterator.
25843         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
25844         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
25845         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
25846         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
25847         Split out
25848         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
25849         Use VF_128_256 mode iterator.
25850         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
25851         Ditto.
25852
25853 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
25854
25855         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
25856         static chain if needed.
25857
25858 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
25859
25860         PR target/60697
25861         * lra-constraints.c (index_part_to_reg): New.
25862         (process_address): Use it.
25863
25864 2014-03-27  Jeff Law  <law@redhat.com>
25865             Jakub Jelinek  <jakub@redhat.com>
25866
25867         PR target/60648
25868         * expr.c (do_tablejump): Use simplify_gen_binary rather than
25869         gen_rtx_{PLUS,MULT} to build up the address expression.
25870
25871         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
25872         creating non-canonical RTL.
25873
25874 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
25875
25876         PR ipa/60243
25877         * ipa-inline.c (want_inline_small_function_p): Short circuit large
25878         functions; reorganize to make cheap checks first.
25879         (inline_small_functions): Do not estimate growth when dumping;
25880         it is expensive.
25881         * ipa-inline.h (inline_summary): Add min_size.
25882         (growth_likely_positive): New function.
25883         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
25884         (set_cond_stmt_execution_predicate): Cleanup.
25885         (estimate_edge_size_and_time): Compute min_size.
25886         (estimate_calls_size_and_time): Likewise.
25887         (estimate_node_size_and_time): Likewise.
25888         (inline_update_overall_summary): Update min_size.
25889         (do_estimate_edge_time): Likewise.
25890         (do_estimate_edge_size): Update.
25891         (do_estimate_edge_hints): Update.
25892         (growth_likely_positive): New function.
25893
25894 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
25895
25896         PR target/60693
25897         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
25898         also if addr has VOIDmode.
25899
25900 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25901
25902         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
25903         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
25904         Declare extern.
25905         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
25906         instructions as well as AdvancedSIMD loads.
25907
25908 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25909
25910         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
25911         Use crypto_aese type.
25912         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
25913         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
25914         crypto_aese, crypto_aesmc.  Move to types.md.
25915         * config/arm/types.md (crypto_aes): Split into crypto_aese,
25916         crypto_aesmc.
25917         * config/arm/iterators.md (crypto_type): Likewise.
25918
25919 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
25920
25921         * cgraph.c: Include expr.h and tree-dfa.h.
25922         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
25923         remove LHS.
25924
25925 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
25926
25927         PR target/60675
25928         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
25929         regs from checking multi-reg pseudos.
25930
25931 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25932
25933         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
25934
25935 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25936
25937         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
25938         if it would clobber the stack pointer, even temporarily.
25939
25940 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
25941
25942         * mode-switching.c: Make small adjustments to the top comment.
25943
25944 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
25945
25946         * config/rs6000/constraints.md (wD constraint): New constraint to
25947         match the constant integer to get the top DImode/DFmode out of a
25948         vector in a VSX register.
25949
25950         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
25951         match the constant integer to get the top DImode/DFmode out of a
25952         vector in a VSX register.
25953
25954         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
25955         for ISA 2.07.
25956
25957         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25958         vbpermq builtins.
25959
25960         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
25961         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
25962
25963         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
25964         Optimize vec_extract of 64-bit values, where the value being
25965         extracted is in the top word, where we can use scalar
25966         instructions.  Add direct move and store support.  Combine the big
25967         endian/little endian vector select load support into a single insn.
25968         (vsx_extract_<mode>_internal1): Likewise.
25969         (vsx_extract_<mode>_internal2): Likewise.
25970         (vsx_extract_<mode>_load): Likewise.
25971         (vsx_extract_<mode>_store): Likewise.
25972         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
25973         combined into vsx_extract_<mode>_load.
25974         (vsx_extract_<mode>_one_le): Likewise.
25975
25976         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
25977         define the top 64-bit vector element.
25978
25979         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
25980         constraint.
25981
25982         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25983         Document vec_vbpermq builtin.
25984
25985         PR target/60672
25986         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
25987         enable use of xxsldwi and xxpermdi builtin functions.
25988         (vec_xxpermdi): Likewise.
25989
25990         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25991         Document use of vec_xxsldwi and vec_xxpermdi builtins.
25992
25993 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
25994
25995         PR rtl-optimization/60650
25996         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
25997         first_p.  Use it.
25998         (find_spills_for): New.
25999         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
26000         Spill all pseudos on the second iteration.
26001
26002 2014-03-27  Marek Polacek  <polacek@redhat.com>
26003
26004         PR c/50347
26005         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
26006         types.
26007
26008 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26009
26010         * config/s390/s390.c (s390_can_use_return_insn): Check for
26011         call-saved FPRs on 31 bit.
26012
26013 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
26014
26015         PR middle-end/60682
26016         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
26017         if they need regimplification, just drop them instead of
26018         calling gimple_regimplify_operands on them.
26019
26020 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
26021
26022         PR target/60580
26023         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
26024         (aarch64_frame_pointer_required): Adjust logic.
26025         (aarch64_can_eliminate): Adjust logic.
26026         (aarch64_override_options_after_change): Adjust logic.
26027
26028 2014-03-27  Dehao Chen  <dehao@google.com>
26029
26030         * ipa-inline.c (early_inliner): Update node's inline info.
26031
26032 2014-03-26  Dehao Chen  <dehao@google.com>
26033
26034         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
26035         compiler inserted conditional jumps for NAN float check.
26036
26037 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
26038
26039         * ubsan.h (ubsan_create_data): Change second argument's type
26040         to const location_t *.
26041         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
26042         _("<unknown>").
26043         (ubsan_create_data): Change second argument to const location_t *PLOC.
26044         Create Loc field whenever PLOC is non-NULL.
26045         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
26046         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
26047         callers.
26048
26049         PR other/59545
26050         * real.c (real_to_integer2): Change type of low to UHWI.
26051
26052 2014-03-26  Tobias Burnus  <burnus@net-b.de>
26053
26054         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
26055         (CILK_SELF_SPECS): New define.
26056         (driver_self_specs): Use it.
26057
26058 2014-03-26  Richard Biener  <rguenther@suse.de>
26059
26060         * tree-pretty-print.c (percent_K_format): Implement special
26061         case for LTO and its stripped down BLOCK tree.
26062
26063 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
26064
26065         PR sanitizer/60636
26066         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
26067
26068         * tree-vrp.c (simplify_internal_call_using_ranges): If only
26069         one range is range_int_cst_p, but not both, at least optimize
26070         addition/subtraction of 0 and multiplication by 0 or 1.
26071         * gimple-fold.c (gimple_fold_call): Fold
26072         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
26073         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
26074         INTEGER_CSTs, try to fold at least x * 0 and y - y.
26075
26076 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
26077
26078         PR rtl-optimization/60452
26079         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
26080         <case REG>: Return 1 for invalid offsets from the frame pointer.
26081
26082 2014-03-26  Marek Polacek  <polacek@redhat.com>
26083
26084         PR c/37428
26085         * doc/extend.texi (C Extensions): Mention variable-length arrays in
26086         a structure/union.
26087
26088 2014-03-26  Marek Polacek  <polacek@redhat.com>
26089
26090         PR c/39525
26091         * doc/extend.texi (Designated Inits): Describe what happens to omitted
26092         field members.
26093
26094 2014-03-26  Marek Polacek  <polacek@redhat.com>
26095
26096         PR other/59545
26097         * ira-color.c (update_conflict_hard_regno_costs): Perform the
26098         multiplication in unsigned type.
26099
26100 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
26101
26102         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
26103
26104 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
26105
26106         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
26107
26108 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
26109
26110         PR ipa/60315
26111         * cif-code.def (UNREACHABLE) New code.
26112         * ipa-inline.c (inline_small_functions): Skip edges to
26113         __builtlin_unreachable.
26114         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
26115         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
26116         predicate to __bulitin_unreachable.
26117         (set_cond_stmt_execution_predicate): Fix issue when
26118         invert_tree_comparison returns ERROR_MARK.
26119         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
26120         propagate to inline clones.
26121         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
26122         to unreachable.
26123         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
26124         * cgraphclones.c (cgraph_clone_node): If call destination is already
26125         ureachable, do not redirect it back.
26126         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
26127         unreachable.
26128
26129 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
26130
26131         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
26132         Do not modify inline clones.
26133
26134 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
26135
26136         * config/i386/i386.md (general_sext_operand): New mode attr.
26137         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
26138         don't generate (sign_extend (const_int)).
26139         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
26140         operands[2].  Use We constraint instead of <i> and
26141         <general_sext_operand> predicate instead of <general_operand>.
26142         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
26143         * config/i386/constraints.md (We): New constraint.
26144         * config/i386/predicates.md (x86_64_sext_operand,
26145         sext_operand): New predicates.
26146
26147 2014-03-25  Martin Jambor  <mjambor@suse.cz>
26148
26149         PR ipa/60600
26150         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
26151         inconsistent devirtualizations to __builtin_unreachable.
26152
26153 2014-03-25  Marek Polacek  <polacek@redhat.com>
26154
26155         PR c/35449
26156         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
26157
26158 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
26159
26160         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
26161         order of elements for big-endian.
26162
26163 2014-03-25  Richard Biener  <rguenther@suse.de>
26164
26165         PR middle-end/60635
26166         * gimplify-me.c (gimple_regimplify_operands): Update the
26167         re-gimplifed stmt.
26168
26169 2014-03-25  Martin Jambor  <mjambor@suse.cz>
26170
26171         PR ipa/59176
26172         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
26173         (lto_output_varpool_node): Likewise.
26174         (input_overwrite_node): Likewise.
26175         (input_varpool_node): Likewise.
26176
26177 2014-03-25  Richard Biener  <rguenther@suse.de>
26178
26179         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
26180         (run_gcc): Likewise.
26181
26182 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
26183
26184         * combine.c (simplify_compare_const): Add MODE argument.
26185         Handle mode_width 0 as very large mode_width.
26186         (try_combine, simplify_comparison): Adjust callers.
26187
26188         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
26189         type to avoid signed integer overflow.
26190         * explow.c (plus_constant): Likewise.
26191
26192 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26193
26194         * doc/generic.texi: Correct typos.
26195
26196 2014-03-24  Tobias Burnus  <burnus@net-b.de>
26197
26198         * doc/invoke.texi (-flto): Expand section about
26199         using static libraries with LTO.
26200
26201 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26202
26203         PR rtl-optimization/60501
26204         * optabs.def (addptr3_optab): New optab.
26205         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
26206         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
26207         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
26208
26209         * lra.c (emit_add3_insn): Use the addptr pattern if available.
26210
26211         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
26212
26213 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
26214
26215         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
26216         _mm512_set1_pd.
26217
26218         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
26219         (_mm256_undefined_ps): Define.
26220         (_mm256_undefined_pd): Define.
26221         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
26222         (_mm_undefined_pd): Define.
26223         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
26224         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
26225         (_mm512_undefined_ps): Define.
26226         (_mm512_undefined_pd): Define.
26227         Use _mm*_undefined_*.
26228         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
26229
26230 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
26231
26232         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
26233         (lshr_simd): DI mode added.
26234         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
26235         (aarch64_ushr_simddi): Likewise.
26236         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
26237         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
26238         (vshrd_n_u64): Likewise.
26239
26240 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26241
26242         * Makefile.in (s-macro_list): Depend on cc1.
26243
26244 2014-03-23  Teresa Johnson  <tejohnson@google.com>
26245
26246         * ipa-utils.c (ipa_print_order): Use specified dump file.
26247
26248 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
26249
26250         PR rtl-optimization/60601
26251         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
26252
26253         * gcc.c (eval_spec_function): Initialize save_growing_value.
26254
26255 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
26256
26257         PR sanitizer/60613
26258         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
26259         code == MINUS_EXPR, never swap op0 with op1.
26260
26261         * toplev.c (init_local_tick): Avoid signed integer multiplication
26262         overflow.
26263         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
26264         shift by first operand's bitsize.
26265
26266 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
26267
26268         PR target/60610
26269         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
26270         redefine to 1 or 0.
26271         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
26272         TARGET_ISA_64BIT_P(x).
26273
26274 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26275
26276         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
26277         pattern for vector nor instead of subtract from splat(-1).
26278         (altivec_expand_vec_perm_const_le): Likewise.
26279
26280 2014-03-21  Richard Henderson  <rth@twiddle.net>
26281
26282         PR target/60598
26283         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
26284         related insns after epilogue_completed.
26285
26286 2014-03-21  Martin Jambor  <mjambor@suse.cz>
26287
26288         PR ipa/59176
26289         * cgraph.h (symtab_node): New flag body_removed.
26290         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
26291         when removing bodies.
26292         * symtab.c (dump_symtab_base): Dump body_removed flag.
26293         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
26294         had their bodies removed.
26295
26296 2014-03-21  Martin Jambor  <mjambor@suse.cz>
26297
26298         PR ipa/60419
26299         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
26300         in the border.
26301
26302 2014-03-21  Richard Biener  <rguenther@suse.de>
26303
26304         PR tree-optimization/60577
26305         * tree-core.h (struct tree_base): Document nothrow_flag use
26306         in DECL_NONALIASED.
26307         * tree.h (DECL_NONALIASED): New.
26308         (may_be_aliased): Adjust.
26309         * coverage.c (build_var): Set DECL_NONALIASED.
26310
26311 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26312
26313         * expr.c (expand_expr_real_1): Remove outdated comment.
26314
26315 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
26316
26317         PR middle-end/60597
26318         * ira.c (adjust_cleared_regs): Call copy_rtx on
26319         *reg_equiv[REGNO (loc)].src_p before passing it to
26320         simplify_replace_fn_rtx.
26321
26322         PR target/60568
26323         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
26324         into CONST, put pic register as first operand of PLUS.  Use
26325         gen_const_mem for both 32-bit and 64-bit PIC got loads.
26326
26327 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26328
26329         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
26330
26331 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26332
26333         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
26334         around for store forwarding issue in the FPU on the UT699.
26335         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
26336         loads and operations if -mfix-ut699 is specified.
26337         (divtf3_hq): Tweak attribute.
26338         (sqrttf2_hq): Likewise.
26339
26340 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26341
26342         * calls.c (store_one_arg): Remove incorrect const qualification on the
26343         type of the temporary.
26344         * cfgexpand.c (expand_return): Likewise.
26345         * expr.c (expand_constructor): Likewise.
26346         (expand_expr_real_1): Likewise.
26347
26348 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
26349
26350         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
26351         of parts.
26352
26353 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
26354
26355         PR target/60039
26356         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
26357
26358 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
26359
26360         * config/arm/aarch-common-protos.h
26361         (alu_cost_table): Fix spelling of "extend".
26362         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
26363
26364 2014-03-19  Richard Biener  <rguenther@suse.de>
26365
26366         PR middle-end/60553
26367         * tree-core.h (tree_type_common): Re-order pointer members
26368         to reduce recursion depth during GC walks.
26369
26370 2014-03-19  Marek Polacek  <polacek@redhat.com>
26371
26372         PR sanitizer/60569
26373         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
26374         before accessing it.
26375
26376 2014-03-19  Richard Biener  <rguenther@suse.de>
26377
26378         PR lto/59543
26379         * lto-streamer-in.c (input_function): In WPA stage do not drop
26380         debug stmts.
26381
26382 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
26383
26384         PR tree-optimization/60559
26385         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
26386         with build_zero_cst assignment.
26387
26388 2014-03-18  Kai Tietz  <ktietz@redhat.com>
26389
26390         PR rtl-optimization/56356
26391         * sdbout.c (sdbout_parms): Verify that parms'
26392         incoming argument is valid.
26393         (sdbout_reg_parms): Likewise.
26394
26395 2014-03-18  Richard Henderson  <rth@redhat.com>
26396
26397         PR target/60562
26398         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
26399         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
26400         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
26401
26402 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
26403
26404         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
26405         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
26406         Italicize plugin event names in description.  Explain that
26407         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
26408         Remind that no GCC functions should be called after PLUGIN_FINISH.
26409         Explain what pragmas with expansion are.
26410
26411 2014-03-18  Martin Liska  <mliska@suse.cz>
26412
26413         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
26414         gimple call statement is update.
26415         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
26416         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
26417
26418 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
26419
26420         PR sanitizer/60557
26421         * ubsan.c (ubsan_instrument_unreachable): Call
26422         initialize_sanitizer_builtins.
26423         (ubsan_pass): Likewise.
26424
26425         PR sanitizer/60535
26426         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
26427         varpool_finalize_decl instead of rest_of_decl_compilation.
26428
26429 2014-03-18  Richard Biener  <rguenther@suse.de>
26430
26431         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
26432         by using bitmap_and_compl instead of bitmap_and_compl_into.
26433         (df_rd_transfer_function): Likewise.
26434
26435 2014-03-18  Richard Biener  <rguenther@suse.de>
26436
26437         * doc/lto.texi (fresolution): Fix typo.
26438
26439 2014-03-18  Richard Biener  <rguenther@suse.de>
26440
26441         * doc/invoke.texi (flto): Update for changes in 4.9.
26442
26443 2014-03-18  Richard Biener  <rguenther@suse.de>
26444
26445         * doc/loop.texi: Remove section on the removed lambda framework.
26446         Update loop docs with recent changes in preserving loop structure.
26447
26448 2014-03-18  Richard Biener  <rguenther@suse.de>
26449
26450         * doc/lto.texi (-fresolution): Document.
26451
26452 2014-03-18  Richard Biener  <rguenther@suse.de>
26453
26454         * doc/contrib.texi: Adjust my name.
26455
26456 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
26457
26458         PR ipa/58721
26459         * internal-fn.c: Include diagnostic-core.h.
26460         (expand_BUILTIN_EXPECT): New function.
26461         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
26462         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
26463         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
26464         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
26465         IFN_BUILTIN_EXPECT.
26466         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
26467         Revert 3 argument __builtin_expect code.
26468         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
26469         * gimple-fold.c (gimple_fold_call): Likewise.
26470         * tree.h (fold_builtin_expect): New prototype.
26471         * builtins.c (build_builtin_expect_predicate): Add predictor
26472         argument, if non-NULL, create 3 argument __builtin_expect.
26473         (fold_builtin_expect): No longer static.  Add ARG2 argument,
26474         pass it through to build_builtin_expect_predicate.
26475         (fold_builtin_2): Adjust caller.
26476         (fold_builtin_3): Handle BUILT_IN_EXPECT.
26477         * internal-fn.def (BUILTIN_EXPECT): New.
26478
26479 2014-03-18  Tobias Burnus  <burnus@net-b.de>
26480
26481         PR ipa/58721
26482         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
26483         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
26484         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
26485
26486 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
26487
26488         PR ipa/58721
26489         * predict.c (combine_predictions_for_bb): Fix up formatting.
26490         (expr_expected_value_1, expr_expected_value): Add predictor argument,
26491         fill what it points to if non-NULL.
26492         (tree_predict_by_opcode): Adjust caller, use the predictor.
26493         * predict.def (PRED_COMPARE_AND_SWAP): Add.
26494
26495 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
26496
26497         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
26498         proper constant for the store mode.
26499
26500 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
26501
26502         * symtab.c (change_decl_assembler_name): Fix transparent alias
26503         chain construction.
26504
26505 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
26506
26507         * config/aarch64/aarch64.c: Correct the comments about the
26508         aarch64 stack layout.
26509
26510 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
26511
26512         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
26513         check for GF_OMP_FOR_KIND_FOR.
26514
26515 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
26516
26517         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
26518         ymm and zmm register names.
26519
26520 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
26521
26522         PR target/60516
26523         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
26524         note creation for the 2010-08-31 changes.
26525
26526 2014-03-17  Marek Polacek  <polacek@redhat.com>
26527
26528         PR middle-end/60534
26529         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
26530         as -fno-tree-loop-vectorize.
26531         (expand_omp_simd): Likewise.
26532
26533 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
26534
26535         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
26536         (eligible_for_call_delay): New prototype.
26537         * config/sparc/sparc.c (tls_call_delay): Rename into...
26538         (eligible_for_call_delay): ...this.  Return false if the instruction
26539         cannot be put in the delay slot of a branch.
26540         (eligible_for_restore_insn): Simplify.
26541         (eligible_for_return_delay): Return false if the instruction cannot be
26542         put in the delay slot of a branch and simplify.
26543         (eligible_for_sibcall_delay): Return false if the instruction cannot be
26544         put in the delay slot of a branch.
26545         * config/sparc/sparc.md (fix_ut699): New attribute.
26546         (tls_call_delay): Delete.
26547         (in_call_delay): Reimplement.
26548         (eligible_for_sibcall_delay): Rename into...
26549         (in_sibcall_delay): ...this.
26550         (eligible_for_return_delay): Rename into...
26551         (in_return_delay): ...this.
26552         (in_branch_delay): Reimplement.
26553         (in_uncond_branch_delay): Delete.
26554         (in_annul_branch_delay): Delete.
26555
26556 2014-03-14  Richard Henderson  <rth@redhat.com>
26557
26558         PR target/60525
26559         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
26560         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
26561         (*floathi<X87MODEF>2_i387_with_temp): Remove.
26562         (floathi splitters): Remove.
26563         (float<SWI48x>xf2): New pattern.
26564         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
26565         code that tried to handle DImode for 32-bit, but which was excluded
26566         by the pattern's condition.  Drop allocation of stack temporary.
26567         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
26568         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
26569         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
26570         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
26571         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
26572         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
26573         (*float<SWI48><MODEF>2_sse_interunit): Remove.
26574         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
26575         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
26576         (*float<SWI48x><X87MODEF>2_i387): Remove.
26577         (all float _with_temp splitters): Remove.
26578         (*float<SWI48x><MODEF>2_i387): New pattern.
26579         (*float<SWI48><MODEF>2_sse): New pattern.
26580         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
26581         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
26582
26583 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
26584             Marek Polacek  <polacek@redhat.com>
26585
26586         PR middle-end/60484
26587         * common.opt (dump_base_name_prefixed): New Variable.
26588         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
26589         if x_dump_base_name_prefixed is already set, set it at the end.
26590
26591 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
26592
26593         PR rtl-optimization/60508
26594         * lra-constraints.c (get_reload_reg): Add new parameter
26595         in_subreg_p.
26596         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
26597         Pass the new parameter values.
26598
26599 2014-03-14  Richard Biener  <rguenther@suse.de>
26600
26601         * common.opt: Revert unintented changes from r205065.
26602         * opts.c: Likewise.
26603
26604 2014-03-14  Richard Biener  <rguenther@suse.de>
26605
26606         PR middle-end/60518
26607         * cfghooks.c (split_block): Properly adjust all loops the
26608         block was a latch of.
26609
26610 2014-03-14  Martin Jambor  <mjambor@suse.cz>
26611
26612         PR lto/60461
26613         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
26614         and simplify it.
26615
26616 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
26617
26618         PR target/59396
26619         * config/avr/avr.c (avr_set_current_function): Pass function name
26620         through default_strip_name_encoding before sanity checking instead
26621         of skipping the first char of the assembler name.
26622
26623 2014-03-13  Richard Henderson  <rth@redhat.com>
26624
26625         PR debug/60438
26626         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
26627         (ix86_force_to_memory, ix86_free_from_memory): Remove.
26628         * config/i386/i386-protos.h: Likewise.
26629         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
26630         in the expander instead of a splitter.
26631         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
26632         any possibility of requiring a memory.
26633         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
26634         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
26635         (fp branch splitters): Update for ix86_split_fp_branch.
26636         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
26637         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
26638         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
26639         (*fop_<MODEF>_2_i387): Remove f/r alternative.
26640         (*fop_<MODEF>_3_i387): Likewise.
26641         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
26642         (splitters for the fop_* register patterns): Remove.
26643         (fscalexf4_i387): Rename from *fscalexf4_i387.
26644         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
26645
26646 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
26647
26648         PR tree-optimization/59779
26649         * tree-dfa.c (get_ref_base_and_extent): Use double_int
26650         type for bitsize and maxsize instead of HOST_WIDE_INT.
26651
26652 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
26653
26654         PR rtl-optimization/57320
26655         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
26656         the CFG after thread_prologue_and_epilogue_insns.
26657
26658 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
26659
26660         PR rtl-optimization/57189
26661         * lra-constraints.c (process_alt_operands): Disfavor spilling
26662         vector pseudos.
26663
26664 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
26665
26666         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
26667
26668 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
26669
26670         PR tree-optimization/59025
26671         PR middle-end/60418
26672         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
26673         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
26674
26675 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
26676
26677         PR target/60486
26678         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
26679         calls of avr_out_plus_1.
26680
26681 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
26682
26683         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
26684         BB's single pred and update the father loop's latch info later.
26685
26686 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
26687
26688         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
26689         (VEC_M): Likewise.
26690         (VEC_N): Likewise.
26691         (VEC_R): Likewise.
26692         (VEC_base): Likewise.
26693         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
26694         registers, we need to swap double words in little endian mode.
26695
26696         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
26697         to be a container mode for 128-bit integer operations added in ISA
26698         2.07.  Unlike TImode and PTImode, the preferred register set is
26699         the Altivec/VMX registers for the 128-bit operations.
26700
26701         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
26702         declarations.
26703         (rs6000_split_128bit_ok_p): Likewise.
26704
26705         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
26706         macros for creating ISA 2.07 normal and overloaded builtin
26707         functions with 3 arguments.
26708         (BU_P8V_OVERLOAD_3): Likewise.
26709         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
26710         for use as overloaded functions.
26711         (VPERM_1TI_UNS): Likewise.
26712         (VSEL_1TI): Likewise.
26713         (VSEL_1TI_UNS): Likewise.
26714         (ST_INTERNAL_1ti): Likewise.
26715         (LD_INTERNAL_1ti): Likewise.
26716         (XXSEL_1TI): Likewise.
26717         (XXSEL_1TI_UNS): Likewise.
26718         (VPERM_1TI): Likewise.
26719         (VPERM_1TI_UNS): Likewise.
26720         (XXPERMDI_1TI): Likewise.
26721         (SET_1TI): Likewise.
26722         (LXVD2X_V1TI): Likewise.
26723         (STXVD2X_V1TI): Likewise.
26724         (VEC_INIT_V1TI): Likewise.
26725         (VEC_SET_V1TI): Likewise.
26726         (VEC_EXT_V1TI): Likewise.
26727         (EQV_V1TI): Likewise.
26728         (NAND_V1TI): Likewise.
26729         (ORC_V1TI): Likewise.
26730         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
26731         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
26732         overloaded builtin.
26733         (VADDUQM): Likewise.
26734         (VSUBCUQ): Likewise.
26735         (VADDEUQM): Likewise.
26736         (VADDECUQ): Likewise.
26737         (VSUBEUQM): Likewise.
26738         (VSUBECUQ): Likewise.
26739
26740         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
26741         __int128_t and __uint128_t types.
26742         (__uint128_type): Likewise.
26743         (altivec_categorize_keyword): Add support for vector __int128_t,
26744         vector __uint128_t, vector __int128, and vector unsigned __int128
26745         as a container type for TImode operations that need to be done in
26746         VSX/Altivec registers.
26747         (rs6000_macro_to_expand): Likewise.
26748         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
26749         to support 128-bit integer instructions vaddcuq, vadduqm,
26750         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
26751         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
26752
26753         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
26754         for V1TImode, and set up preferences to use VSX/Altivec registers.
26755         Setup VSX reload handlers.
26756         (rs6000_debug_reg_global): Likewise.
26757         (rs6000_init_hard_regno_mode_ok): Likewise.
26758         (rs6000_preferred_simd_mode): Likewise.
26759         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
26760         (easy_altivec_constant): Likewise.
26761         (output_vec_const_move): Likewise.
26762         (rs6000_expand_vector_set): Convert V1TImode set and extract to
26763         simple move.
26764         (rs6000_expand_vector_extract): Likewise.
26765         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
26766         addressing.
26767         (rs6000_const_vec): Add support for V1TImode.
26768         (rs6000_emit_le_vsx_load): Swap double words when loading or
26769         storing TImode/V1TImode.
26770         (rs6000_emit_le_vsx_store): Likewise.
26771         (rs6000_emit_le_vsx_move): Likewise.
26772         (rs6000_emit_move): Add support for V1TImode.
26773         (altivec_expand_ld_builtin): Likewise.
26774         (altivec_expand_st_builtin): Likewise.
26775         (altivec_expand_vec_init_builtin): Likewise.
26776         (altivec_expand_builtin): Likewise.
26777         (rs6000_init_builtins): Add support for V1TImode type.  Add
26778         support for ISA 2.07 128-bit integer builtins.  Define type names
26779         for the VSX/Altivec vector types.
26780         (altivec_init_builtins): Add support for overloaded vector
26781         functions with V1TImode type.
26782         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
26783         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
26784         external function.
26785         (rs6000_split_128bit_ok_p): Likewise.
26786         (rs6000_handle_altivec_attribute): Create V1TImode from vector
26787         __int128_t and vector __uint128_t.
26788
26789         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
26790         and mode attributes.
26791         (VSX_M): Likewise.
26792         (VSX_M2): Likewise.
26793         (VSm): Likewise.
26794         (VSs): Likewise.
26795         (VSr): Likewise.
26796         (VSv): Likewise.
26797         (VS_scalar): Likewise.
26798         (VS_double): Likewise.
26799         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
26800
26801         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
26802         we support the ISA 2.07 128-bit integer arithmetic instructions.
26803         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
26804         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
26805         and TImode types for use with the builtin functions.
26806         (V1TI_type_node): Likewise.
26807         (unsigned_V1TI_type_node): Likewise.
26808         (intTI_type_internal_node): Likewise.
26809         (uintTI_type_internal_node): Likewise.
26810
26811         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
26812         128-bit builtin functions.
26813         (UNSPEC_VADDEUQM): Likewise.
26814         (UNSPEC_VADDECUQ): Likewise.
26815         (UNSPEC_VSUBCUQ): Likewise.
26816         (UNSPEC_VSUBEUQM): Likewise.
26817         (UNSPEC_VSUBECUQ): Likewise.
26818         (VM): Add V1TImode to vector mode iterators.
26819         (VM2): Likewise.
26820         (VI_unit): Likewise.
26821         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
26822         (altivec_vaddcuq): Likewise.
26823         (altivec_vsubuqm): Likewise.
26824         (altivec_vsubcuq): Likewise.
26825         (altivec_vaddeuqm): Likewise.
26826         (altivec_vaddecuq): Likewise.
26827         (altivec_vsubeuqm): Likewise.
26828         (altivec_vsubecuq): Likewise.
26829
26830         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
26831         mode iterators.
26832         (BOOL_128): Likewise.
26833         (BOOL_REGS_OUTPUT): Likewise.
26834         (BOOL_REGS_OP1): Likewise.
26835         (BOOL_REGS_OP2): Likewise.
26836         (BOOL_REGS_UNARY): Likewise.
26837         (BOOL_REGS_AND_CR0): Likewise.
26838
26839         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
26840         128-bit integer builtin support.
26841         (vec_vadduqm): Likewise.
26842         (vec_vaddecuq): Likewise.
26843         (vec_vaddeuqm): Likewise.
26844         (vec_vsubecuq): Likewise.
26845         (vec_vsubeuqm): Likewise.
26846         (vec_vsubcuq): Likewise.
26847         (vec_vsubuqm): Likewise.
26848
26849         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
26850         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
26851         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
26852         128-bit integer add/subtract to ISA 2.07.
26853
26854 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
26855
26856         * config/arc/arc.c (arc_predicate_delay_insns):
26857         Fix third argument passed to conditionalize_nonjump.
26858
26859 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
26860
26861         * config/aarch64/aarch64-builtins.c
26862         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
26863         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
26864         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
26865         instead of __builtin_lfloor.
26866         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
26867
26868 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
26869
26870         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
26871         (tree_ssa_ifcombine_bb_1): New function.
26872         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
26873         is an empty forwarder block to then_bb or vice versa and then_bb
26874         and else_bb are effectively swapped.
26875
26876 2014-03-12  Christian Bruel  <christian.bruel@st.com>
26877
26878         PR target/60264
26879         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
26880         REG_CFA_DEF_CFA note.
26881         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
26882         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
26883
26884 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26885
26886         PR tree-optimization/60454
26887         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
26888
26889 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26890
26891         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
26892         Do not define target_cpu_default2 to generic.
26893         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
26894         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
26895         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
26896
26897 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
26898             Marc Glisse  <marc.glisse@inria.fr>
26899
26900         PR tree-optimization/60502
26901         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
26902         instead of build_low_bits_mask.
26903
26904 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
26905
26906         PR middle-end/60482
26907         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
26908         if there are multiple uses, but op doesn't live on E edge.
26909         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
26910         clobber stmts before __builtin_unreachable.
26911
26912 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
26913
26914         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
26915         hard_frame_pointer_rtx.
26916         * cse.c (cse_insn): Remove volatile check.
26917         * cselib.c (cselib_process_insn): Likewise.
26918         * dse.c (scan_insn): Likewise.
26919
26920 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
26921
26922         * config/arc/arc.c (conditionalize_nonjump): New function,
26923         broken out of ...
26924         (arc_ifcvt): ... this.
26925         (arc_predicate_delay_insns): Use it.
26926
26927 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
26928
26929         * config/arc/predicates.md (extend_operand): During/after reload,
26930         allow const_int_operand.
26931         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
26932         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
26933         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
26934         to "i".
26935         (umulsi3_highpart_i): Likewise.
26936
26937 2014-03-11  Richard Biener  <rguenther@suse.de>
26938
26939         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
26940         Add asserts to guard possible wrong-code bugs.
26941
26942 2014-03-11  Richard Biener  <rguenther@suse.de>
26943
26944         PR tree-optimization/60429
26945         PR tree-optimization/60485
26946         * tree-ssa-structalias.c (set_union_with_increment): Properly
26947         take into account all fields that overlap the shifted vars.
26948         (do_sd_constraint): Likewise.
26949         (do_ds_constraint): Likewise.
26950         (get_constraint_for_ptr_offset): Likewise.
26951
26952 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
26953
26954         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
26955         (nios2_compute_frame_layout):
26956         Add calculation of cfun->machine->fp_save_offset.
26957         (nios2_expand_prologue): Correct setting of frame pointer register
26958         in prologue.
26959         (nios2_expand_epilogue): Update recovery of stack pointer from
26960         frame pointer accordingly.
26961         (nios2_initial_elimination_offset): Update calculation of offset
26962         for eliminating to HARD_FRAME_POINTER_REGNUM.
26963
26964 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
26965
26966         PR ipa/60457
26967         * ipa.c (symtab_remove_unreachable_nodes): Don't call
26968         cgraph_get_create_node on VAR_DECLs.
26969
26970 2014-03-10  Richard Biener  <rguenther@suse.de>
26971
26972         PR middle-end/60474
26973         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
26974
26975 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
26976
26977         * config/vms/vms.opt (vms_float_format): New variable.
26978
26979 2014-03-08  Tobias Burnus  <burnus@net-b.de>
26980
26981         * doc/invoke.texi (-fcilkplus): Update implementation status.
26982
26983 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
26984             Richard Biener  <rguenther@suse.de>
26985
26986         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
26987         consistently accross all TUs.
26988         (run_gcc): Enable -fshort-double automatically at link at link-time
26989         and disallow override.
26990
26991 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
26992
26993         PR target/58271
26994         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
26995         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
26996         if they can't be used.
26997
26998 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26999
27000         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
27001         for Solaris 11/x86 ld.
27002         * configure: Regenerate.
27003
27004 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27005
27006         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
27007         (LIB_TLS_SPEC): Save as ld_tls_libs.
27008         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
27009         (HAVE_AS_IX86_TLSLDM): New test.
27010         * configure, config.in: Regenerate.
27011         * config/i386/i386.c (legitimize_tls_address): Fall back to
27012         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
27013         cannot support TLS_MODEL_LOCAL_DYNAMIC.
27014         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
27015         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
27016
27017 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
27018
27019         * common.opt (fira-loop-pressure): Mark as optimization.
27020
27021 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
27022
27023         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
27024         an OpenMP mappable type.
27025
27026 2014-03-06  Matthias Klose  <doko@ubuntu.com>
27027
27028         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
27029         MULTILIB_OSDIRNAMES is not defined.
27030
27031 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
27032             Meador Inge  <meadori@codesourcery.com>
27033
27034         PR target/58595
27035         * config/arm/arm.c (arm_tls_symbol_p): Remove.
27036         (arm_legitimize_address): Call legitimize_tls_address for any
27037         arm_tls_referenced_p expression, handle constant addend.  Call it
27038         before testing for !TARGET_ARM.
27039         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
27040
27041 2014-03-06  Richard Biener  <rguenther@suse.de>
27042
27043         PR middle-end/60445
27044         PR lto/60424
27045         PR lto/60427
27046         Revert
27047         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
27048
27049         * tree-streamer.c (record_common_node): Assert we don't record
27050         nodes with type double.
27051         (preload_common_node): Skip type double, complex double and double
27052         pointer since it is now frontend dependent due to fshort-double option.
27053
27054 2014-03-06  Richard Biener  <rguenther@suse.de>
27055
27056         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
27057         or -fno-lto is specified and the linker has full plugin support.
27058         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
27059         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
27060         * lto-wrapper.c (merge_and_complain): Merge compile-time
27061         optimization levels.
27062         (run_gcc): And pass it through to the link options.
27063
27064 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
27065
27066         PR debug/60381
27067         Revert:
27068         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27069         PR debug/59992
27070         * cselib.c (remove_useless_values): Skip to avoid quadratic
27071         behavior if the condition moved from...
27072         (cselib_process_insn): ... here holds.
27073
27074 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
27075
27076         PR plugins/59335
27077         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
27078         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
27079
27080         PR plugins/59335
27081         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
27082         (TM_H): Add x86-tune.def.
27083
27084 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27085
27086         * config/aarch64/aarch64.c (generic_tunings):
27087         Use cortexa57_extra_costs.
27088
27089 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
27090
27091         PR lto/60404
27092         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
27093         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
27094         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
27095         cost for in_lto_p.
27096
27097 2014-03-04  Heiher  <r@hev.cc>
27098
27099         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
27100         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
27101
27102 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
27103
27104         * config/i386/predicates.md (const2356_operand): Change to ...
27105         (const2367_operand): ... this.
27106         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
27107         const2367_operand.
27108         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
27109         (*avx512pf_scatterpf<mode>sf): Ditto.
27110         (avx512pf_scatterpf<mode>df): Ditto.
27111         (*avx512pf_scatterpf<mode>df_mask): Ditto.
27112         (*avx512pf_scatterpf<mode>df): Ditto.
27113         * config/i386/i386.c (ix86_expand_builtin): Update
27114         incorrect hint operand error message.
27115
27116 2014-03-04  Richard Biener  <rguenther@suse.de>
27117
27118         * lto-section-in.c (lto_get_section_data): Fix const cast.
27119
27120 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
27121
27122         * tree-streamer.c (record_common_node): Assert we don't record
27123         nodes with type double.
27124         (preload_common_node): Skip type double, complex double and double
27125         pointer since it is now frontend dependent due to fshort-double option.
27126
27127 2014-03-04  Richard Biener  <rguenther@suse.de>
27128
27129         PR lto/60405
27130         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
27131         (lto_input_toplevel_asms): Likewise.
27132         * lto-section-in.c (lto_get_section_data): Instead do it here
27133         for every section.
27134
27135 2014-03-04  Richard Biener  <rguenther@suse.de>
27136
27137         PR tree-optimization/60382
27138         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
27139         dead PHIs a reduction.
27140
27141 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
27142
27143         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
27144         hint value.
27145         (_mm_prefetch): Move out of GCC target("sse") pragma.
27146         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
27147         GCC target("prfchw") pragma.
27148         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
27149         for locality <= 2.
27150         * config/i386/i386.c (ix86_option_override_internal): Enable
27151         -mprfchw with -mprefetchwt1.
27152
27153 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
27154
27155         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
27156         Mark as varying.
27157
27158 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
27159
27160         * opts.h (CL_PCH_IGNORE): Define.
27161         * targhooks.c (option_affects_pch_p):
27162         Return false for options that have CL_PCH_IGNORE set.
27163         * opt-functions.awk: Process PchIgnore.
27164         * doc/options.texi: Document PchIgnore.
27165
27166         * config/arc/arc.opt (misize): Add PchIgnore property.
27167
27168 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27169
27170         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
27171         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
27172         constraint on constants to permit them being loaded into
27173         GENERAL_REGS or BASE_REGS.
27174
27175 2014-03-03  Nick Clifton  <nickc@redhat.com>
27176
27177         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
27178         anti-cacnonical alternatives.
27179         (negandhi3_real): New pattern.
27180         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
27181
27182 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
27183
27184         * config/avr/avr-mcus.def: Remove atxmega16x1.
27185         * config/avr/avr-tables.opt: Regenerate.
27186         * config/avr/t-multilib: Regenerate.
27187         * doc/avr-mmcu.texi: Regenerate.
27188
27189 2014-03-03  Tobias Grosser  <tobias@grosser.es>
27190             Mircea Namolaru  <mircea.namolaru@inria.fr>
27191
27192         PR tree-optimization/58028
27193         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
27194         scalar dimensions.
27195
27196 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27197
27198         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
27199         not handled by recognizers.
27200
27201 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
27202
27203         PR middle-end/60175
27204         * function.c (expand_function_end): Don't emit
27205         clobber_return_register sequence if clobber_after is a BARRIER.
27206         * cfgexpand.c (construct_exit_block): Append instructions before
27207         return_label to prev_bb.
27208
27209 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27210
27211         * config/rs6000/constraints.md: Document reserved use of "wc".
27212
27213 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
27214
27215         PR ipa/60150
27216         * ipa.c (function_and_variable_visibility): When dissolving comdat
27217         group, also set all symbols to local.
27218
27219 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
27220
27221         PR ipa/60306
27222
27223         Revert:
27224         2013-12-14  Jan Hubicka  <jh@suse.cz>
27225         PR middle-end/58477
27226         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
27227
27228 2014-03-02  Jon Beniston  <jon@beniston.com>
27229
27230         PR bootstrap/48230
27231         PR bootstrap/50927
27232         PR bootstrap/52466
27233         PR target/46898
27234         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
27235           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
27236         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
27237         (simple_return, *simple_return): New patterns
27238         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
27239         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
27240
27241 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
27242
27243         * dwarf2out.c (gen_subprogram_die): Tidy.
27244
27245 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
27246
27247         PR target/60071
27248         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
27249         (*mov_t_msb_neg_negc): ... this new insn.
27250
27251 2014-02-28  Jason Merrill  <jason@redhat.com>
27252
27253         PR c++/58678
27254         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
27255         function.
27256
27257 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
27258
27259         PR c++/60314
27260         * dwarf2out.c (decltype_auto_die): New static.
27261         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
27262         (gen_type_die_with_usage): Handle 'decltype(auto)'.
27263         (is_cxx_auto): Likewise.
27264
27265 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
27266
27267         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
27268         we are not using general regs only.
27269
27270 2014-02-28  Richard Biener  <rguenther@suse.de>
27271
27272         PR target/60280
27273         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
27274         previous fix and only allow to remove trivial pre-headers
27275         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
27276         (remove_forwarder_block): Properly update the latch of a loop.
27277
27278 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27279
27280         PR debug/59992
27281         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
27282         (cselib_preserved_hash_table): New.
27283         (preserve_constants_and_equivs): Move preserved vals to it.
27284         (cselib_find_slot): Look it up first.
27285         (cselib_init): Initialize it.
27286         (cselib_finish): Release it.
27287         (dump_cselib_table): Dump it.
27288
27289 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27290
27291         PR debug/59992
27292         * cselib.c (remove_useless_values): Skip to avoid quadratic
27293         behavior if the condition moved from...
27294         (cselib_process_insn): ... here holds.
27295
27296 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27297
27298         PR debug/57232
27299         * var-tracking.c (vt_initialize): Apply the same condition to
27300         preserve the CFA base value.
27301
27302 2014-02-28  Joey Ye  <joey.ye@arm.com>
27303
27304         PR target/PR60169
27305         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
27306         if reload in progress or completed.
27307
27308 2014-02-28  Tobias Burnus  <burnus@net-b.de>
27309
27310         PR middle-end/60147
27311         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
27312         NAMELIST_DECL.
27313
27314 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
27315
27316         * doc/tm.texi.in (Condition Code Status): Update documention for
27317         relative locations of cc0-setter and cc0-user.
27318
27319 2014-02-27  Jeff Law  <law@redhat.com>
27320
27321         PR rtl-optimization/52714
27322         * combine.c (try_combine): When splitting an unrecognized PARALLEL
27323         into two independent simple sets, if I3 is a jump, ensure the
27324         pattern we place into I3 is a (set (pc) ...).
27325
27326 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
27327             Jeff Law  <law@redhat.com>
27328
27329         PR rtl-optimization/49847
27330         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
27331         are in different blocks.
27332         * doc/tm.texi (Condition Code Status): Update documention for
27333         relative locations of cc0-setter and cc0-user.
27334
27335 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
27336
27337         PR target/59222
27338         * lra.c (lra_emit_add): Check SUBREG too.
27339
27340 2014-02-27  Andreas Schwab  <schwab@suse.de>
27341
27342         * config/m68k/m68k.c (m68k_option_override): Disable
27343         -flive-range-shrinkage for classic m68k.
27344         (m68k_override_options_after_change): Likewise.
27345
27346 2014-02-27  Marek Polacek  <polacek@redhat.com>
27347
27348         PR middle-end/59223
27349         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
27350         -Wmaybe-uninitialized.
27351
27352 2014-02-27  Alan Modra  <amodra@gmail.com>
27353
27354         PR target/57936
27355         * reload1.c (emit_input_reload_insns): When reload_override_in,
27356         set old to rl->in_reg when rl->in_reg is a subreg.
27357
27358 2014-02-26  Richard Biener  <rguenther@suse.de>
27359
27360         PR bootstrap/60343
27361         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
27362
27363 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
27364
27365         * common/config/i386/predicates.md (const1256_operand): Remove.
27366         (const2356_operand): New.
27367         (const_1_to_2_operand): Remove.
27368         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
27369         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
27370         (*avx512pf_gatherpf<mode>sf): Ditto.
27371         (avx512pf_gatherpf<mode>df): Ditto.
27372         (*avx512pf_gatherpf<mode>df_mask): Ditto.
27373         (*avx512pf_gatherpf<mode>df): Ditto.
27374         (avx512pf_scatterpf<mode>sf): Ditto.
27375         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
27376         (*avx512pf_scatterpf<mode>sf): Ditto.
27377         (avx512pf_scatterpf<mode>df): Ditto.
27378         (*avx512pf_scatterpf<mode>df_mask): Ditto.
27379         (*avx512pf_scatterpf<mode>df): Ditto.
27380         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
27381
27382 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
27383
27384         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
27385         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
27386         (_mm512_mask_testn_epi64_mask): Move to ...
27387         * config/i386/avx512cdintrin.h: Here.
27388         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
27389         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
27390         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
27391         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
27392         TARGET_AVX512F from TARGET_AVX512CD.
27393
27394 2014-02-26  Richard Biener  <rguenther@suse.de>
27395
27396         PR ipa/60327
27397         * ipa.c (walk_polymorphic_call_targets): Properly guard
27398         call to inline_update_overall_summary.
27399
27400 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
27401
27402         PR target/60280
27403         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
27404         and latches only if requested.  Fix latch if it is removed.
27405         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
27406         LOOPS_HAVE_PREHEADERS.
27407
27408 2014-02-25  Andrew Pinski  <apinski@cavium.com>
27409
27410         * builtins.c (expand_builtin_thread_pointer): Create a new target
27411         when the target is NULL.
27412
27413 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
27414
27415         PR rtl-optimization/60317
27416         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
27417         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
27418         * lra-assigns.c: Include params.h.
27419         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
27420         other reload pseudos considerations.
27421
27422 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27423
27424         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
27425         to use canonical form for nor<mode>3.
27426
27427 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27428
27429         PR target/55426
27430         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
27431         conversions.
27432
27433 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
27434
27435         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
27436         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
27437         (ix86_handle_option): Handle OPT_mprefetchwt1.
27438         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
27439         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
27440         PREFETCHWT1 CPUID.
27441         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
27442         OPTION_MASK_ISA_PREFETCHWT1.
27443         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
27444         (PTA_PREFETCHWT1): New.
27445         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
27446         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
27447         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
27448         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
27449         (*prefetch_avx512pf_<mode>_: Change into ...
27450         (*prefetch_prefetchwt1_<mode>: This.
27451         * config/i386/i386.opt (mprefetchwt1): New.
27452         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
27453         (_mm_prefetch): Handle intent to write.
27454         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
27455
27456 2014-02-25  Richard Biener  <rguenther@suse.de>
27457
27458         PR middle-end/60291
27459         * emit-rtl.c (mem_attrs_htab): Remove.
27460         (mem_attrs_htab_hash): Likewise.
27461         (mem_attrs_htab_eq): Likewise.
27462         (set_mem_attrs): Always allocate new mem-attrs when something changed.
27463         (init_emit_once): Do not allocate mem_attrs_htab.
27464
27465 2014-02-25  Richard Biener  <rguenther@suse.de>
27466
27467         PR lto/60319
27468         * lto-opts.c (lto_write_options): Output non-explicit conservative
27469         -fwrapv, -fno-trapv and -fno-strict-overflow.
27470         * lto-wrapper.c (merge_and_complain): Handle merging those options.
27471         (run_gcc): And pass them through.
27472
27473 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
27474
27475         * sel-sched.c (calculate_new_fences): New parameter ptime.
27476         Calculate it as a maximum over all fence cycles.
27477         (sel_sched_region_2): Adjust the call to calculate_new_fences.
27478         Print the final schedule timing when sched_verbose.
27479
27480 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
27481
27482         PR rtl-optimization/60292
27483         * sel-sched.c (fill_vec_av_set): Do not reset target availability
27484         bit fot the fence instruction.
27485
27486 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
27487
27488         * calls.h: Fix typo in comment.
27489
27490 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
27491
27492         * config/pa/pa.c (pa_output_move_double): Don't valididate when
27493         adjusting offsetable addresses.
27494
27495 2014-02-24  Guozhi Wei  <carrot@google.com>
27496
27497         * sparseset.h (sparseset_pop): Fix the wrong index.
27498
27499 2014-02-24  Walter Lee  <walt@tilera.com>
27500
27501         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
27502         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
27503         triplet.
27504         * common/config/tilegx/tilegx-common.c
27505         (TARGET_DEFAULT_TARGET_FLAGS): Define.
27506         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
27507         (LINK_SPEC): Ditto.
27508         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
27509         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
27510         (tilegx_gimplify_va_arg_expr): Handle big endian.
27511         (tilegx_expand_unaligned_load): Ditto.
27512         (tilegx_expand_unaligned_store): Ditto.
27513         (TARGET_RETURN_IN_MSB): New.
27514         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
27515         (TARGET_ENDIAN_DEFAULT): New.
27516         (TARGET_BIG_ENDIAN): Handle big endian.
27517         (BYTES_BIG_ENDIAN): Ditto.
27518         (WORDS_BIG_ENDIAN): Ditto.
27519         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
27520         (ENDIAN_SPEC): New.
27521         (EXTRA_SPECS): New.
27522         * config/tilegx/tilegx.md (extv): Handle big endian.
27523         (extzv): Ditto.
27524         (insn_st<n>): Ditto.
27525         (insn_st<n>_add<bitsuffix>): Ditto.
27526         (insn_stnt<n>): Ditto.
27527         (insn_stnt<n>_add<bitsuffix>):Ditto.
27528         (vec_interleave_highv8qi): Handle big endian.
27529         (vec_interleave_highv8qi_be): New.
27530         (vec_interleave_highv8qi_le): New.
27531         (insn_v1int_h): Handle big endian.
27532         (vec_interleave_lowv8qi): Handle big endian.
27533         (vec_interleave_lowv8qi_be): New.
27534         (vec_interleave_lowv8qi_le): New.
27535         (insn_v1int_l): Handle big endian.
27536         (vec_interleave_highv4hi): Handle big endian.
27537         (vec_interleave_highv4hi_be): New.
27538         (vec_interleave_highv4hi_le): New.
27539         (insn_v2int_h): Handle big endian.
27540         (vec_interleave_lowv4hi): Handle big endian.
27541         (vec_interleave_lowv4hi_be): New.
27542         (vec_interleave_lowv4hi_le): New.
27543         (insn_v2int_l): Handle big endian.
27544         (vec_interleave_highv2si): Handle big endian.
27545         (vec_interleave_highv2si_be): New.
27546         (vec_interleave_highv2si_le): New.
27547         (insn_v4int_h): Handle big endian.
27548         (vec_interleave_lowv2si): Handle big endian.
27549         (vec_interleave_lowv2si_be): New.
27550         (vec_interleave_lowv2si_le): New.
27551         (insn_v4int_l): Handle big endian.
27552         * config/tilegx/tilegx.opt (mbig-endian): New option.
27553         (mlittle-endian): New option.
27554         * doc/install.texi: Document tilegxbe-linux.
27555         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
27556
27557 2014-02-24  Martin Jambor  <mjambor@suse.cz>
27558
27559         PR ipa/60266
27560         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
27561         there are no parameter descriptors.
27562
27563 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
27564
27565         PR rtl-optimization/60268
27566         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
27567         initialization to ...
27568         (sched_rgn_init): ... here.
27569         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
27570
27571 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
27572
27573         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
27574         names.
27575
27576 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
27577
27578         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
27579         definition.
27580
27581 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
27582
27583         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
27584         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
27585
27586 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
27587
27588         * config/microblaze/predicates.md: Add cmp_op predicate.
27589         * config/microblaze/microblaze.md: Add branch_compare instruction
27590         which uses cmp_op predicate and emits cmp insn before branch.
27591         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
27592         to microblaze_expand_conditional_branch and consolidate logic.
27593         (microblaze_expand_conditional_branch): emit branch_compare
27594         insn instead of handling cmp op separate from branch insn.
27595
27596 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27597
27598         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
27599         to permit subregs.
27600
27601 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27602
27603         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
27604         define_insn with define_expand and new define_insn
27605         *altivec_lve<VI_char>x_internal.
27606         (altivec_stve<VI_char>x): Replace define_insn with define_expand
27607         and new define_insn *altivec_stve<VI_char>x_internal.
27608         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
27609         prototype.
27610         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
27611         lve*x built-ins.
27612         (altivec_expand_stvex_be): New function.
27613
27614 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
27615
27616         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
27617         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
27618         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
27619         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
27620
27621 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
27622
27623         PR target/60298
27624         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
27625         instead of emit_move_insn.
27626
27627 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27628
27629         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
27630         vspltw with vsldoi.
27631         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
27632         gen_altivec_vsumsws.
27633
27634 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27635
27636         * config/rs6000/altivec.md (altivec_lvxl): Rename as
27637         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
27638         (altivec_lvxl_<mode>): New define_expand incorporating
27639         -maltivec=be semantics where needed.
27640         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
27641         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
27642         semantics where needed.
27643         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
27644         (altivec_stvx_<mode>): New define_expand incorporating
27645         -maltivec=be semantics where needed.
27646         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
27647         VM2 iterator instead of V4SI.
27648         (altivec_stvxl_<mode>): New define_expand incorporating
27649         -maltivec=be semantics where needed.
27650         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
27651         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
27652         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
27653         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
27654         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
27655         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
27656         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
27657         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
27658         ALTIVEC_BUILTIN_STVXL.
27659         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
27660         (altivec_expand_stvx_be): Likewise.
27661         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
27662         (altivec_expand_lvx_be): Likewise.
27663         (altivec_expand_stvx_be): Likewise.
27664         (altivec_expand_builtin): Add cases for
27665         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
27666         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
27667         (altivec_init_builtins): Add definitions for
27668         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
27669         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
27670
27671 2014-02-21  Catherine Moore  <clm@codesourcery.com>
27672
27673         * doc/invoke.texi (mvirt, mno-virt): Document.
27674         * config/mips/mips.opt (mvirt): New option.
27675         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
27676
27677 2014-02-21  Richard Biener  <rguenther@suse.de>
27678
27679         PR tree-optimization/60276
27680         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
27681         (STMT_VINFO_MIN_NEG_DIST): New macro.
27682         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
27683         STMT_VINFO_MIN_NEG_DIST.
27684         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
27685         made for negative dependence distances still hold.
27686
27687 2014-02-21  Richard Biener  <rguenther@suse.de>
27688
27689         PR middle-end/60291
27690         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
27691         DECL_INITIAL for globals not in the current function context.
27692
27693 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
27694
27695         PR tree-optimization/56490
27696         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
27697         * tree-ssa-uninit.c: Include params.h.
27698         (compute_control_dep_chain): Add num_calls argument, return false
27699         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
27700         num_calls to recursive call.
27701         (find_predicates): Change dep_chain into normal array,
27702         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
27703         variable and adjust compute_control_dep_chain caller.
27704         (find_def_preds): Likewise.
27705
27706 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
27707
27708         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
27709         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
27710
27711 2014-02-21  Nick Clifton  <nickc@redhat.com>
27712
27713         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
27714         (pushhi1): Likewise.
27715         (popqi1): Add mode to pre_dec.
27716         (pophi1): Likewise.
27717
27718 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
27719
27720         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
27721         mode for mask of V8SFmode permutation.
27722
27723 2014-02-20  Richard Henderson  <rth@redhat.com>
27724
27725         PR c++/60272
27726         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
27727         a new pseudo for OLDVAL.
27728
27729 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
27730
27731         PR target/57896
27732         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
27733         gen_reg_rtx if d->testing_p.
27734         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
27735         if d->testing_p and we will certainly return true.
27736         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
27737         if d->testing_p.
27738
27739 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
27740
27741         * emit-rtl.c (gen_reg_rtx): Assert that
27742         crtl->emit.regno_pointer_align_length is non-zero.
27743
27744 2014-02-20  Richard Henderson  <rth@redhat.com>
27745
27746         PR c++/60272
27747         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
27748         on failure the store back into EXPECT.
27749
27750 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
27751             Sandra Loosemore  <sandra@codesourcery.com>
27752
27753         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
27754         * config/nios2/nios2.c (nios2_function_profiler): Add
27755         -fPIC (flag_pic == 2) support.
27756         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
27757         (nios2_large_offset_p): New function.
27758         (nios2_unspec_reloc_p): Move up position, update to use
27759         nios2_large_offset_p.
27760         (nios2_unspec_address): Remove function.
27761         (nios2_unspec_offset): New function.
27762         (nios2_large_got_address): New function.
27763         (nios2_got_address): Add large offset support.
27764         (nios2_legitimize_tls_address): Update usage of removed and new
27765         functions.
27766         (nios2_symbol_binds_local_p): New function.
27767         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
27768         (nios2_legitimize_address): Update to use nios2_large_offset_p.
27769         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
27770         (nios2_print_operand): Merge H/L processing, add hiadj/lo
27771         processing for (const (unspec ...)).
27772         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
27773
27774 2014-02-20  Richard Biener  <rguenther@suse.de>
27775
27776         * tree-cfg.c (replace_uses_by): Mark altered BBs before
27777         doing the substitution.
27778         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
27779
27780 2014-02-20  Martin Jambor  <mjambor@suse.cz>
27781
27782         PR ipa/55260
27783         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
27784         info when checking whether lattices are bottom.
27785
27786 2014-02-20  Richard Biener  <rguenther@suse.de>
27787
27788         PR middle-end/60221
27789         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
27790         regions at -O0.
27791
27792 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
27793
27794         PR ipa/58555
27795         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
27796         parameter specifying the scaling.
27797         (inline_call): Update.
27798         (want_inline_recursively): Guard division by zero.
27799         (recursive_inlining): Update.
27800         * ipa-inline.h (clone_inlined_nodes): Update.
27801
27802 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
27803
27804         PR target/60204
27805         * config/i386/i386.c (classify_argument): Pass structures of size
27806         64 bytes or less in register.
27807
27808 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
27809             Kirill Yukhin  <kirill.yukhin@intel.com>
27810
27811         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
27812         (_mm_rcp28_round_ss): Ditto.
27813         (_mm_rsqrt28_round_sd): Ditto.
27814         (_mm_rsqrt28_round_ss): Ditto.
27815         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
27816         (_mm_rcp14_round_ss): Ditto.
27817         (_mm_rsqrt14_round_sd): Ditto.
27818         (_mm_rsqrt14_round_ss): Ditto.
27819         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
27820         the first input operand, get rid of match_dup.
27821         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
27822         attribute to sse.
27823         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
27824         Ditto.
27825         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
27826         operand as the first input operand, set type attribute.
27827         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
27828         Set type attribute.
27829         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
27830         operand as the first input operand, set type attribute.
27831
27832 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27833
27834         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
27835         bit of zero.
27836
27837 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
27838
27839         PR target/60207
27840         * config/i386/i386.c (construct_container): Remove TFmode check
27841         for X86_64_INTEGER_CLASS.
27842
27843 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
27844
27845         PR target/59794
27846         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
27847         only when -Wpsabi is enabled.
27848
27849 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
27850
27851          PR target/59799
27852         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
27853         passing arrays in registers are the same as for structs, so remove the
27854         special case for them.
27855
27856 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
27857
27858         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
27859         destination type, extract only the valid bits if the source type is not
27860         integral and has a different mode.
27861
27862 2014-02-19  Richard Biener  <rguenther@suse.de>
27863
27864         PR ipa/60243
27865         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
27866         for all calls.
27867
27868 2014-02-19  Richard Biener  <rguenther@suse.de>
27869
27870         PR ipa/60243
27871         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
27872         (ipa_modify_call_arguments): Emit an argument load explicitely and
27873         preserve virtual SSA form there and for the replacement call.
27874         Do not update SSA form nor free dominance info.
27875
27876 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
27877
27878         * ipa.c (function_and_variable_visibility): Also clear WEAK
27879         flag when disolving COMDAT_GROUP.
27880
27881 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
27882
27883         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
27884         * ipa-prop.c (ipa_set_jf_known_type): Return early when
27885         not devirtualizing.
27886         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
27887         do more sanity checks.
27888         (detect_type_change): Return true when giving up early.
27889         (compute_complex_assign_jump_func): Fix type parameter of
27890         ipa_set_ancestor_jf.
27891         (compute_complex_ancestor_jump_func): Likewise.
27892         (update_jump_functions_after_inlining): Fix updating of
27893         ancestor function.
27894         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
27895
27896 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
27897
27898         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
27899         inline clones when edge disappears.
27900
27901 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
27902
27903         PR target/60203
27904         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
27905         Split 64-bit moves into 2 patterns.  Do not allow the use of
27906         direct move for TDmode in little endian, since the decimal value
27907         has little endian bytes within a word, but the 64-bit pieces are
27908         ordered in a big endian fashion, and normal subreg's of TDmode are
27909         not allowed.
27910         (mov<mode>_64bit_dm): Likewise.
27911         (movtd_64bit_nodm): Likewise.
27912
27913 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
27914
27915         PR tree-optimization/60174
27916         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
27917         statement of an SSA_NAME that occurs in an abnormal PHI node.
27918
27919 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
27920
27921         PR sanitizer/60142
27922         * final.c (SEEN_BB): Remove.
27923         (SEEN_NOTE, SEEN_EMITTED): Renumber.
27924         (final_scan_insn): Don't force_source_line on second
27925         NOTE_INSN_BASIC_BLOCK.
27926
27927 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
27928
27929         PR target/60205
27930         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
27931         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
27932         (type_natural_mode): Warn ABI change when %zmm register is not
27933         available for AVX512F vector value passing.
27934
27935 2014-02-18  Kai Tietz  <ktietz@redhat.com>
27936
27937         PR target/60193
27938         * config/i386/i386.c (ix86_expand_prologue): Use value in
27939         rax register as displacement when restoring %r10 or %rax.
27940         Fix wrong offset when restoring both registers.
27941
27942 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
27943
27944         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
27945         assertion with conditional return.
27946
27947 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
27948             Uros Bizjak  <ubizjak@gmail.com>
27949
27950         PR driver/60233
27951         * config/i386/driver-i386.c (host_detect_local_cpu): If
27952         YMM state is not saved by the OS, also clear has_f16c.  Move
27953         CPUID 0x80000001 handling before YMM state saving checking.
27954
27955 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
27956
27957         PR rtl-optimization/58960
27958         * haifa-sched.c (alloc_global_sched_pressure_data): New,
27959         factored out from ...
27960         (sched_init): ... here.
27961         (free_global_sched_pressure_data): New, factored out from ...
27962         (sched_finish): ... here.
27963         * sched-int.h (free_global_sched_pressure_data): Declare.
27964         * sched-rgn.c (nr_regions_initial): New static global.
27965         (haifa_find_rgns): Initialize it.
27966         (schedule_region): Disable sched-pressure for the newly
27967         generated regions.
27968
27969 2014-02-17  Richard Biener  <rguenther@suse.de>
27970
27971         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
27972         release SSA defs of pattern stmts.
27973
27974 2014-02-17  Richard Biener  <rguenther@suse.de>
27975
27976         * tree-inline.c (expand_call_inline): Release the virtual
27977         operand defined by the call we are about to inline.
27978
27979 2014-02-17  Richard Biener  <rguenther@suse.de>
27980
27981         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
27982
27983 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
27984             Ilya Tocar  <ilya.tocar@intel.com>
27985
27986         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
27987         arguments order in builtin.
27988         (_mm512_permutexvar_epi64): Ditto.
27989         (_mm512_mask_permutexvar_epi64): Ditto
27990         (_mm512_maskz_permutexvar_epi32): Ditto
27991         (_mm512_permutexvar_epi32): Ditto
27992         (_mm512_mask_permutexvar_epi32): Ditto
27993
27994 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27995
27996         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
27997         (p8_vmrgow): Likewise.
27998
27999 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28000
28001         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
28002         endian targets.
28003
28004 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
28005
28006         PR target/60203
28007         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
28008         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
28009         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
28010         using direct move instructions on ISA 2.07.  Also adjust
28011         instruction length for 64-bit.
28012         (mov<mode>_64bit, TFmode/TDmode): Likewise.
28013         (mov<mode>_32bit, TFmode/TDmode): Likewise.
28014
28015 2014-02-15  Alan Modra  <amodra@gmail.com>
28016
28017         PR target/58675
28018         PR target/57935
28019         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
28020         find_replacement on parts of insn rtl that might be reloaded.
28021
28022 2014-02-15  Richard Biener  <rguenther@suse.de>
28023
28024         PR tree-optimization/60183
28025         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
28026         (tree_ssa_phiprop): Calculate and free post-dominators.
28027
28028 2014-02-14  Jeff Law  <law@redhat.com>
28029
28030         PR rtl-optimization/60131
28031         * ree.c (get_extended_src_reg): New function.
28032         (combine_reaching_defs): Use it rather than assuming location of REG.
28033         (find_and_remove_re): Verify first operand of extension is
28034         a REG before adding the insns to the copy list.
28035
28036 2014-02-14  Roland McGrath  <mcgrathr@google.com>
28037
28038         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
28039         * configure: Regenerated.
28040         * config.in: Regenerated.
28041         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
28042         instead of ASM_SHORT.
28043
28044 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
28045             Richard Earnshaw  <rearnsha@arm.com>
28046
28047         PR rtl-optimization/59535
28048         * lra-constraints.c (process_alt_operands): Encourage alternative
28049         when unassigned pseudo class is superset of the alternative class.
28050         (inherit_reload_reg): Don't inherit when optimizing for code size.
28051         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
28052         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
28053         modes not less than 4 for Thumb1.
28054
28055 2014-02-14  Kyle McMartin  <kyle@redhat.com>
28056
28057         PR pch/60010
28058         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
28059
28060 2014-02-14  Richard Biener  <rguenther@suse.de>
28061
28062         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
28063         (get_frame_arg): Drop the assert with langhook types_compatible_p.
28064         Do not strip INDIRECT_REFs.
28065
28066 2014-02-14  Richard Biener  <rguenther@suse.de>
28067
28068         PR lto/60179
28069         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
28070         DECL_FUNCTION_SPECIFIC_TARGET.
28071         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
28072         * tree-streamer-out.c (pack_ts_target_option): Remove.
28073         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
28074         (write_ts_function_decl_tree_pointers): Do not stream
28075         DECL_FUNCTION_SPECIFIC_TARGET.
28076         * tree-streamer-in.c (unpack_ts_target_option): Remove.
28077         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
28078         (lto_input_ts_function_decl_tree_pointers): Do not stream
28079         DECL_FUNCTION_SPECIFIC_TARGET.
28080
28081 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
28082
28083         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
28084         (get_initial_def_for_induction, vectorizable_induction): Ignore
28085         debug stmts when looking for exit_phi.
28086         (vectorizable_live_operation): Fix up condition.
28087
28088 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
28089
28090         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
28091         nreverse() because it changes the content of original tree list.
28092
28093 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
28094
28095         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
28096         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
28097
28098 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
28099
28100         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
28101         GNU coding standards.
28102
28103 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
28104
28105         PR debug/60152
28106         * dwarf2out.c (gen_subprogram_die): Don't call
28107         add_calling_convention_attribute if subr_die is old_die.
28108
28109 2014-02-13  Sharad Singhai  <singhai@google.com>
28110
28111         * doc/optinfo.texi: Fix order of nodes.
28112
28113 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
28114
28115         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
28116         operands[2], not operands[3].
28117
28118 2014-02-13  Richard Biener  <rguenther@suse.de>
28119
28120         PR bootstrap/59878
28121         * doc/install.texi (ISL): Update recommended version to 0.12.2,
28122         mention the possibility of an in-tree build.
28123         (CLooG): Update recommended version to 0.18.1, mention the
28124         possibility of an in-tree build and clarify that the ISL
28125         bundled with CLooG does not work.
28126
28127 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
28128
28129         PR target/43546
28130         * expr.c (compress_float_constant): If x is a hard register,
28131         extend into a pseudo and then move to x.
28132
28133 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
28134
28135         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
28136         caused by bad second argument to warning_at() with -mhotpatch and
28137         nested functions (e.g. with gfortran).
28138
28139 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
28140
28141         * opts.c (option_name): Remove "enabled by default" rider.
28142
28143 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
28144
28145         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
28146
28147 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
28148             Uros Bizjak  <ubizjak@gmail.com>
28149
28150         PR target/60151
28151         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
28152         * configure: Regenerated.
28153
28154 2014-02-12  Richard Biener  <rguenther@suse.de>
28155
28156         * vec.c (vec_prefix::calculate_allocation): Move as
28157         inline variant to vec.h.
28158         (vec_prefix::calculate_allocation_1): New out-of-line version.
28159         * vec.h (vec_prefix::calculate_allocation_1): Declare.
28160         (vec_prefix::m_has_auto_buf): Rename to ...
28161         (vec_prefix::m_using_auto_storage): ... this.
28162         (vec_prefix::calculate_allocation): Inline the easy cases
28163         and dispatch to calculate_allocation_1 which doesn't need the
28164         prefix address.
28165         (va_heap::reserve): Use gcc_checking_assert.
28166         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
28167         m_using_auto_storage.
28168         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
28169         member and adjust.
28170         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
28171         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
28172         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
28173
28174 2014-02-12  Richard Biener  <rguenther@suse.de>
28175
28176         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
28177         when we found a dependence.
28178
28179 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
28180
28181         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
28182         common code...
28183         (maybe_fold_stmt): ... into this new function.
28184         * omp-low.c (lower_omp): Update comment.
28185
28186         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
28187         last use.
28188
28189         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
28190         dereference.
28191
28192 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
28193
28194         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
28195         identifiers in comments.
28196         (cortexa53_extra_costs): Likewise.
28197         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
28198         (cortexa7_extra_costs): Likewise.
28199         (cortexa12_extra_costs): Likewise.
28200         (cortexa15_extra_costs): Likewise.
28201         (v7m_extra_costs): Likewise.
28202
28203 2014-02-12  Richard Biener  <rguenther@suse.de>
28204
28205         PR middle-end/60092
28206         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
28207         of posix_memalign being successful.
28208         (lower_stmt): Restrict lowering of posix_memalign to when
28209         -ftree-bit-ccp is enabled.
28210
28211 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
28212
28213         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
28214         arg_loc.
28215         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
28216
28217 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
28218
28219         PR rtl-optimization/60116
28220         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
28221         other_insn once the combination has been validated.
28222
28223 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
28224
28225         PR lto/59468
28226         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
28227         and wrapper.
28228         * ipa-devirt.c: Include demangle.h
28229         (odr_violation_reported): New static variable.
28230         (add_type_duplicate): Update odr_violations.
28231         (maybe_record_node): Add completep parameter; update it.
28232         (record_target_from_binfo): Add COMPLETEP parameter;
28233         update it as needed.
28234         (possible_polymorphic_call_targets_1): Likewise.
28235         (struct polymorphic_call_target_d): Add nonconstruction_targets;
28236         rename FINAL to COMPLETE.
28237         (record_targets_from_bases): Sanity check we found the binfo;
28238         fix COMPLETEP updating.
28239         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
28240         parameter, fix computing of COMPLETEP.
28241         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
28242         at LTO time do demangling.
28243         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
28244         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
28245         parameter.
28246         (gimple_get_virt_method_for_binfo): Likewise.
28247         * gimple-fold.h (gimple_get_virt_method_for_binfo,
28248         gimple_get_virt_method_for_vtable): Update prototypes.
28249
28250 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
28251
28252         PR target/49008
28253         * genautomata.c (add_presence_absence): Fix typo with
28254         {final_}presence_list.
28255
28256 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
28257
28258         PR target/60137
28259         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
28260         for VSX/Altivec vectors that land in GPR registers.
28261
28262 2014-02-11  Richard Henderson  <rth@redhat.com>
28263             Jakub Jelinek  <jakub@redhat.com>
28264
28265         PR debug/59776
28266         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
28267         around drhs if type conversion to lacc->type is not useless.
28268
28269 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28270
28271         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
28272         tuning struct.
28273         (cortex-a57.cortex-a53): Likewise.
28274         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
28275
28276 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28277
28278         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
28279         arm_restrict_it.
28280
28281 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
28282
28283         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
28284         add_options_for_arm_vfp3.
28285
28286 2014-02-11  Jeff Law  <law@redhat.com>
28287
28288         PR middle-end/54041
28289         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
28290         object with an undesirable mode.
28291
28292 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28293
28294         PR libgomp/60107
28295         * config/i386/sol2-9.h: New file.
28296         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
28297         *-*-solaris2.9*): Use it.
28298
28299 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
28300
28301         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
28302         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
28303
28304 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
28305
28306         * config/microblaze/microblaze.c: Extend mcpu version format
28307
28308 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
28309
28310         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
28311
28312 2014-02-10  Richard Henderson  <rth@redhat.com>
28313
28314         PR target/59927
28315         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
28316         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
28317         ms-abi vs -mno-accumulate-outgoing-args.
28318         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
28319         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
28320         respect to ms-abi.
28321
28322 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28323
28324         PR middle-end/60080
28325         * cfgexpand.c (expand_asm_operands): Attach source location to
28326         ASM_INPUT rtx objects.
28327         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
28328
28329 2014-02-10  Nick Clifton  <nickc@redhat.com>
28330
28331         * config/mn10300/mn10300.c (popcount): New function.
28332         (mn10300_expand_prologue): Include saved registers in stack usage
28333         count.
28334
28335 2014-02-10  Jeff Law  <law@redhat.com>
28336
28337         PR middle-end/52306
28338         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
28339         when changing the SET_DEST of a prior insn to avoid an input reload.
28340
28341 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28342
28343         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
28344         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
28345         -mcall-openbsd, or -mcall-linux.
28346         (CC1_ENDIAN_BIG_SPEC): Remove.
28347         (CC1_ENDIAN_LITTLE_SPEC): Remove.
28348         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
28349         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
28350         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
28351         and %cc1_endian_default.
28352         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
28353
28354 2014-02-10  Richard Biener  <rguenther@suse.de>
28355
28356         PR tree-optimization/60115
28357         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
28358         MEM_REF handling.  Properly verify that the accesses are not
28359         out of the objects bound.
28360
28361 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28362
28363         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
28364         coretex to cortex.
28365
28366 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
28367
28368         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
28369         proper constants and fix formatting.
28370         (possible_polymorphic_call_targets): Fix formatting.
28371
28372 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
28373             Ilya Tocar  <ilya.tocar@intel.com>
28374
28375         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
28376         (_mm512_loadu_epi32): Renamed into...
28377         (_mm512_loadu_si512): This.
28378         (_mm512_storeu_epi32): Renamed into...
28379         (_mm512_storeu_si512): This.
28380         (_mm512_maskz_ceil_ps): Removed.
28381         (_mm512_maskz_ceil_pd): Ditto.
28382         (_mm512_maskz_floor_ps): Ditto.
28383         (_mm512_maskz_floor_pd): Ditto.
28384         (_mm512_floor_round_ps): Ditto.
28385         (_mm512_floor_round_pd): Ditto.
28386         (_mm512_ceil_round_ps): Ditto.
28387         (_mm512_ceil_round_pd): Ditto.
28388         (_mm512_mask_floor_round_ps): Ditto.
28389         (_mm512_mask_floor_round_pd): Ditto.
28390         (_mm512_mask_ceil_round_ps): Ditto.
28391         (_mm512_mask_ceil_round_pd): Ditto.
28392         (_mm512_maskz_floor_round_ps): Ditto.
28393         (_mm512_maskz_floor_round_pd): Ditto.
28394         (_mm512_maskz_ceil_round_ps): Ditto.
28395         (_mm512_maskz_ceil_round_pd): Ditto.
28396         (_mm512_expand_pd): Ditto.
28397         (_mm512_expand_ps): Ditto.
28398         * config/i386/i386.c (ix86_builtins): Remove
28399         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
28400         (bdesc_args): Ditto.
28401         * config/i386/predicates.md (const1256_operand): New.
28402         (const_1_to_2_operand): Ditto.
28403         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
28404         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
28405         (*avx512pf_gatherpf<mode>sf): Ditto.
28406         (avx512pf_gatherpf<mode>df): Ditto.
28407         (*avx512pf_gatherpf<mode>df_mask): Ditto.
28408         (*avx512pf_gatherpf<mode>df): Ditto.
28409         (avx512pf_scatterpf<mode>sf): Ditto.
28410         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
28411         (*avx512pf_scatterpf<mode>sf): Ditto.
28412         (avx512pf_scatterpf<mode>df): Ditto.
28413         (*avx512pf_scatterpf<mode>df_mask): Ditto.
28414         (*avx512pf_scatterpf<mode>df): Ditto.
28415         (avx512f_expand<mode>): Removed.
28416         (<shift_insn><mode>3<mask_name>): Change predicate type.
28417
28418 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
28419
28420         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
28421         not at the end of datarefs vector use ordered_remove to avoid
28422         reordering datarefs vector.
28423
28424         PR c/59984
28425         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
28426         mark local addressable non-static vars as GOVD_PRIVATE
28427         instead of GOVD_LOCAL.
28428         * omp-low.c (lower_omp_for): Move gimple_bind_vars
28429         and BLOCK_VARS of gimple_bind_block to new_stmt rather
28430         than copying them.
28431
28432         PR middle-end/60092
28433         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
28434         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
28435         assume_aligned or alloc_align attributes.
28436         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
28437         arguments.  Handle also assume_aligned and alloc_align attributes.
28438         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
28439         calls to functions with assume_aligned or alloc_align attributes.
28440         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
28441
28442 2014-02-08  Terry Guo  <terry.guo@arm.com>
28443
28444         * doc/invoke.texi: Document ARM -march=armv7e-m.
28445
28446 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
28447
28448         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
28449         flag on __cilkrts_rethrow builtin.
28450
28451         PR ipa/60026
28452         * ipa-cp.c (determine_versionability): Fail at -O0
28453         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
28454         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
28455
28456         Revert:
28457         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
28458
28459         PR ipa/60026
28460         * tree-inline.c (copy_forbidden): Fail for
28461         __attribute__((optimize (0))) functions.
28462
28463 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
28464
28465         * varpool.c: Include pointer-set.h.
28466         (varpool_remove_unreferenced_decls): Variables in other partitions
28467         will not be output; be however careful to not lose information
28468         about partitioning.
28469
28470 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
28471
28472         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
28473         lookup in the vtable constructor.
28474
28475 2014-02-07  Jeff Law  <law@redhat.com>
28476
28477         PR target/40977
28478         * config/m68k/m68k.md (ashldi_extsi): Turn into a
28479         define_insn_and_split.
28480
28481         * ipa-inline.c (inline_small_functions): Fix typos.
28482
28483 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28484
28485         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
28486         (s390_can_use_return_insn): Declare.
28487         * config/s390/s390.h (EPILOGUE_USES): Define.
28488         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
28489         instructions.
28490         (s390_chunkify_start): Handle return JUMP_LABELs.
28491         (s390_early_mach): Emit a main_pool instruction on the entry edge.
28492         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
28493         (s390_can_use_return_insn): New functions.
28494         (s390_fix_long_loop_prediction): Handle conditional returns.
28495         (TARGET_SET_UP_BY_PROLOGUE): Define.
28496         * config/s390/s390.md (ANY_RETURN): New code iterator.
28497         (*creturn, *csimple_return, return, simple_return): New patterns.
28498
28499 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28500
28501         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
28502         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
28503         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
28504         REG_CFA_RESTORE list when deciding not to restore a register.
28505
28506 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28507
28508         * config/s390/s390.c: Include tree-pass.h and context.h.
28509         (s390_early_mach): New function, split out from...
28510         (s390_emit_prologue): ...here.
28511         (pass_data_s390_early_mach): New pass structure.
28512         (pass_s390_early_mach): New class.
28513         (s390_option_override): Create and register early_mach pass.
28514         Move to end of file.
28515
28516 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28517
28518         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
28519         to match for the exit block.
28520
28521 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28522
28523         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
28524         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
28525         Reject misaligned operands.
28526
28527 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28528
28529         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
28530
28531 2014-02-07  Richard Biener  <rguenther@suse.de>
28532
28533         PR middle-end/60092
28534         * gimple-low.c (lower_builtin_posix_memalign): New function.
28535         (lower_stmt): Call it to lower posix_memalign in a way
28536         to make alignment info accessible.
28537
28538 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
28539
28540         PR c++/60082
28541         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
28542         __builtin_setjmp_receiver.
28543
28544 2014-02-07  Richard Biener  <rguenther@suse.de>
28545
28546         PR middle-end/60092
28547         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
28548         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
28549         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
28550         Handle BUILT_IN_POSIX_MEMALIGN.
28551         (find_func_clobbers): Likewise.
28552         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
28553         (call_may_clobber_ref_p_1): Likewise.
28554
28555 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28556
28557         PR ipa/59918
28558         * ipa-devirt.c (record_target_from_binfo): Remove overactive
28559         sanity check.
28560
28561 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28562
28563         PR ipa/59469
28564         * lto-cgraph.c (lto_output_node): Use
28565         symtab_get_symbol_partitioning_class.
28566         (lto_output_varpool_node): likewise.
28567         (symtab_get_symbol_partitioning_class): Move here from
28568         lto/lto-partition.c
28569         * cgraph.h (symbol_partitioning_class): Likewise.
28570         (symtab_get_symbol_partitioning_class): Declare.
28571
28572 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28573
28574         * ggc.h (ggc_internal_cleared_alloc): New macro.
28575         * vec.h (vec_safe_copy): Handle memory stats.
28576         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
28577         * target-globals.c (save_target_globals): Likewise.
28578
28579 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28580
28581         PR target/60077
28582         * expr.c (emit_move_resolve_push): Export; be bit more selective
28583         on when to clear alias set.
28584         * expr.h (emit_move_resolve_push): Declare.
28585         * function.h (struct function): Add tail_call_marked.
28586         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
28587         * config/i386/i386-protos.h (ix86_expand_push): Remove.
28588         * config/i386/i386.md (TImode move expander): De not call
28589         ix86_expand_push.
28590         (FP push expanders): Preserve memory attributes.
28591         * config/i386/sse.md (push<mode>1): Remove.
28592         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
28593         (ix86_expand_push): Remove.
28594         * config/i386/mmx.md (push<mode>1): Remove.
28595
28596 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
28597
28598         PR rtl-optimization/60030
28599         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
28600         lopart with paradoxical subreg before shifting it up by hprec.
28601
28602 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28603
28604         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
28605         Remove extra newline at end of file.
28606         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
28607         (arm_issue_rate): Handle cortexa57.
28608         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
28609         (cortex-a57.cortex-a53): Likewise.
28610
28611 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
28612
28613         PR target/59575
28614         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
28615         don't record in REG_FRAME_RELATED_EXPR registers not set in that
28616         bitmask.
28617         (arm_expand_prologue): Adjust all callers.
28618         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
28619         info, registers also at the lowest numbered registers side.  Use
28620         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
28621         XEXP.
28622
28623         PR debug/59992
28624         * var-tracking.c (adjust_mems): Before adding a SET to
28625         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
28626
28627 2014-02-06  Alan Modra  <amodra@gmail.com>
28628
28629         PR target/60032
28630         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
28631         change SDmode to DDmode when lra_in_progress.
28632
28633 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
28634
28635         PR middle-end/59150
28636         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
28637         free_data_ref on the dr first, and before goto again also set dr
28638         to the next dr.  For simd_lane_access, free old datarefs[i] before
28639         overwriting it.  For get_vectype_for_scalar_type failure, don't
28640         free_data_ref if simd_lane_access.
28641
28642         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
28643
28644         PR target/60062
28645         * tree.h (opts_for_fn): New inline function.
28646         (opt_for_fn): Define.
28647         * config/i386/i386.c (ix86_function_regparm): Use
28648         opt_for_fn (decl, optimize) instead of optimize.
28649
28650 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
28651
28652         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
28653         for SYMBOL_REF in large memory model.
28654
28655 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28656
28657         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
28658         and crypto support.
28659         (cortex-a57): Likewise.
28660         (cortex-a57.cortex-a53): Likewise.
28661
28662 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
28663             Kugan Vivekanandarajah  <kuganv@linaro.org>
28664
28665         * config/arm/arm.c (arm_vector_alignment_reachable): Check
28666         unaligned_access.
28667         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
28668
28669 2014-02-06  Richard Biener  <rguenther@suse.de>
28670
28671         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
28672         set_loop_copy and initialize_original_copy_tables.
28673
28674 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
28675
28676         * config/aarch64/aarch64-simd.md
28677         (aarch64_ashr_simddi): Change QI to SI.
28678
28679 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
28680             Jakub Jelinek  <jakub@redhat.com>
28681
28682         PR middle-end/60013
28683         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
28684         of the dataflow.
28685
28686 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28687
28688         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
28689         CODE_FOR_altivec_vpku[hw]um to
28690         CODE_FOR_altivec_vpku[hw]um_direct.
28691         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
28692         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
28693         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
28694         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
28695
28696 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28697
28698         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
28699         generation for -maltivec=be.
28700         (altivec_vsumsws): Simplify redundant test.
28701
28702 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28703
28704         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
28705         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
28706         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
28707         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
28708         gen_altivec_vpkuwum.
28709         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
28710         BYTES_BIG_ENDIAN.
28711         (altivec_vpks<VI_char>ss): Likewise.
28712         (altivec_vpks<VI_char>us): Likewise.
28713         (altivec_vpku<VI_char>us): Likewise.
28714         (altivec_vpku<VI_char>um): Likewise.
28715         (altivec_vpku<VI_char>um_direct): New (copy of
28716         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
28717         internal use).
28718         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
28719         target is little endian and -maltivec=be is not specified.
28720         (*altivec_vupkhs<VU_char>_direct): New (copy of
28721         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
28722         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
28723         target is little endian and -maltivec=be is not specified.
28724         (*altivec_vupkls<VU_char>_direct): New (copy of
28725         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
28726         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
28727         little endian and -maltivec=be is not specified.
28728         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
28729         little endian and -maltivec=be is not specified.
28730
28731 2014-02-05  Richard Henderson  <rth@redhat.com>
28732
28733         PR debug/52727
28734         * combine-stack-adj.c: Revert r206943.
28735         * sched-int.h (struct deps_desc): Add last_args_size.
28736         * sched-deps.c (init_deps): Initialize it.
28737         (sched_analyze_insn): Add OUTPUT dependencies between insns that
28738         contain REG_ARGS_SIZE notes.
28739
28740 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
28741
28742         * lto-cgraph.c (asm_nodes_output): Make global.
28743         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
28744         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
28745         (driver_handle_option): Handle OPT_fwpa.
28746
28747 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
28748
28749         PR ipa/59947
28750         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
28751         a comment typo and formatting issue.  If odr_hash hasn't been
28752         created, return vNULL and set *completep to false.
28753
28754         PR middle-end/57499
28755         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
28756         bb with no successors.
28757
28758 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
28759
28760         PR target/59718
28761         * doc/invoke.texi (-march): Clarify documentation for ARM.
28762         (-mtune): Likewise.
28763         (-mcpu): Likewise.
28764
28765 2014-02-05  Richard Biener  <rguenther@suse.de>
28766
28767         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
28768         when not vectorizing because of too many alias checks.
28769         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
28770         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
28771
28772 2014-02-05  Nick Clifton  <nickc@redhat.com>
28773
28774         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
28775         accept extended registers in any mode when compiling for the MN10300.
28776
28777 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
28778
28779         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
28780         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
28781         sanitization attributes.
28782         (can_inline_edge_p): Likewise.
28783         (sanitize_attrs_match_for_inline_p): New function.
28784
28785 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
28786
28787         * ipa-prop.c (detect_type_change): Shor circuit testing of
28788         type changes on THIS pointer.
28789
28790 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
28791
28792         PR target/59777
28793         * config/pa/pa.c (legitimize_tls_address): Return original address
28794         if not passed a SYMBOL_REF rtx.
28795         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
28796         addresses.
28797         (pa_emit_move_sequence): Simplify TLS source operands.
28798         (pa_legitimate_constant_p): Reject all TLS constants.
28799         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
28800         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
28801
28802 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
28803
28804         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
28805         groups when we know they are controlled by LTO.
28806         * varasm.c (default_binds_local_p_1): If object is in other partition,
28807         it will be resolved locally.
28808
28809 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28810
28811         * config/host-linux.c (linux_gt_pch_use_address): Don't
28812         use SSIZE_MAX because it is not always defined.
28813
28814 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
28815
28816         PR bootstrap/59913
28817         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
28818         threshold for pseudo splitting.
28819         (update_ebb_live_info): Process call argument hard registers and
28820         hard registers from insn definition too.
28821         (max_small_class_regs_num): New constant.
28822         (inherit_in_ebb): Update live hard regs through EBBs.  Update
28823         reloads_num only for small register classes.  Don't split for
28824         outputs of jumps.
28825
28826 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
28827
28828         PR ipa/60058
28829         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
28830         is non-null.
28831
28832 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
28833
28834         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
28835         visibility is safe.
28836
28837 2014-02-04  Marek Polacek  <polacek@redhat.com>
28838
28839         * gdbinit.in (pel): Define.
28840
28841 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28842
28843         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
28844         behavior.
28845
28846 2014-02-04  Richard Biener  <rguenther@suse.de>
28847
28848         PR lto/59723
28849         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
28850         in function context local.
28851         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
28852         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
28853         similar to LTO_imported_decl_ref.
28854
28855 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
28856
28857         PR tree-optimization/60002
28858         * cgraphclones.c (build_function_decl_skip_args): Clear
28859         DECL_LANG_SPECIFIC.
28860
28861         PR tree-optimization/60023
28862         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
28863         false to gsi_replace.
28864         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
28865         has been in some EH region and vec_stmt could throw, add
28866         vec_stmt into the same EH region.
28867         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
28868         has no lhs, ignore it.
28869         * internal-fn.c (expand_MASK_LOAD): Likewise.
28870
28871         PR ipa/60026
28872         * tree-inline.c (copy_forbidden): Fail for
28873         __attribute__((optimize (0))) functions.
28874
28875         PR other/58712
28876         * omp-low.c (simd_clone_struct_copy): If from->inbranch
28877         is set, copy one less argument.
28878         (expand_simd_clones): Don't subtract clone_info->inbranch
28879         from simd_clone_struct_alloc argument.
28880
28881         PR rtl-optimization/57915
28882         * recog.c (simplify_while_replacing): If all unary/binary/relational
28883         operation arguments are constant, attempt to simplify those.
28884
28885         PR middle-end/59261
28886         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
28887         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
28888
28889 2014-02-04  Richard Biener  <rguenther@suse.de>
28890
28891         PR tree-optimization/60012
28892         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
28893         TBAA disambiguation to all DDRs.
28894
28895 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28896
28897         PR target/59788
28898         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
28899         (LINK_SPEC): Use it for -shared, -shared-libgcc.
28900
28901 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28902
28903         PR ipa/59882
28904         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
28905
28906 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28907
28908         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
28909         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
28910
28911 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28912
28913         PR ipa/59831
28914         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
28915         to figure out targets of polymorphic calls with known decl.
28916         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28917         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
28918         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
28919         (get_polymorphic_call_info): ... here.
28920         (get_polymorphic_call_info_from_invariant): New function.
28921
28922 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28923
28924         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
28925         lookup via vtable pointer; check for type consistency
28926         and turn inconsitent facts into UNREACHABLE.
28927         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28928         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
28929         type inconsistent querries; return UNREACHABLE instead.
28930
28931 2014-02-03  Richard Henderson  <rth@twiddle.net>
28932
28933         PR tree-opt/59924
28934         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
28935         already processed this node.
28936         (normalize_one_pred_1): Pass along mark_set.
28937         (normalize_one_pred): Create and destroy a pointer_set_t.
28938         (normalize_one_pred_chain): Likewise.
28939
28940 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
28941
28942         PR gcov-profile/58602
28943         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
28944
28945 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
28946
28947         PR ipa/59831
28948         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
28949         -fno-devirtualize; try to devirtualize by the knowledge of
28950         virtual table pointer given by aggregate propagation.
28951         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28952         (ipa_print_node_jump_functions): Dump also offset that
28953         is relevant for polymorphic calls.
28954         (determine_known_aggregate_parts): Add arg_type parameter; use it
28955         instead of determining the type from pointer type.
28956         (ipa_compute_jump_functions_for_edge): Update call of
28957         determine_known_aggregate_parts.
28958         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
28959         (gimple_get_virt_method_for_binfo): ... here; simplify using
28960         vtable_pointer_value_to_vtable.
28961         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
28962         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
28963         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
28964         (vtable_pointer_value_to_vtable): Break out from ...; handle also
28965         POINTER_PLUS_EXPR.
28966         (vtable_pointer_value_to_binfo): ... here.
28967         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
28968
28969 2014-02-03  Teresa Johnson  <tejohnson@google.com>
28970
28971         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
28972         redef of outer loop index variable.
28973
28974 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
28975
28976         PR c++/53017
28977         PR c++/59211
28978         * doc/extend.texi (Function Attributes): Typo.
28979
28980 2014-02-03  Cong Hou  <congh@google.com>
28981
28982         PR tree-optimization/60000
28983         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
28984         if the vectorized statement is a store.  A store statement can only
28985         appear at the end of pattern statements.
28986
28987 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
28988
28989         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
28990         (ix86_option_override_internal): Default long double to 64-bit for
28991         32-bit Bionic and to 128-bit for 64-bit Bionic.
28992
28993         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
28994         TARGET_LONG_DOUBLE_128 is true.
28995         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
28996
28997         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
28998         (mlong-double-64): Negate -mlong-double-128.
28999         (mlong-double-128): New option.
29000
29001         * config/i386/i386-c.c (ix86_target_macros): Define
29002         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
29003
29004         * doc/invoke.texi: Document -mlong-double-128.
29005
29006 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
29007
29008         PR rtl-optimization/60024
29009         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
29010
29011 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
29012
29013         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
29014
29015 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
29016
29017         PR rtl-optimization/57662
29018         * sel-sched.c (code_motion_path_driver): Do not mark already not
29019         existing blocks in the visiting bitmap.
29020
29021 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
29022
29023         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
29024         on the insn being emitted.
29025
29026 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
29027             Will Deacon  <will.deacon@arm.com>
29028
29029         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
29030
29031 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29032
29033         * config/arm/arm-tables.opt: Regenerate.
29034
29035 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29036
29037         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
29038         for vector types other than V16QImode.
29039         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
29040         define_expand, and call altivec_expand_vec_perm_le when producing
29041         code with little endian element order.
29042         (*altivec_vperm_<mode>_internal): New insn having previous
29043         behavior of altivec_vperm_<mode>.
29044         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
29045         altivec_expand_vec_perm_le when producing code with little endian
29046         element order.
29047         (*altivec_vperm_<mode>_uns_internal): New insn having previous
29048         behavior of altivec_vperm_<mode>_uns.
29049
29050 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29051
29052         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
29053         (altivec_vsumsws): Add handling for -maltivec=be with a little
29054         endian target.
29055         (altivec_vsumsws_direct): New.
29056         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
29057         gen_altivec_vsumsws.
29058
29059 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
29060
29061         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
29062         vtable_pointer_value_to_binfo): New functions.
29063         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
29064         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
29065
29066 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
29067
29068         * config/nios2/nios2.md (load_got_register): Initialize GOT
29069         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
29070         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
29071
29072 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
29073
29074         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
29075         preserverd by passthrough, do not propagate the type.
29076
29077 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
29078
29079         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
29080         (mips_atomic_assign_expand_fenv): New function.
29081         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
29082
29083 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
29084
29085         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
29086         (__builtin_mips_set_fcsr): Likewise.
29087         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
29088         MIPS_USI_FTYPE_VOID.
29089         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
29090         (mips16_expand_set_fcsr): Likewise.
29091         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
29092         (mips16_set_fcsr_stub): Likewise.
29093         (mips16_get_fcsr_one_only_stub): New class.
29094         (mips16_set_fcsr_one_only_stub): Likewise.
29095         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
29096         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
29097         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
29098         (hard_float): New availability predicate.
29099         (mips_builtins): Add get_fcsr and set_fcsr.
29100         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
29101         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
29102         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
29103         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
29104         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
29105         patterns.
29106
29107 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
29108
29109         * config/mips/mips.c (mips_one_only_stub): New class.
29110         (mips_need_mips16_rdhwr_p): Replace with...
29111         (mips16_rdhwr_stub): ...this new variable.
29112         (mips16_stub_call_address): New function.
29113         (mips16_rdhwr_one_only_stub): New class.
29114         (mips_expand_thread_pointer): Use mips16_stub_call_address.
29115         (mips_output_mips16_rdhwr): Delete.
29116         (mips_finish_stub): New function.
29117         (mips_code_end): Use it to handle rdhwr stubs.
29118
29119 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
29120
29121         PR target/60017
29122         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
29123         when calculating size of integer atomic types.
29124
29125 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
29126
29127         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
29128
29129 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
29130
29131         PR tree-optimization/60003
29132         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
29133         * profile.c (branch_prob): Use gimple_call_builtin_p
29134         to check for BUILT_IN_SETJMP_RECEIVER.
29135         * tree-inline.c (copy_bb): Call notice_special_calls.
29136
29137 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
29138
29139         PR bootstrap/59985
29140         * lra-constraints.c (process_alt_operands): Update reload_sum only
29141         on the first pass.
29142
29143 2014-01-31  Richard Henderson  <rth@redhat.com>
29144
29145         PR middle-end/60004
29146         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
29147         until after else_eh is processed.
29148
29149 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
29150
29151         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
29152         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
29153         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
29154         in smmintrin.h, remove them.
29155         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
29156         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
29157         * config/i386/i386.md (ROUND_SAE): Fix value.
29158         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
29159         (const48_operand): New.
29160         * config/i386/subst.md (round), (round_expand): Use
29161         const_4_or_8_to_11_operand.
29162         (round_saeonly), (round_saeonly_expand): Use const48_operand.
29163
29164 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
29165
29166         * config/i386/constraints.md (Yk): Swap meaning with k.
29167         * config/i386/i386.md (movhi_internal): Change Yk to k.
29168         (movqi_internal): Ditto.
29169         (*k<logic><mode>): Ditto.
29170         (*andhi_1): Ditto.
29171         (*andqi_1): Ditto.
29172         (kandn<mode>): Ditto.
29173         (*<code>hi_1): Ditto.
29174         (*<code>qi_1): Ditto.
29175         (kxnor<mode>): Ditto.
29176         (kortestzhi): Ditto.
29177         (kortestchi): Ditto.
29178         (kunpckhi): Ditto.
29179         (*one_cmplhi2_1): Ditto.
29180         (*one_cmplqi2_1): Ditto.
29181         * config/i386/sse.md (): Change k to Yk.
29182         (avx512f_load<mode>_mask): Ditto.
29183         (avx512f_blendm<mode>): Ditto.
29184         (avx512f_store<mode>_mask): Ditto.
29185         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
29186         (avx512f_storedqu<mode>_mask): Ditto.
29187         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
29188         Ditto.
29189         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
29190         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
29191         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
29192         (avx512f_maskcmp<mode>3): Ditto.
29193         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
29194         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
29195         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
29196         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
29197         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
29198         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
29199         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
29200         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
29201         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
29202         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
29203         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
29204         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
29205         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
29206         (vec_extract_lo_<mode>_maskm): Ditto.
29207         (vec_extract_hi_<mode>_maskm): Ditto.
29208         (avx512f_vternlog<mode>_mask): Ditto.
29209         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
29210         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
29211         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
29212         (avx512f_<code>v8div16qi2_mask): Ditto.
29213         (avx512f_<code>v8div16qi2_mask_store): Ditto.
29214         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
29215         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
29216         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
29217         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
29218         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
29219         (*avx512pf_gatherpf<mode>df_mask): Ditto.
29220         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
29221         (*avx512pf_scatterpf<mode>df_mask): Ditto.
29222         (avx512cd_maskb_vec_dupv8di): Ditto.
29223         (avx512cd_maskw_vec_dupv16si): Ditto.
29224         (avx512f_vpermi2var<mode>3_maskz): Ditto.
29225         (avx512f_vpermi2var<mode>3_mask): Ditto.
29226         (avx512f_vpermi2var<mode>3_mask): Ditto.
29227         (avx512f_vpermt2var<mode>3_maskz): Ditto.
29228         (*avx512f_gathersi<mode>): Ditto.
29229         (*avx512f_gathersi<mode>_2): Ditto.
29230         (*avx512f_gatherdi<mode>): Ditto.
29231         (*avx512f_gatherdi<mode>_2): Ditto.
29232         (*avx512f_scattersi<mode>): Ditto.
29233         (*avx512f_scatterdi<mode>): Ditto.
29234         (avx512f_compress<mode>_mask): Ditto.
29235         (avx512f_compressstore<mode>_mask): Ditto.
29236         (avx512f_expand<mode>_mask): Ditto.
29237         * config/i386/subst.md (mask): Change k to Yk.
29238         (mask_scalar_merge): Ditto.
29239         (sd): Ditto.
29240
29241 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
29242
29243         * doc/extend.texi (Vector Extensions): Document ?: in C++.
29244
29245 2014-01-31  Richard Biener  <rguenther@suse.de>
29246
29247         PR middle-end/59990
29248         * builtins.c (fold_builtin_memory_op): Make sure to not
29249         use a floating-point mode or a boolean or enumeral type for
29250         the copy operation.
29251
29252 2014-01-30  DJ Delorie  <dj@redhat.com>
29253
29254         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
29255         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
29256         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
29257         whenever main() has an epilogue.
29258
29259 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29260
29261         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
29262         unused variable "field".
29263         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
29264         (vsx_mergeh_<mode>): Likewise.
29265         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
29266         (altivec_vmrghh): Likewise.
29267         (altivec_vmrghw): Likewise.
29268         (altivec_vmrglb): Likewise.
29269         (altivec_vmrglh): Likewise.
29270         (altivec_vmrglw): Likewise.
29271         (altivec_vspltb): Add missing uses.
29272         (altivec_vsplth): Likewise.
29273         (altivec_vspltw): Likewise.
29274         (altivec_vspltsf): Likewise.
29275
29276 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
29277
29278         PR target/59923
29279         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
29280         frame related instructions.
29281
29282 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
29283
29284         PR rtl-optimization/59959
29285         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
29286         any reload of register whose subreg is invalid.
29287
29288 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
29289
29290         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
29291         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
29292         Add missing return type - void.
29293
29294 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29295
29296         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
29297         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
29298         remove element index adjustment for endian (now handled in vsx.md
29299         and altivec.md).
29300         (altivec_expand_vec_perm_const): Use
29301         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
29302         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
29303         (vsx_xxspltw_<mode>): Adjust element index for little endian.
29304         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
29305         define_expand and a new define_insn *altivec_vspltb_internal;
29306         adjust for -maltivec=be on a little endian target.
29307         (altivec_vspltb_direct): New.
29308         (altivec_vsplth): Divide into a define_expand and a new
29309         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
29310         little endian target.
29311         (altivec_vsplth_direct): New.
29312         (altivec_vspltw): Divide into a define_expand and a new
29313         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
29314         little endian target.
29315         (altivec_vspltw_direct): New.
29316         (altivec_vspltsf): Divide into a define_expand and a new
29317         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
29318         a little endian target.
29319
29320 2014-01-30  Richard Biener  <rguenther@suse.de>
29321
29322         PR tree-optimization/59993
29323         * tree-ssa-forwprop.c (associate_pointerplus): Check we
29324         can propagate form the earlier stmt and avoid the transform
29325         when the intermediate result is needed.
29326
29327 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
29328
29329         * README.Portability: Fix typo.
29330
29331 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
29332
29333         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
29334         comparison_operator with ordered_comparison_operator.
29335
29336 2014-01-30  Nick Clifton  <nickc@redhat.com>
29337
29338         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
29339         Rename to mn10300_store_multiple_regs.
29340         * config/mn10300/mn10300.c: Likewise.
29341         * config/mn10300/mn10300.md (store_movm): Fix typo: call
29342         store_multiple_regs.
29343         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
29344         Call mn10300_store_multiple_regs.
29345
29346 2014-01-30  Nick Clifton  <nickc@redhat.com>
29347             DJ Delorie  <dj@redhat.com>
29348
29349         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
29350         %fp 2 to keep registers after it properly word-aligned.
29351         (rl78_alloc_physical_registers_umul): Handle the case where both
29352         input operands are the same.
29353
29354 2014-01-30  Richard Biener  <rguenther@suse.de>
29355
29356         PR tree-optimization/59903
29357         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
29358         check properly.
29359
29360 2014-01-30  Jason Merrill  <jason@redhat.com>
29361
29362         PR c++/59633
29363         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
29364
29365         PR c++/59645
29366         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
29367
29368 2014-01-30  Richard Biener  <rguenther@suse.de>
29369
29370         PR tree-optimization/59951
29371         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
29372
29373 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
29374
29375         PR target/59784
29376         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
29377         SFmode to DFmode case.
29378
29379 2014-01-29  DJ Delorie  <dj@redhat.com>
29380
29381         * config/msp430/msp430.opt (-minrt): New.
29382         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
29383         if -minrt given.
29384         (ENDFILE_SPEC): Likewise.
29385
29386 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
29387
29388         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
29389         (estimate_function_body_sizes): Use it.
29390
29391 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
29392
29393         PR c++/58561
29394         * dwarf2out.c (is_cxx_auto): New.
29395         (is_base_type): Use it.
29396         (gen_type_die_with_usage): Likewise.
29397
29398 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29399
29400         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
29401         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
29402         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
29403         -maltivec=be with LE targets.
29404         (vsx_mergeh_<mode>): Likewise.
29405         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
29406         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
29407         (altivec_vmrghb): Replace with define_expand and new
29408         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
29409         (altivec_vmrghb_direct): New define_insn.
29410         (altivec_vmrghh): Replace with define_expand and new
29411         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
29412         (altivec_vmrghh_direct): New define_insn.
29413         (altivec_vmrghw): Replace with define_expand and new
29414         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
29415         (altivec_vmrghw_direct): New define_insn.
29416         (*altivec_vmrghsf): Adjust for endianness.
29417         (altivec_vmrglb): Replace with define_expand and new
29418         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
29419         (altivec_vmrglb_direct): New define_insn.
29420         (altivec_vmrglh): Replace with define_expand and new
29421         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
29422         (altivec_vmrglh_direct): New define_insn.
29423         (altivec_vmrglw): Replace with define_expand and new
29424         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
29425         (altivec_vmrglw_direct): New define_insn.
29426         (*altivec_vmrglsf): Adjust for endianness.
29427         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
29428         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
29429         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
29430         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
29431         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
29432         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
29433         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
29434         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
29435
29436 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
29437
29438         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
29439         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
29440         whitespace.
29441
29442 2014-01-29  Richard Biener  <rguenther@suse.de>
29443
29444         PR tree-optimization/58742
29445         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
29446         associate_pointerplus_align.
29447         (associate_pointerplus_diff): New function.
29448         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
29449         and associate_pointerplus_diff.
29450
29451 2014-01-29  Richard Biener  <rguenther@suse.de>
29452
29453         * lto-streamer.h (LTO_major_version): Bump to 3.
29454         (LTO_minor_version): Reset to 0.
29455
29456 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
29457
29458         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
29459         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
29460         (arm_file_start): Generate correct asm header for armv7ve.
29461         * config/arm/bpabi.h: Add multilib support for armv7ve.
29462         * config/arm/driver-arm.c: Change the architectures of cortex-a7
29463         and cortex-a15 to armv7ve.
29464         * config/arm/t-aprofile: Add multilib support for armv7ve.
29465         * doc/invoke.texi: Document -march=armv7ve.
29466
29467 2014-01-29  Richard Biener  <rguenther@suse.de>
29468
29469         PR tree-optimization/58742
29470         * tree-ssa-forwprop.c (associate_plusminus): Return true
29471         if we changed sth, defer EH cleanup to ...
29472         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
29473         (simplify_mult): New function.
29474
29475 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
29476
29477         PR middle-end/59917
29478         PR tree-optimization/59920
29479         * tree.c (build_common_builtin_nodes): Remove
29480         __builtin_setjmp_dispatcher initialization.
29481         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
29482         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
29483         instead of gsi_after_labels + manually skipping debug stmts.
29484         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
29485         ignore bbs with IFN_ABNORMAL_DISPATCHER.
29486         * tree-inline.c (copy_edges_for_bb): Remove
29487         can_make_abnormal_goto argument, instead add abnormal_goto_dest
29488         argument.  Ignore computed_goto_p stmts.  Don't call
29489         make_abnormal_goto_edges.  If a call might need abnormal edges
29490         for non-local gotos, see if it already has an edge to
29491         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
29492         with true argument, don't do anything then, otherwise add
29493         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
29494         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
29495         caller.
29496         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
29497         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
29498         (lower_stmt): Don't set data->calls_builtin_setjmp.
29499         (lower_builtin_setjmp): Adjust comment.
29500         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
29501         * tree-cfg.c (found_computed_goto): Remove.
29502         (factor_computed_gotos): Remove.
29503         (make_goto_expr_edges): Return bool, true for computed gotos.
29504         Don't call make_abnormal_goto_edges.
29505         (build_gimple_cfg): Don't set found_computed_goto, don't call
29506         factor_computed_gotos.
29507         (computed_goto_p): No longer static.
29508         (make_blocks): Don't set found_computed_goto.
29509         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
29510         (make_edges): If make_goto_expr_edges returns true, push bb
29511         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
29512         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
29513         vector.  Record mapping between bbs and OpenMP regions if there
29514         are any, adjust make_gimple_omp_edges caller.  Call
29515         handle_abnormal_edges.
29516         (make_abnormal_goto_edges): Remove.
29517         * tree-cfg.h (make_abnormal_goto_edges): Remove.
29518         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
29519         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
29520         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
29521         * internal-fn.def (ABNORMAL_DISPATCHER): New.
29522         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
29523         filling *region also set *region_idx to (*region)->entry->index.
29524
29525         PR other/58712
29526         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
29527         For REGs set ORIGINAL_REGNO.
29528
29529 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
29530
29531         * doc/md.texi: Mention that a target shouldn't implement
29532         vec_widen_(s|u)mul_even/odd pair if it is less efficient
29533         than hi/lo pair.
29534
29535 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
29536
29537         PR tree-optimization/59594
29538         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
29539         a copy of the datarefs vector rather than the vector itself.
29540
29541 2014-01-28  Jason Merrill  <jason@redhat.com>
29542
29543         PR c++/53756
29544         * dwarf2out.c (auto_die): New static.
29545         (gen_type_die_with_usage): Handle C++1y 'auto'.
29546         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
29547         on definition.
29548
29549 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
29550
29551         PR target/59672
29552         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
29553         (SPEC_X32): Likewise.
29554         (SPEC_64): Likewise.
29555         * config/i386/i386.c (ix86_option_override_internal): Turn off
29556         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
29557         for TARGET_16BIT.
29558         (x86_file_start): Output .code16gcc for TARGET_16BIT.
29559         * config/i386/i386.h (TARGET_16BIT): New macro.
29560         (TARGET_16BIT_P): Likewise.
29561         * config/i386/i386.opt: Add m16.
29562         * doc/invoke.texi: Document -m16.
29563
29564 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
29565
29566         PR preprocessor/59935
29567         * input.c (location_get_source_line): Bail out on when line number
29568         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
29569
29570 2014-01-28  Richard Biener  <rguenther@suse.de>
29571
29572         PR tree-optimization/58742
29573         * tree-ssa-forwprop.c (associate_plusminus): Handle
29574         pointer subtraction of the form (T)(P + A) - (T)P.
29575
29576 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29577
29578         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
29579         at const_int_cost.
29580
29581 2014-01-28  Richard Biener  <rguenther@suse.de>
29582
29583         Revert
29584         2014-01-28  Richard Biener  <rguenther@suse.de>
29585
29586         PR rtl-optimization/45364
29587         PR rtl-optimization/59890
29588         * var-tracking.c (local_get_addr_clear_given_value): Handle
29589         already cleared slot.
29590         (val_reset): Handle not allocated local_get_addr_cache.
29591         (vt_find_locations): Use post-order on the inverted CFG.
29592
29593 2014-01-28  Richard Biener  <rguenther@suse.de>
29594
29595         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
29596
29597 2014-01-28  Richard Biener  <rguenther@suse.de>
29598
29599         PR rtl-optimization/45364
29600         PR rtl-optimization/59890
29601         * var-tracking.c (local_get_addr_clear_given_value): Handle
29602         already cleared slot.
29603         (val_reset): Handle not allocated local_get_addr_cache.
29604         (vt_find_locations): Use post-order on the inverted CFG.
29605
29606 2014-01-28  Alan Modra  <amodra@gmail.com>
29607
29608         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
29609         * configure.ac <recursive call for build != host>: Define
29610         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
29611         and LD_FOR_BUILD too.
29612         * configure: Regenerate.
29613
29614 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
29615
29616         * config/i386/i386.c (get_builtin_code_for_version): Separate
29617         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
29618         Broadwell from Haswell.
29619
29620 2014-01-27  Steve Ellcey  <sellcey@mips.com>
29621
29622         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
29623         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
29624         * config/mips/mips.c (mips_option_override): Change setting
29625         of TARGET_DSP.
29626         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
29627         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
29628         Change from Mask to Var.
29629
29630 2014-01-27  Jeff Law  <law@redhat.com>
29631
29632         * ipa-inline.c (inline_small_functions): Fix typo.
29633
29634 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
29635
29636         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
29637         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
29638         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
29639         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
29640         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
29641         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
29642         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
29643         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
29644         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
29645         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
29646         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
29647         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
29648         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
29649         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
29650         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
29651         (_mm512_storeu_epi64): Ditto.
29652         (_mm512_cmpge_epi32_mask): Ditto.
29653         (_mm512_cmpge_epu32_mask): Ditto.
29654         (_mm512_cmpge_epi64_mask): Ditto.
29655         (_mm512_cmpge_epu64_mask): Ditto.
29656         (_mm512_cmple_epi32_mask): Ditto.
29657         (_mm512_cmple_epu32_mask): Ditto.
29658         (_mm512_cmple_epi64_mask): Ditto.
29659         (_mm512_cmple_epu64_mask): Ditto.
29660         (_mm512_cmplt_epi32_mask): Ditto.
29661         (_mm512_cmplt_epu32_mask): Ditto.
29662         (_mm512_cmplt_epi64_mask): Ditto.
29663         (_mm512_cmplt_epu64_mask): Ditto.
29664         (_mm512_cmpneq_epi32_mask): Ditto.
29665         (_mm512_cmpneq_epu32_mask): Ditto.
29666         (_mm512_cmpneq_epi64_mask): Ditto.
29667         (_mm512_cmpneq_epu64_mask): Ditto.
29668         (_mm512_expand_pd): Ditto.
29669         (_mm512_expand_ps): Ditto.
29670         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
29671         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
29672         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
29673         * config/i386/i386.c (ix86_builtins): Add
29674         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
29675         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
29676         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
29677         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
29678         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
29679         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
29680         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
29681         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
29682         IX86_BUILTIN_PMOVUSQW512_MEM.
29683         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
29684         __builtin_ia32_pmovsqd512mem_mask,
29685         __builtin_ia32_pmovqd512mem_mask,
29686         __builtin_ia32_pmovusqw512mem_mask,
29687         __builtin_ia32_pmovsqw512mem_mask,
29688         __builtin_ia32_pmovqw512mem_mask,
29689         __builtin_ia32_pmovusdw512mem_mask,
29690         __builtin_ia32_pmovsdw512mem_mask,
29691         __builtin_ia32_pmovdw512mem_mask,
29692         __builtin_ia32_pmovqb512mem_mask,
29693         __builtin_ia32_pmovusqb512mem_mask,
29694         __builtin_ia32_pmovsqb512mem_mask,
29695         __builtin_ia32_pmovusdb512mem_mask,
29696         __builtin_ia32_pmovsdb512mem_mask,
29697         __builtin_ia32_pmovdb512mem_mask.
29698         (bdesc_args): Add __builtin_ia32_expanddf512,
29699         __builtin_ia32_expandsf512.
29700         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
29701         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
29702         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
29703         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
29704         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
29705         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
29706         (avx512f_<code>v8div16qi2_mask_store): This.
29707         (avx512f_expand<mode>): New.
29708
29709 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
29710
29711         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
29712         New.
29713         (_mm512_mask_prefetch_i64gather_pd): Ditto.
29714         (_mm512_prefetch_i32scatter_pd): Ditto.
29715         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
29716         (_mm512_prefetch_i64scatter_pd): Ditto.
29717         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
29718         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
29719         (_mm512_mask_prefetch_i64gather_ps): Ditto.
29720         (_mm512_prefetch_i32scatter_ps): Ditto.
29721         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
29722         (_mm512_prefetch_i64scatter_ps): Ditto.
29723         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
29724         * config/i386/i386-builtin-types.def: Define
29725         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
29726         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
29727         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
29728         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
29729         IX86_BUILTIN_SCATTERPFQPD.
29730         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
29731         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
29732         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
29733         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
29734         __builtin_ia32_scatterpfqps.
29735         (ix86_expand_builtin): Expand new built-ins.
29736         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
29737         fix memory access data type.
29738         (*avx512pf_gatherpf<mode>_mask): Ditto.
29739         (*avx512pf_gatherpf<mode>): Ditto.
29740         (avx512pf_scatterpf<mode>): Ditto.
29741         (*avx512pf_scatterpf<mode>_mask): Ditto.
29742         (*avx512pf_scatterpf<mode>): Ditto.
29743         (GATHER_SCATTER_SF_MEM_MODE): New.
29744         (avx512pf_gatherpf<mode>df): Ditto.
29745         (*avx512pf_gatherpf<mode>df_mask): Ditto.
29746         (*avx512pf_scatterpf<mode>df): Ditto.
29747
29748 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
29749
29750         PR bootstrap/59934
29751         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
29752         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
29753         reached.
29754
29755 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
29756
29757         * common/config/arm/arm-common.c
29758         (arm_rewrite_mcpu): Handle multiple names.
29759         * config/arm/arm.h
29760         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
29761
29762 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
29763
29764         * gimple-builder.h (create_gimple_tmp): Delete.
29765
29766 2014-01-27  Christian Bruel  <christian.bruel@st.com>
29767
29768         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
29769         words comparisons.
29770
29771 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
29772
29773         * config/pa/pa.md (call): Generate indirect long calls to non-local
29774         functions when outputing 32-bit code.
29775         (call_value): Likewise except for special call to buggy powf function.
29776
29777         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
29778         portable runtime and PIC indirect calls.
29779         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
29780         and PIC call sequences.  Use ldo instead of blr to set return register
29781         in PIC call sequence.
29782
29783 2014-01-25  Walter Lee  <walt@tilera.com>
29784
29785         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
29786         avoid clobbering a live register.
29787
29788 2014-01-25  Walter Lee  <walt@tilera.com>
29789
29790         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
29791         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
29792         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
29793         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
29794
29795 2014-01-25  Walter Lee  <walt@tilera.com>
29796
29797         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
29798         arguments on even registers.
29799         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
29800         STACK_BOUNDARY.
29801         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
29802         (BIGGEST_ALIGNMENT): Ditto.
29803         (BIGGEST_FIELD_ALIGNMENT): Ditto.
29804
29805 2014-01-25  Walter Lee  <walt@tilera.com>
29806
29807         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
29808         insns before bundling.
29809         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
29810
29811 2014-01-25  Walter Lee  <walt@tilera.com>
29812
29813         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
29814         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
29815         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
29816
29817 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
29818
29819         * config/mips/constraints.md (kl): Delete.
29820         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
29821         define expands, using...
29822         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
29823         instructions for MIPS16.
29824         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
29825         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
29826
29827 2014-01-25  Walter Lee  <walt@tilera.com>
29828
29829         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
29830         (clzdi2): Ditto.
29831         (ffsdi2): Ditto.
29832
29833 2014-01-25  Walter Lee  <walt@tilera.com>
29834
29835         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
29836         (TARGET_EXPAND_TO_RTL_HOOK): Define.
29837
29838 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
29839
29840         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
29841         Handle XOR.
29842
29843 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
29844
29845         * print-rtl.c (in_call_function_usage): New var.
29846         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
29847         EXPR_LIST mode as mode and not as reg note name.
29848
29849         PR middle-end/59561
29850         * cfgloopmanip.c (copy_loop_info): If
29851         loop->warned_aggressive_loop_optimizations, make sure
29852         the flag is set in target loop too.
29853
29854 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
29855
29856         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
29857         flag_cilkplus.
29858         * builtins.def: Likewise.
29859         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
29860         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
29861         * ira.c (ira_setup_eliminable_regset): Likewise.
29862         * omp-low.c (gate_expand_omp): Likewise.
29863         (execute_lower_omp): Likewise.
29864         (diagnose_sb_0): Likewise.
29865         (gate_diagnose_omp_blocks): Likewise.
29866         (simd_clone_clauses_extract): Likewise.
29867         (gate): Likewise.
29868
29869 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29870
29871         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
29872         correction for little endian...
29873         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
29874         here.
29875
29876 2014-01-24  Jeff Law  <law@redhat.com>
29877
29878         PR tree-optimization/59919
29879         * tree-vrp.c (find_assert_locations_1): Do not register asserts
29880         for non-returning calls.
29881
29882 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
29883
29884         * common/config/aarch64/aarch64-common.c
29885         (aarch64_rewrite_mcpu): Handle multiple names.
29886         * config/aarch64/aarch64.h
29887         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
29888
29889 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
29890
29891         * input.c (add_file_to_cache_tab): Handle the case where fopen
29892         returns NULL.
29893
29894 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
29895
29896         PR target/59929
29897         * config/i386/i386.md (pushsf splitter): Get stack adjustment
29898         from push operand if code of push isn't PRE_DEC.
29899
29900 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
29901
29902         PR target/59909
29903         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
29904         -mquad-memory-atomic.  Update -mquad-memory documentation to say
29905         it is only used for non-atomic loads/stores.
29906
29907         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
29908         -mquad-memory or -mquad-memory-atomic switches.
29909
29910         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
29911         -mquad-memory-atomic to ISA 2.07 support.
29912
29913         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
29914         to separate support of normal quad word memory operations (ldq, stq)
29915         from the atomic quad word memory operations.
29916
29917         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
29918         support to separate non-atomic quad word operations from atomic
29919         quad word operations.  Disable non-atomic quad word operations in
29920         little endian mode so that we don't have to swap words after the
29921         load and before the store.
29922         (quad_load_store_p): Add comment about atomic quad word support.
29923         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
29924         options printed with -mdebug=reg.
29925
29926         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
29927         -mquad-memory-atomic as the test for whether we have quad word
29928         atomic instructions.
29929         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
29930         or -mp8-vector are used, allow byte/half-word atomic operations.
29931
29932         * config/rs6000/sync.md (load_lockedti): Insure that the address
29933         is a proper indexed or indirect address for the lqarx instruction.
29934         On little endian systems, swap the hi/lo registers after the lqarx
29935         instruction.
29936         (load_lockedpti): Use indexed_or_indirect_operand predicate to
29937         insure the address is valid for the lqarx instruction.
29938         (store_conditionalti): Insure that the address is a proper indexed
29939         or indirect address for the stqcrx. instruction.  On little endian
29940         systems, swap the hi/lo registers before doing the stqcrx.
29941         instruction.
29942         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
29943         insure the address is valid for the stqcrx. instruction.
29944
29945         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
29946         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
29947         type of quad memory support is available.
29948
29949 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
29950
29951         PR regression/59915
29952         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
29953         there is a danger of looping.
29954
29955 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
29956
29957         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
29958         force flag_ira_loop_pressure if set via command line.
29959
29960 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
29961
29962         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
29963         (ashr_simd): New builtin handling DI mode.
29964         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
29965         (aarch64_sshr_simddi): New match pattern.
29966         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
29967         (vshrd_n_s64): Likewise.
29968         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
29969
29970 2014-01-23  Nick Clifton  <nickc@redhat.com>
29971
29972         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
29973         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
29974         favour of mcu specific scripts.
29975         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
29976         430x multilibs.
29977
29978 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
29979             Alex Velenko  <Alex.Velenko@arm.com>
29980
29981         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
29982         (vaddv_s16): Likewise.
29983         (vaddv_s32): Likewise.
29984         (vaddv_u8): Likewise.
29985         (vaddv_u16): Likewise.
29986         (vaddv_u32): Likewise.
29987         (vaddvq_s8): Likewise.
29988         (vaddvq_s16): Likewise.
29989         (vaddvq_s32): Likewise.
29990         (vaddvq_s64): Likewise.
29991         (vaddvq_u8): Likewise.
29992         (vaddvq_u16): Likewise.
29993         (vaddvq_u32): Likewise.
29994         (vaddvq_u64): Likewise.
29995         (vaddv_f32): Likewise.
29996         (vaddvq_f32): Likewise.
29997         (vaddvq_f64): Likewise.
29998         (vmaxv_f32): Likewise.
29999         (vmaxv_s8): Likewise.
30000         (vmaxv_s16): Likewise.
30001         (vmaxv_s32): Likewise.
30002         (vmaxv_u8): Likewise.
30003         (vmaxv_u16): Likewise.
30004         (vmaxv_u32): Likewise.
30005         (vmaxvq_f32): Likewise.
30006         (vmaxvq_f64): Likewise.
30007         (vmaxvq_s8): Likewise.
30008         (vmaxvq_s16): Likewise.
30009         (vmaxvq_s32): Likewise.
30010         (vmaxvq_u8): Likewise.
30011         (vmaxvq_u16): Likewise.
30012         (vmaxvq_u32): Likewise.
30013         (vmaxnmv_f32): Likewise.
30014         (vmaxnmvq_f32): Likewise.
30015         (vmaxnmvq_f64): Likewise.
30016         (vminv_f32): Likewise.
30017         (vminv_s8): Likewise.
30018         (vminv_s16): Likewise.
30019         (vminv_s32): Likewise.
30020         (vminv_u8): Likewise.
30021         (vminv_u16): Likewise.
30022         (vminv_u32): Likewise.
30023         (vminvq_f32): Likewise.
30024         (vminvq_f64): Likewise.
30025         (vminvq_s8): Likewise.
30026         (vminvq_s16): Likewise.
30027         (vminvq_s32): Likewise.
30028         (vminvq_u8): Likewise.
30029         (vminvq_u16): Likewise.
30030         (vminvq_u32): Likewise.
30031         (vminnmv_f32): Likewise.
30032         (vminnmvq_f32): Likewise.
30033         (vminnmvq_f64): Likewise.
30034
30035 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
30036
30037         * config/aarch64/aarch64-simd.md
30038         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
30039         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
30040         (*aarch64_mul3_elt<mode>): Likewise.
30041         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
30042         (*aarch64_mul3_elt_to_64v2df): Likewise.
30043         (*aarch64_mla_elt<mode>): Likewise.
30044         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
30045         (*aarch64_mls_elt<mode>): Likewise.
30046         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
30047         (*aarch64_fma4_elt<mode>): Likewise.
30048         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
30049         (*aarch64_fma4_elt_to_64v2df): Likewise.
30050         (*aarch64_fnma4_elt<mode>): Likewise.
30051         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
30052         (*aarch64_fnma4_elt_to_64v2df): Likewise.
30053         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
30054         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
30055         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
30056         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
30057         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
30058         (aarch64_sqdmull_lane<mode>_internal): Likewise.
30059         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
30060
30061 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
30062
30063         * config/aarch64/aarch64-simd.md
30064         (aarch64_be_checked_get_lane<mode>): New define_expand.
30065         * config/aarch64/aarch64-simd-builtins.def
30066         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
30067         New builtin definition.
30068         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
30069         Use new safe be builtin.
30070
30071 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
30072
30073         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
30074         New define_insn.
30075         (aarch64_be_st1<mode>): Likewise.
30076         (aarch_ld1<VALL:mode>): Define_expand modified.
30077         (aarch_st1<VALL:mode>): Likewise.
30078         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
30079         (UNSPEC_ST1): Likewise.
30080
30081 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
30082
30083         * config/microblaze/microblaze.md: Add trap insn and attribute
30084
30085 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
30086
30087         PR preprocessor/58580
30088         * input.h (location_get_source_line): Take an additional line_size
30089         parameter.
30090         (void diagnostics_file_cache_fini): Declare new function.
30091         * input.c (struct fcache): New type.
30092         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
30093         New static constants.
30094         (diagnostic_file_cache_init, total_lines_num)
30095         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
30096         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
30097         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
30098         (get_next_line, read_next_line, goto_next_line, read_line_num):
30099         New static function definitions.
30100         (diagnostic_file_cache_fini): New function.
30101         (location_get_source_line): Take an additional output line_len
30102         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
30103         read_line_num.
30104         * diagnostic.c (diagnostic_finish): Call
30105         diagnostic_file_cache_fini.
30106         (adjust_line): Take an additional input parameter for the length
30107         of the line, rather than calculating it with strlen.
30108         (diagnostic_show_locus): Adjust the use of
30109         location_get_source_line and adjust_line with respect to their new
30110         signature.  While displaying a line now, do not stop at the first
30111         null byte.  Rather, display the zero byte as a space and keep
30112         going until we reach the size of the line.
30113         * Makefile.in: Add vec.o to OBJS-libcommon
30114
30115 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
30116             Ilya Tocar  <ilya.tocar@intel.com>
30117
30118         * config/i386/avx512fintrin.h (_mm512_kmov): New.
30119         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
30120         (__builtin_ia32_kmov16): Ditto.
30121         * config/i386/i386.md (UNSPEC_KMOV): New.
30122         (kmovw): Ditto.
30123
30124 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
30125
30126         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
30127         (_mm512_storeu_si512): Ditto.
30128
30129 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
30130
30131         PR target/52125
30132         * rtl.h (get_referenced_operands): Declare.
30133         * recog.c (get_referenced_operands): New function.
30134         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
30135         operands have been referenced when recording LO_SUM references.
30136
30137 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
30138
30139         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
30140
30141 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
30142
30143         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
30144         Enable for generic and recent AMD targets.
30145
30146 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
30147
30148         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
30149         ARG_SIZE note when adjustment was eliminated.
30150
30151 2014-01-22  Jeff Law  <law@redhat.com>
30152
30153         PR tree-optimization/59597
30154         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
30155         in file.  Accept new argument REGISTERING and use it to modify
30156         dump output appropriately.
30157         (register_jump_thread): Corresponding changes.
30158         (mark_threaded_blocks): Reinstate code to cancel unprofitable
30159         thread paths involving joiner blocks.  Add code to dump cancelled
30160         jump threading paths.
30161
30162 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
30163
30164         PR rtl-optimization/59477
30165         * lra-constraints.c (inherit_in_ebb): Process call for living hard
30166         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
30167
30168 2014-01-22  Tom Tromey  <tromey@redhat.com>
30169
30170         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
30171         PARAMS.
30172         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
30173
30174 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
30175
30176         PR rtl-optimization/59896
30177         * lra-constraints.c (process_alt_operands): Check unused note for
30178         matched operands of insn with no output reloads.
30179
30180 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
30181
30182         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
30183         (mips_move_from_gpr_cost): Likewise.
30184
30185 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
30186
30187         PR rtl-optimization/59858
30188         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
30189         ira_class_hard_regs_num.
30190         (process_alt_operands): Increase reject for dying matched operand.
30191
30192 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
30193
30194         PR target/59003
30195         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
30196         smaller than size, perform several stores or loads and stores
30197         at dst + count - size to store or copy all of size bytes, rather
30198         than just last modesize bytes.
30199
30200 2014-01-20  DJ Delorie  <dj@redhat.com>
30201
30202         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
30203         that CLOBBERs are REGs before propogating their values.
30204
30205 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
30206
30207         PR middle-end/59789
30208         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
30209         (cgraph_inline_failed_type): New function.
30210         * cgraph.h (DEFCIFCODE): Add type.
30211         (cgraph_inline_failed_type_t): New enum.
30212         (cgraph_inline_failed_type): New prototype.
30213         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
30214         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
30215         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
30216         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
30217         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
30218         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
30219         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
30220         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
30221         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
30222         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
30223         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
30224         OPTIMIZATION_MISMATCH.
30225         * tree-inline.c (expand_call_inline): Emit errors during
30226         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
30227
30228 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
30229
30230         PR target/59685
30231         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
30232         mode attribute in insn output.
30233
30234 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
30235
30236         * output.h (output_constant): Delete.
30237         * varasm.c (output_constant): Make private.
30238
30239 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
30240
30241         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
30242
30243 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
30244
30245         PR middle-end/59860
30246         * tree.h (fold_builtin_strcat): New prototype.
30247         * builtins.c (fold_builtin_strcat): No longer static.  Add len
30248         argument, if non-NULL, don't call c_strlen.  Optimize
30249         directly into __builtin_memcpy instead of __builtin_strcpy.
30250         (fold_builtin_2): Adjust fold_builtin_strcat caller.
30251         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
30252
30253 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
30254
30255         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
30256         for SImode_address_operand operands, having only a REG argument.
30257
30258 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
30259
30260         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
30261         loader name using mbig-endian.
30262         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
30263
30264 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
30265
30266         * doc/invoke.texi (-march): Clarify documentation for AArch64.
30267         (-mtune): Likewise.
30268         (-mcpu): Likewise.
30269
30270 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
30271
30272         * config/aarch64/aarch64-protos.h
30273         (aarch64_cannot_change_mode_class_ptr): Declare.
30274         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
30275         aarch64_cannot_change_mode_class_ptr): New.
30276         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
30277         backend hook aarch64_cannot_change_mode_class.
30278
30279 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
30280
30281         * common/config/aarch64/aarch64-common.c
30282         (aarch64_handle_option): Don't handle any option order logic here.
30283         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
30284         selected_cpu, warn on architecture version mismatch.
30285         (aarch64_override_options): Fix parsing order for option strings.
30286
30287 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
30288             Iain Sandoe  <iain@codesourcery.com>
30289
30290         PR bootstrap/59496
30291         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
30292         warning.  Amend comment to reflect current functionality.
30293
30294 2014-01-20  Richard Biener  <rguenther@suse.de>
30295
30296         PR middle-end/59860
30297         * builtins.c (fold_builtin_strcat): Remove case better handled
30298         by tree-ssa-strlen.c.
30299
30300 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
30301
30302         * config/aarch64/aarch64.opt
30303         (mcpu, march, mtune): Make case-insensitive.
30304
30305 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
30306
30307         PR target/59880
30308         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
30309         if operands[1] is a REG or ZERO_EXTEND of a REG.
30310
30311 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
30312
30313         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
30314
30315 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
30316
30317         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
30318         long non-pic millicode calls.
30319
30320 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
30321
30322         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
30323
30324 2014-01-19  Kito Cheng  <kito@0xlab.org>
30325
30326         * builtins.c (expand_movstr): Check movstr expand done or fail.
30327
30328 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
30329             H.J. Lu  <hongjiu.lu@intel.com>
30330
30331         PR target/59379
30332         * config/i386/i386.md (*lea<mode>): Zero-extend return register
30333         to DImode for zero-extended addresses.
30334
30335 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
30336
30337         PR rtl-optimization/57763
30338         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
30339         on the new indirect jump_insn and increment LABEL_NUSES (label).
30340
30341 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
30342
30343         PR bootstrap/59580
30344         PR bootstrap/59583
30345         * config.gcc (x86_archs): New variable.
30346         (x86_64_archs): Likewise.
30347         (x86_cpus): Likewise.
30348         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
30349         --with-arch/--with-cpu= options.
30350         Support --with-arch=/--with-cpu={nehalem,westmere,
30351         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
30352
30353 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
30354
30355         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
30356         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
30357
30358 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
30359
30360         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
30361
30362 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
30363
30364         PR target/58944
30365         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
30366         clear cpp_get_options (parse_in)->warn_unused_macros for
30367         ix86_target_macros_internal with cpp_define.
30368
30369 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
30370
30371         * jump.c (delete_related_insns): Keep (use (insn))s.
30372         * reorg.c (redundant_insn): Check for barriers too.
30373
30374 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30375
30376         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
30377
30378 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
30379
30380         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
30381         call to $$dyncall when TARGET_LONG_CALLS is true.
30382
30383 2014-01-17  Jeff Law  <law@redhat.com>
30384
30385         * ree.c (combine_set_extension): Temporarily disable test for
30386         changing number of hard registers.
30387
30388 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
30389
30390         PR middle-end/58125
30391         * ipa-inline-analysis.c (inline_free_summary):
30392         Do not free summary of aliases.
30393
30394 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
30395
30396         PR middle-end/59706
30397         * gimplify.c (gimplify_expr): Use create_tmp_var
30398         instead of create_tmp_var_raw.  If cond doesn't have
30399         integral type, don't add the IFN_ANNOTATE builtin at all.
30400
30401 2014-01-17  Martin Jambor  <mjambor@suse.cz>
30402
30403         PR ipa/59736
30404         * ipa-cp.c (prev_edge_clone): New variable.
30405         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
30406         Also resize prev_edge_clone vector.
30407         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
30408         (ipcp_edge_removal_hook): New function.
30409         (ipcp_driver): Register ipcp_edge_removal_hook.
30410
30411 2014-01-17  Andrew Pinski  <apinski@cavium.com>
30412             Steve Ellcey  <sellcey@mips.com>
30413
30414         PR target/59462
30415         * config/mips/mips.c (mips_print_operand): Check operand mode instead
30416         of operator mode.
30417
30418 2014-01-17  Jeff Law  <law@redhat.com>
30419
30420         PR middle-end/57904
30421         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
30422         so that pass_ccp runs first.
30423
30424 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30425
30426         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
30427         (ix86_adjust_cost): Use !TARGET_XXX.
30428         (do_reorder_for_imul): Likewise.
30429         (swap_top_of_ready_list): Likewise.
30430         (ix86_sched_reorder): Likewise.
30431
30432 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30433
30434         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
30435         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
30436         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
30437         (intel_memset): New.  Duplicate slm_memset.
30438         (intel_cost): New.  Duplicate slm_cost.
30439         (m_INTEL): New macro.
30440         (processor_target_table): Add "intel".
30441         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
30442         with PROCESSOR_INTEL for "intel".
30443         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
30444         PROCESSOR_SILVERMONT.
30445         (ix86_issue_rate): Likewise.
30446         (ix86_adjust_cost): Likewise.
30447         (ia32_multipass_dfa_lookahead): Likewise.
30448         (swap_top_of_ready_list): Likewise.
30449         (ix86_sched_reorder): Likewise.
30450         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
30451         instead of TARGET_OPT_AGU.
30452         * config/i386/i386.h (TARGET_INTEL): New.
30453         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
30454         (processor_type): Add PROCESSOR_INTEL.
30455         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
30456         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
30457
30458 2014-01-17  Marek Polacek  <polacek@redhat.com>
30459
30460         PR c/58346
30461         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
30462         size is zero.
30463
30464 2014-01-17  Richard Biener  <rguenther@suse.de>
30465
30466         PR tree-optimization/46590
30467         * opts.c (default_options_table): Add entries for
30468         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
30469         all enabled at -O1 but not for -Og.
30470         * common.opt (fbranch-count-reg): Remove Init(1).
30471         (fmove-loop-invariants): Likewise.
30472         (ftree-pta): Likewise.
30473
30474 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
30475
30476         * config/i386/i386.c (ix86_data_alignment): For compatibility with
30477         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
30478         decls to at least the GCC 4.8 used alignments.
30479
30480         PR fortran/59440
30481         * tree-nested.c (convert_nonlocal_reference_stmt,
30482         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
30483         of GIMPLE_BIND stmts, adjust associated decls.
30484
30485 2014-01-17  Richard Biener  <rguenther@suse.de>
30486
30487         PR tree-optimization/46590
30488         * vec.h (vec<>::bseach): New member function implementing
30489         binary search according to C89 bsearch.
30490         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
30491         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
30492         bitmap pointer again.  Make accesses_in_loop a flat array.
30493         (mem_ref_obstack): New global.
30494         (outermost_indep_loop): Adjust for mem_ref->stored changes.
30495         (mark_ref_stored): Likewise.
30496         (ref_indep_loop_p_2): Likewise.
30497         (set_ref_stored_in_loop): New helper function.
30498         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
30499         (memref_free): Adjust.
30500         (record_mem_ref_loc): Simplify.
30501         (gather_mem_refs_stmt): Adjust.
30502         (sort_locs_in_loop_postorder_cmp): New function.
30503         (analyze_memory_references): Sort accesses_in_loop after
30504         loop postorder number.
30505         (find_ref_loc_in_loop_cmp): New function.
30506         (for_all_locs_in_loop): Find relevant cluster of locs in
30507         accesses_in_loop and iterate without recursion.
30508         (execute_sm): Avoid uninit warning.
30509         (struct ref_always_accessed): Simplify.
30510         (ref_always_accessed::operator ()): Likewise.
30511         (ref_always_accessed_p): Likewise.
30512         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
30513         loop postorder numbers here.
30514         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
30515         numbers.
30516
30517 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
30518
30519         PR c++/57945
30520         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
30521         on decls for which assemble_alias has been called.
30522
30523 2014-01-17  Nick Clifton  <nickc@redhat.com>
30524
30525         * config/msp430/msp430.opt: (mcpu): New option.
30526         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
30527         (msp430_option_override): Parse target_cpu.  If the MCU name
30528         matches a generic string, clear target_mcu.
30529         (msp430_attr): Allow numeric interrupt values up to 63.
30530         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
30531         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
30532         option.
30533         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
30534         Add mcpu matches.
30535         * config/msp430/msp430.md (popm): Use %J rather than %I.
30536         (addsi3): Use msp430_nonimmediate_operand for operand 2.
30537         (addhi_cy_i): Use immediate_operand for operand 2.
30538         * doc/invoke.texi: Document -mcpu option.
30539
30540 2014-01-17  Richard Biener  <rguenther@suse.de>
30541
30542         PR rtl-optimization/38518
30543         * df.h (df_analyze_loop): Declare.
30544         * df-core.c: Include cfgloop.h.
30545         (df_analyze_1): Split out main part of df_analyze.
30546         (df_analyze): Adjust.
30547         (loop_inverted_post_order_compute): New function.
30548         (loop_post_order_compute): Likewise.
30549         (df_analyze_loop): New function avoiding whole-function
30550         postorder computes.
30551         * loop-invariant.c (find_defs): Use df_analyze_loop.
30552         (find_invariants): Adjust.
30553         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
30554
30555 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
30556
30557         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
30558         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
30559
30560 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
30561
30562         * ipa-ref.c (ipa_remove_stmt_references): Fix references
30563         traversal when removing references.
30564
30565 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
30566
30567         PR ipa/59775
30568         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
30569
30570 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
30571
30572         PR middle-end/56791
30573         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
30574         pushing a reload for an autoinc when we had previously reloaded an
30575         inner part of the address.
30576
30577 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
30578
30579         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
30580         field.
30581         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
30582         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
30583         when not giving up or versioning for alias only because of
30584         loop->safelen.
30585         (vect_analyze_data_ref_dependences): Set to true.
30586         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
30587         is a GIMPLE_PHI.
30588         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
30589         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
30590         to the condition.
30591
30592         PR middle-end/58344
30593         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
30594
30595         PR target/59839
30596         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
30597         operand 0 predicate for gathers, use a new pseudo as subtarget.
30598
30599 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
30600
30601         PR middle-end/59609
30602         * lra-constraints.c (process_alt_operands): Add printing debug info.
30603         Check absence of input/output reloads for matched operands too.
30604
30605 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
30606
30607         PR rtl-optimization/59835
30608         * ira.c (ira_init_register_move_cost): Increase cost for
30609         impossible modes.
30610
30611 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
30612
30613         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
30614
30615 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
30616
30617         PR target/59780
30618         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
30619         non-register objects.  Use gen_(high/low)part more consistently.
30620         Fix assertions.
30621
30622 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
30623
30624         PR target/59844
30625         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
30626         endian support, remove tests for WORDS_BIG_ENDIAN.
30627         (p8_mfvsrd_3_<mode>): Likewise.
30628         (reload_gpr_from_vsx<mode>): Likewise.
30629         (reload_gpr_from_vsxsf): Likewise.
30630         (p8_mfvsrd_4_disf): Likewise.
30631
30632 2014-01-16  Richard Biener  <rguenther@suse.de>
30633
30634         PR rtl-optimization/46590
30635         * lcm.c (compute_antinout_edge): Use postorder iteration.
30636         (compute_laterin): Use inverted postorder iteration.
30637
30638 2014-01-16  Nick Clifton  <nickc@redhat.com>
30639
30640         PR middle-end/28865
30641         * varasm.c (output_constant): Return the number of bytes actually
30642         emitted.
30643         (output_constructor_array_range): Update the field size with the
30644         number of bytes emitted by output_constant.
30645         (output_constructor_regular_field): Likewise.  Also do not
30646         complain if the total number of bytes emitted is now greater
30647         than the expected fieldpos.
30648         * output.h (output_constant): Update prototype and descriptive comment.
30649
30650 2014-01-16  Marek Polacek  <polacek@redhat.com>
30651
30652         PR middle-end/59827
30653         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
30654         it is error_mark_node.
30655
30656 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
30657
30658         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
30659         VALID_AVX256_REG_OR_OI_MODE.
30660
30661 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
30662
30663         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
30664         current procedure should be profiled.
30665
30666 2014-01-15  Andrew Pinski  <apinski@cavium.com>
30667
30668         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
30669         of moving from/to the STACK_REG register class.
30670
30671 2014-01-15  Richard Henderson  <rth@redhat.com>
30672
30673         PR debug/54694
30674         * reginfo.c (global_regs_decl): Globalize.
30675         * rtl.h (global_regs_decl): Declare.
30676         * ira.c (do_reload): Diagnose frame_pointer_needed and it
30677         reserved via global_regs.
30678
30679 2014-01-15  Teresa Johnson  <tejohnson@google.com>
30680
30681         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
30682
30683 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
30684
30685         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
30686         and vmulosh rather than call gen_vec_widen_smult_*.
30687         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
30688         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
30689         (vec_widen_smult_even_v16qi): Likewise.
30690         (vec_widen_umult_even_v8hi): Likewise.
30691         (vec_widen_smult_even_v8hi): Likewise.
30692         (vec_widen_umult_odd_v16qi): Likewise.
30693         (vec_widen_smult_odd_v16qi): Likewise.
30694         (vec_widen_umult_odd_v8hi): Likewise.
30695         (vec_widen_smult_odd_v8hi): Likewise.
30696         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
30697         vmuloub rather than call gen_vec_widen_umult_*.
30698         (vec_widen_umult_lo_v16qi): Likewise.
30699         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
30700         vmulosb rather than call gen_vec_widen_smult_*.
30701         (vec_widen_smult_lo_v16qi): Likewise.
30702         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
30703         rather than call gen_vec_widen_umult_*.
30704         (vec_widen_umult_lo_v8hi): Likewise.
30705         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
30706         rather than call gen_vec_widen_smult_*.
30707         (vec_widen_smult_lo_v8hi): Likewise.
30708
30709 2014-01-15  Jeff Law  <law@redhat.com>
30710
30711         PR tree-optimization/59747
30712         * ree.c (find_and_remove_re): Properly handle case where a second
30713         eliminated extension requires widening a copy created for elimination
30714         of a prior extension.
30715         (combine_set_extension): Ensure that the number of hard regs needed
30716         for a destination register does not change when we widen it.
30717
30718 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30719
30720         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
30721         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
30722         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
30723         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
30724         (avr-*-rtems*): Likewise.
30725         (bfin*-rtems*): Likewise.
30726         (moxie-*-rtems*): Likewise.
30727         (h8300-*-rtems*): Likewise.
30728         (i[34567]86-*-rtems*): Likewise.
30729         (lm32-*-rtems*): Likewise.
30730         (m32r-*-rtems*): Likewise.
30731         (m68k-*-rtems*): Likewise.
30732         (microblaze*-*-rtems*): Likewise.
30733         (mips*-*-rtems*): Likewise.
30734         (powerpc-*-rtems*): Likewise.
30735         (sh-*-rtems*): Likewise.
30736         (sparc-*-rtems*): Likewise.
30737         (sparc64-*-rtems*): Likewise.
30738         (v850-*-rtems*): Likewise.
30739         (m32c-*-rtems*): Likewise.
30740
30741 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
30742
30743         PR rtl-optimization/59511
30744         * ira.c (ira_init_register_move_cost): Use memory costs for some
30745         cases of register move cost calculations.
30746         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
30747         instead of BB frequency.
30748         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
30749         * lra-assigns.c (find_hard_regno_for): Ditto.
30750
30751 2014-01-15  Richard Biener  <rguenther@suse.de>
30752
30753         PR tree-optimization/59822
30754         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
30755         (vectorizable_load): Use it to hoist defs of uses of invariant
30756         loads out of the loop.
30757
30758 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
30759             Kugan Vivekanandarajah  <kuganv@linaro.org>
30760
30761         PR target/59695
30762         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
30763         truncation.
30764
30765 2014-01-15  Richard Biener  <rguenther@suse.de>
30766
30767         PR rtl-optimization/59802
30768         * lcm.c (compute_available): Use inverted postorder to seed
30769         the initial worklist.
30770
30771 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30772
30773         PR target/59803
30774         * config/s390/s390.c (s390_preferred_reload_class): Don't return
30775         ADDR_REGS for invalid symrefs in non-PIC code.
30776
30777 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
30778
30779         PR other/58712
30780         * builtins.c (determine_block_size): Initialize *probable_max_size
30781         even if len_rtx is CONST_INT.
30782
30783 2014-01-14  Andrew Pinski  <apinski@cavium.com>
30784
30785         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
30786         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
30787         (cortexa53_tunings): Likewise.
30788         (aarch64_sched_issue_rate): New function.
30789         (TARGET_SCHED_ISSUE_RATE): Define.
30790
30791 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
30792
30793         * ira-costs.c (find_costs_and_classes): Add missed
30794         ira_init_register_move_cost_if_necessary.
30795
30796 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
30797
30798         PR target/59787
30799         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
30800
30801 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
30802
30803         PR target/59794
30804         * config/i386/i386.c (type_natural_mode): Add a bool parameter
30805         to indicate if type is used for function return value.  Warn ABI
30806         change if the vector mode isn't available for function return value.
30807         (ix86_function_arg_advance): Pass false to type_natural_mode.
30808         (ix86_function_arg): Likewise.
30809         (ix86_gimplify_va_arg): Likewise.
30810         (function_arg_32): Don't warn ABI change.
30811         (ix86_function_value): Pass true to type_natural_mode.
30812         (ix86_return_in_memory): Likewise.
30813         (ix86_struct_value_rtx): Removed.
30814         (TARGET_STRUCT_VALUE_RTX): Likewise.
30815
30816 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
30817
30818         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
30819         converting a conditional jump into a conditional return.
30820
30821 2014-01-14  Richard Biener  <rguenther@suse.de>
30822
30823         PR tree-optimization/58921
30824         PR tree-optimization/59006
30825         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
30826         hoisting invariant stmts.
30827         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
30828         invariant loads on the preheader edge if possible.
30829
30830 2014-01-14  Joey Ye  <joey.ye@arm.com>
30831
30832         * doc/plugin.texi (Building GCC plugins): Update to C++.
30833
30834 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
30835
30836         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
30837         (_mm_rcp28_round_ss): Ditto.
30838         (_mm_rsqrt28_round_sd): Ditto.
30839         (_mm_rsqrt28_round_ss): Ditto.
30840         (_mm_rcp28_sd): Ditto.
30841         (_mm_rcp28_ss): Ditto.
30842         (_mm_rsqrt28_sd): Ditto.
30843         (_mm_rsqrt28_ss): Ditto.
30844         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
30845         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
30846         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
30847         (IX86_BUILTIN_RCP28SD): Ditto.
30848         (IX86_BUILTIN_RCP28SS): Ditto.
30849         (IX86_BUILTIN_RSQRT28SD): Ditto.
30850         (IX86_BUILTIN_RSQRT28SS): Ditto.
30851         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
30852         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
30853         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
30854         (ix86_expand_special_args_builtin): Expand new FTYPE.
30855         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
30856         (srcp14<mode>): Make insn unary.
30857         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
30858         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
30859         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
30860         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
30861         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
30862         Fix rounding: make it SAE only.
30863         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
30864         Ditto.
30865         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
30866         Ditto.
30867         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
30868         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
30869         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
30870         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
30871         (round_saeonly_mask_scalar_operand4): Ditto.
30872         (round_saeonly_mask_scalar_op3): Ditto.
30873         (round_saeonly_mask_scalar_op4): Ditto.
30874
30875 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30876
30877         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
30878         Implement -maltivec=be for vec_insert and vec_extract.
30879
30880 2014-01-10  DJ Delorie  <dj@redhat.com>
30881
30882         * config/msp430/msp430.md (call_internal): Don't allow memory
30883         references with SP as the base register.
30884         (call_value_internal): Likewise.
30885         * config/msp430/constraints.md (Yc): New.  For memory references
30886         that don't use SP as a base register.
30887
30888         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
30889         "an integer without a # prefix"
30890         * config/msp430/msp430.md (epilogue_helper): Use it.
30891
30892 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
30893
30894         PR target/59617
30895         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
30896         AVX512F gather builtins.
30897         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
30898         on gather decls with INTEGER_TYPE masktype.
30899         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
30900         directly into the builtin rather than hoisting it before loop.
30901
30902         PR tree-optimization/59387
30903         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
30904         (scev_const_prop): If folded_casts and type has undefined overflow,
30905         use force_gimple_operand instead of force_gimple_operand_gsi and
30906         for each added stmt if it is assign with
30907         arith_code_with_undefined_signed_overflow, call
30908         rewrite_to_defined_overflow.
30909         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
30910         gimple-fold.h instead.
30911         (arith_code_with_undefined_signed_overflow,
30912         rewrite_to_defined_overflow): Moved to ...
30913         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
30914         rewrite_to_defined_overflow): ... here.  No longer static.
30915         Include gimplify-me.h.
30916         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
30917         rewrite_to_defined_overflow): New prototypes.
30918
30919 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30920
30921         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
30922
30923 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
30924
30925         * builtins.c (get_object_alignment_2): Minor tweak.
30926         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
30927
30928 2014-01-13  Christian Bruel  <christian.bruel@st.com>
30929
30930         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
30931         optimized non constant lengths.
30932
30933 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
30934
30935         PR libgomp/59194
30936         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
30937         load as __atomic_load_N if possible.
30938
30939 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
30940
30941         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
30942         target parameter.
30943         (rs6000_expand_builtin): Adjust call.
30944
30945 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
30946
30947         PR target/58115
30948         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
30949         * config/rs6000/rs6000.c: Include target-globals.h.
30950         (rs6000_set_current_function): Instead of doing target_reinit
30951         unconditionally, use save_target_globals_default_opts and
30952         restore_target_globals.
30953
30954         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
30955         FPSCR.
30956         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
30957         (rs6000_expand_builtin): Handle mffs and mtfsf.
30958         (rs6000_init_builtins): Define mffs and mtfsf.
30959         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
30960         (rs6000_mffs): New pattern.
30961         (rs6000_mtfsf): New pattern.
30962
30963 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
30964
30965         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
30966         Start narrowing with START.  Apply candidate-use pair
30967         and check overall cost in narrowing.
30968         (iv_ca_prune): Pass new argument.
30969
30970 2014-01-10  Jeff Law  <law@redhat.com>
30971
30972         PR middle-end/59743
30973         * ree.c (combine_reaching_defs): Ensure the defining statement
30974         occurs before the extension when optimizing extensions with
30975         different source and destination hard registers.
30976
30977 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
30978
30979         PR ipa/58585
30980         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
30981         vtables into the type inheritance graph.
30982
30983 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
30984
30985         PR rtl-optimization/59754
30986         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
30987         modes in the REGNO != REGNO case.
30988
30989 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30990
30991         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
30992
30993 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
30994
30995         PR tree-optimization/59745
30996         * tree-predcom.c (tree_predictive_commoning_loop): Call
30997         free_affine_expand_cache if giving up because components is NULL.
30998
30999         * target-globals.c (save_target_globals): Allocate < 4KB structs using
31000         GC in payload of target_globals struct instead of allocating them on
31001         the heap and the larger structs separately using GC.
31002         * target-globals.h (struct target_globals): Make regs, hard_regs,
31003         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
31004         of GTY((skip)) and change type to void *.
31005         (reset_target_globals): Cast loads from those fields to corresponding
31006         types.
31007
31008 2014-01-10  Steve Ellcey  <sellcey@mips.com>
31009
31010         PR plugins/59335
31011         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
31012         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
31013         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
31014
31015 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
31016
31017         PR target/59744
31018         * aarch64-modes.def (CC_Zmode): New flags mode.
31019         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
31020         represents an equality.
31021         (aarch64_get_condition_code): Handle CC_Zmode.
31022         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
31023
31024 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31025
31026         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
31027         extraction in good case.
31028
31029 2014-01-10  Richard Biener  <rguenther@suse.de>
31030
31031         PR tree-optimization/59374
31032         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
31033         checking after SLP discovery.  Mark stmts not participating
31034         in any SLP instance properly.
31035
31036 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31037
31038         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
31039         when handling a SET rtx.
31040
31041 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31042
31043         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
31044         (cortex-a57): Likewise.
31045         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
31046
31047 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31048
31049         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
31050         non-iwmmxt builtins.
31051
31052 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
31053
31054         PR ipa/58252
31055         PR ipa/59226
31056         * ipa-devirt.c record_target_from_binfo): Take as argument
31057         stack of binfos and lookup matching one for virtual inheritance.
31058         (possible_polymorphic_call_targets_1): Update.
31059
31060 2014-01-10  Huacai Chen  <chenhc@lemote.com>
31061
31062         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
31063         kernel strings for Loongson-2E/2F/3A.
31064
31065 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
31066
31067         PR middle-end/59670
31068         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
31069         is_gimple_call before calling gimple_call_internal_p.
31070
31071 2014-01-09  Steve Ellcey  <sellcey@mips.com>
31072
31073         * Makefile.in (TREE_FLOW_H): Remove.
31074         (TREE_SSA_H): Add file names from tree-flow.h.
31075         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
31076         * tree.h: Remove tree-flow.h reference.
31077         * hash-table.h: Remove tree-flow.h reference.
31078         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
31079         reference with tree-ssa-loop.h.
31080
31081 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31082
31083         * doc/invoke.texi: Add -maltivec={be,le} options, and document
31084         default element-order behavior for -maltivec.
31085         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
31086         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
31087         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
31088         when targeting big endian, at least for now.
31089         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
31090
31091 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
31092
31093         PR middle-end/47735
31094         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
31095         var satisfies use_register_for_decl, just take into account type
31096         alignment, rather than decl alignment.
31097
31098         PR tree-optimization/59622
31099         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
31100         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
31101         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
31102         Don't devirtualize for inplace at all.  For targets.length () == 1,
31103         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
31104
31105 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
31106
31107         * config/i386/i386.md (cpu): Remove the unused btver1.
31108
31109 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
31110
31111         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
31112
31113 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
31114
31115         PR target/58115
31116         * tree-core.h (struct target_globals): New forward declaration.
31117         (struct tree_target_option): Add globals field.
31118         * tree.h (TREE_TARGET_GLOBALS): Define.
31119         (prepare_target_option_nodes_for_pch): New prototype.
31120         * target-globals.h (struct target_globals): Define even if
31121         !SWITCHABLE_TARGET.
31122         * tree.c (prepare_target_option_node_for_pch,
31123         prepare_target_option_nodes_for_pch): New functions.
31124         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
31125         * config/i386/i386.c: Include target-globals.h.
31126         (ix86_set_current_function): Instead of doing target_reinit
31127         unconditionally, use save_target_globals_default_opts and
31128         restore_target_globals.
31129
31130 2014-01-09  Richard Biener  <rguenther@suse.de>
31131
31132         PR tree-optimization/59715
31133         * tree-cfg.h (split_critical_edges): Declare.
31134         * tree-cfg.c (split_critical_edges): Export.
31135         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
31136
31137 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
31138
31139         * cfgexpand.c (expand_stack_vars): Optionally disable
31140         asan stack protection.
31141         (expand_used_vars): Likewise.
31142         (partition_stack_vars): Likewise.
31143         * asan.c (asan_emit_stack_protection): Optionally disable
31144         after return stack usage.
31145         (instrument_derefs): Optionally disable memory access instrumentation.
31146         (instrument_builtin_call): Likewise.
31147         (instrument_strlen_call): Likewise.
31148         (asan_protect_global): Optionally disable global variables protection.
31149         * doc/invoke.texi: Added doc for new options.
31150         * params.def: Added new options.
31151         * params.h: Likewise.
31152
31153 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
31154
31155         PR rtl-optimization/59724
31156         * ifcvt.c (cond_exec_process_if_block): Don't call
31157         flow_find_head_matching_sequence with 0 longest_match.
31158         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
31159         non-active insns if !stop_after.
31160         (try_head_merge_bb): Revert 2014-01-07 changes.
31161
31162 2014-01-08  Jeff Law  <law@redhat.com>
31163
31164         * ree.c (get_sub_rtx): New function, extracted from...
31165         (merge_def_and_ext): Here.
31166         (combine_reaching_defs): Use get_sub_rtx.
31167
31168 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
31169
31170         * cgraph.h (varpool_variable_node): Do not choke on null node.
31171
31172 2014-01-08  Catherine Moore  <clm@codesourcery.com>
31173
31174         * config/mips/mips.md (simple_return): Attempt to use JRC
31175         for microMIPS.
31176         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
31177
31178 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
31179
31180         PR rtl-optimization/59137
31181         * reorg.c (steal_delay_list_from_target): Call update_block for
31182         elided insns.
31183         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
31184
31185 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31186
31187         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
31188         two duplicate entries.
31189
31190 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
31191
31192         Revert:
31193         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
31194
31195         * config/mips/mips.c (mips_truncated_op_cost): New function.
31196         (mips_rtx_costs): Adjust test for BADDU.
31197         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
31198
31199         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
31200
31201         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
31202         (*baddu_si): ...this new pattern.
31203
31204 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
31205
31206         PR ipa/59722
31207         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
31208
31209 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31210
31211         PR middle-end/57748
31212         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
31213         inner_reference_p.
31214         (expand_expr, expand_normal): Adjust.
31215         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
31216         inner_reference_p. Use inner_reference_p to expand inner references.
31217         (store_expr): Adjust.
31218         * cfgexpand.c (expand_call_stmt): Adjust.
31219
31220 2014-01-08  Rong Xu  <xur@google.com>
31221
31222         * gcov-io.c (gcov_var): Move from gcov-io.h.
31223         (gcov_position): Ditto.
31224         (gcov_is_error): Ditto.
31225         (gcov_rewrite): Ditto.
31226         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
31227         only part to libgcc/libgcov.h.
31228
31229 2014-01-08  Marek Polacek  <polacek@redhat.com>
31230
31231         PR middle-end/59669
31232         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
31233
31234 2014-01-08  Marek Polacek  <polacek@redhat.com>
31235
31236         PR sanitizer/59667
31237         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
31238
31239 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
31240
31241         PR rtl-optimization/59649
31242         * stor-layout.c (get_mode_bounds): For BImode return
31243         0 and STORE_FLAG_VALUE.
31244
31245 2014-01-08  Richard Biener  <rguenther@suse.de>
31246
31247         PR middle-end/59630
31248         * gimple.h (is_gimple_builtin_call): Remove.
31249         (gimple_builtin_call_types_compatible_p): New.
31250         (gimple_call_builtin_p): New overload.
31251         * gimple.c (is_gimple_builtin_call): Remove.
31252         (validate_call): Rename to ...
31253         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
31254         check return types.
31255         (validate_type): New static function.
31256         (gimple_call_builtin_p): New overload and adjust.
31257         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
31258         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
31259         (gimple_fold_stmt_to_constant_1): Likewise.
31260         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
31261
31262 2014-01-08  Richard Biener  <rguenther@suse.de>
31263
31264         PR middle-end/59471
31265         * gimplify.c (gimplify_expr): Gimplify register-register type
31266         VIEW_CONVERT_EXPRs to separate stmts.
31267
31268 2014-01-07  Jeff Law  <law@redhat.com>
31269
31270         PR middle-end/53623
31271         * ree.c (combine_set_extension): Handle case where source
31272         and destination registers in an extension insn are different.
31273         (combine_reaching_defs): Allow source and destination registers
31274         in extension to be different under limited circumstances.
31275         (add_removable_extension): Remove restriction that the
31276         source and destination registers in the extension are the same.
31277         (find_and_remove_re): Emit a copy from the extension's
31278         destination to its source after the defining insn if
31279         the source and destination registers are different.
31280
31281         PR middle-end/59285
31282         * ifcvt.c (merge_if_block): If we are merging a block with more than
31283         one successor with a block with no successors, remove any BARRIER
31284         after the second block.
31285
31286 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
31287
31288         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
31289
31290 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
31291
31292         PR target/59652
31293         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
31294         for 14-bit register offsets when INT14_OK_STRICT is false.
31295
31296 2014-01-07  Roland Stigge  <stigge@antcom.de>
31297             Michael Meissner  <meissner@linux.vnet.ibm.com>
31298
31299         PR 57386/target
31300         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
31301         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
31302
31303 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
31304
31305         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
31306         -mcpu.
31307
31308 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
31309
31310         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
31311         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
31312         rtx is const0_rtx or not.
31313
31314 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
31315
31316         PR target/58115
31317         * target-globals.c (save_target_globals): Remove this_fn_optab
31318         handling.
31319         * toplev.c: Include optabs.h.
31320         (target_reinit): Temporarily restore the global options if another
31321         set of options are in force.
31322
31323 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
31324
31325         PR rtl-optimization/58668
31326         * cfgcleanup.c (flow_find_cross_jump): Don't count
31327         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
31328         to determine what is counted.
31329         (flow_find_head_matching_sequence): Use active_insn_p to determine
31330         what is counted.
31331         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
31332         counting change.
31333         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
31334         determine what is counted.
31335
31336         PR tree-optimization/59643
31337         * tree-predcom.c (split_data_refs_to_components): If one dr is
31338         read and one write, determine_offset fails and the write isn't
31339         in the bad component, just put the read into the bad component.
31340
31341 2014-01-07  Mike Stump  <mikestump@comcast.net>
31342             Jakub Jelinek  <jakub@redhat.com>
31343
31344         PR pch/59436
31345         * tree-core.h (struct tree_optimization_option): Change optabs
31346         type from unsigned char * to void *.
31347         * optabs.c (init_tree_optimization_optabs): Adjust
31348         TREE_OPTIMIZATION_OPTABS initialization.
31349
31350 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
31351
31352         PR target/59644
31353         * config/i386/i386.h (struct machine_function): Add
31354         no_drap_save_restore field.
31355         * config/i386/i386.c (ix86_save_reg): Use
31356         !cfun->machine->no_drap_save_restore instead of
31357         crtl->stack_realign_needed.
31358         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
31359         this function clears frame_pointer_needed.  Set
31360         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
31361         and DRAP reg is needed.
31362
31363 2014-01-06  Marek Polacek  <polacek@redhat.com>
31364
31365         PR c/57773
31366         * doc/implement-c.texi: Mention that other integer types are
31367         permitted as bit-field types in strictly conforming mode.
31368
31369 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
31370
31371         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
31372         is newly allocated.
31373
31374 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
31375
31376         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
31377
31378 2014-01-06  Martin Jambor  <mjambor@suse.cz>
31379
31380         PR ipa/59008
31381         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
31382         to int.
31383         * ipa-prop.c (ipa_print_node_params): Fix indentation.
31384
31385 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
31386
31387         PR debug/59350
31388         PR debug/59510
31389         * var-tracking.c (add_stores): Preserve the value of the source even if
31390         we don't record the store.
31391
31392 2014-01-06  Terry Guo  <terry.guo@arm.com>
31393
31394         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
31395
31396 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
31397
31398         PR bootstrap/59541
31399         * config/darwin.c (darwin_function_section): Adjust return values to
31400         correspond to optimisation changes made in r206070.
31401
31402 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
31403
31404         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
31405         from prefetch_block tune setting.
31406         (nocona_cost): Correct size of prefetch block to 64.
31407
31408 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
31409
31410         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
31411         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
31412         used to save the static chain register in the computation of the offset
31413         from which the FP registers need to be restored.
31414
31415 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
31416
31417         PR tree-optimization/59519
31418         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
31419         ICE if get_current_def (current_new_name) is already non-NULL, as long
31420         as it is a phi result of some other phi in *new_exit_bb that has
31421         the same argument.
31422
31423         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
31424         or vmovdqu* for misaligned_operand.
31425         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
31426         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
31427         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
31428         aligned_mem for AVX512F masked aligned load and store builtins and for
31429         non-temporal moves.
31430
31431 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
31432
31433         PR tree-optimization/59651
31434         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
31435         Address range for negative step should be added by TYPE_SIZE_UNIT.
31436
31437 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
31438
31439         * config/m68k/m68k.c (handle_move_double): Handle pushes with
31440         overlapping registers also for registers other than the stack pointer.
31441
31442 2014-01-03  Marek Polacek  <polacek@redhat.com>
31443
31444         PR other/59661
31445         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
31446         __builtin_FILE.
31447
31448 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
31449
31450         PR target/59625
31451         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
31452         asm goto as jump.
31453
31454         * config/i386/i386.md (MODE_SIZE): New mode attribute.
31455         (push splitter): Use <P:MODE_SIZE> instead of
31456         GET_MODE_SIZE (<P:MODE>mode).
31457         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
31458         (mov -1, reg peephole2): Likewise.
31459         * config/i386/sse.md (*mov<mode>_internal,
31460         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
31461         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
31462         *<code><mode>3, *andnot<mode>3<mask_name>,
31463         <mask_codefor><code><mode>3<mask_name>): Likewise.
31464         * config/i386/subst.md (mask_mode512bit_condition,
31465         sd_mask_mode512bit_condition): Likewise.
31466
31467 2014-01-02  Xinliang David Li  <davidxl@google.com>
31468
31469         PR tree-optimization/59303
31470         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
31471         (dump_predicates): Better output format.
31472         (pred_equal_p): New function.
31473         (is_neq_relop_p): Ditto.
31474         (is_neq_zero_form_p): Ditto.
31475         (pred_expr_equal_p): Ditto.
31476         (pred_neg_p): Ditto.
31477         (simplify_pred): Ditto.
31478         (simplify_preds_2): Ditto.
31479         (simplify_preds_3): Ditto.
31480         (simplify_preds_4): Ditto.
31481         (simplify_preds): Ditto.
31482         (push_pred): Ditto.
31483         (push_to_worklist): Ditto.
31484         (get_pred_info_from_cmp): Ditto.
31485         (is_degenerated_phi): Ditto.
31486         (normalize_one_pred_1): Ditto.
31487         (normalize_one_pred): Ditto.
31488         (normalize_one_pred_chain): Ditto.
31489         (normalize_preds): Ditto.
31490         (normalize_cond_1): Remove function.
31491         (normalize_cond): Ditto.
31492         (is_gcond_subset_of): Ditto.
31493         (is_subset_of_any): Ditto.
31494         (is_or_set_subset_of): Ditto.
31495         (is_and_set_subset_of): Ditto.
31496         (is_norm_cond_subset_of): Ditto.
31497         (pred_chain_length_cmp): Ditto.
31498         (convert_control_dep_chain_into_preds): Type change.
31499         (find_predicates): Ditto.
31500         (find_def_preds): Ditto.
31501         (destroy_predicates_vecs): Ditto.
31502         (find_matching_predicates_in_rest_chains): Ditto.
31503         (use_pred_not_overlap_with_undef_path_pred): Ditto.
31504         (is_pred_expr_subset): Ditto.
31505         (is_pred_chain_subset_of): Ditto.
31506         (is_included_in): Ditto.
31507         (is_superset_of): Ditto.
31508
31509 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
31510
31511         Update copyright years.
31512
31513 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
31514
31515         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
31516         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
31517         config/arc/arc.md, config/arc/arc.opt,
31518         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
31519         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
31520         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
31521         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
31522         config/linux-protos.h, config/linux.c, config/winnt-c.c,
31523         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
31524         vtable-verify.c, vtable-verify.h: Use the standard form for the
31525         copyright notice.
31526
31527 2014-01-02  Tobias Burnus  <burnus@net-b.de>
31528
31529         * gcc.c (process_command): Update copyright notice dates.
31530         * gcov-dump.c: Ditto.
31531         * gcov.c: Ditto.
31532         * doc/cpp.texi: Bump @copying's copyright year.
31533         * doc/cppinternals.texi: Ditto.
31534         * doc/gcc.texi: Ditto.
31535         * doc/gccint.texi: Ditto.
31536         * doc/gcov.texi: Ditto.
31537         * doc/install.texi: Ditto.
31538         * doc/invoke.texi: Ditto.
31539
31540 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
31541
31542         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
31543
31544 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
31545
31546         * config/i386/sse.md (*mov<mode>_internal): Guard
31547         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
31548
31549         PR rtl-optimization/59647
31550         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
31551         new_rtx into UNSIGNED_FLOAT rtxes.
31552 \f
31553 Copyright (C) 2014 Free Software Foundation, Inc.
31554
31555 Copying and distribution of this file, with or without modification,
31556 are permitted in any medium without royalty provided the copyright
31557 notice and this notice are preserved.